US Payroll Reaches Twenty States
Odoo’s US payroll localization has been expanding one state at a time, and the latest batch brings the total to twenty. Georgia, Iowa, Mississippi, and New Jersey are now fully supported with state-specific tax calculations, withholding tables, and compliance rules built into the payroll engine.
The full roster now covers Alabama, Arizona, California, Colorado, Connecticut, Georgia, Illinois, Indiana, Iowa, Kentucky, Massachusetts, Michigan, Mississippi, New Jersey, New York, North Carolina, Ohio, Pennsylvania, Texas, and Virginia. That list accounts for a significant share of the US workforce — California, Texas, New York, and now Georgia alone represent over a third of the country’s employed population.
For businesses that operate across multiple states, the practical impact is that Odoo can now handle more multi-state payroll scenarios without requiring third-party payroll processors for the states it did not previously cover. An employee who lives in New Jersey and works remotely for a company headquartered in New York, for instance, can now have both state withholdings calculated natively inside Odoo.
The documentation for US payroll was also restructured in this update, moving from a simple bullet-point list of supported states to a formatted table with state names and abbreviations. A minor change, but one that suggests the list is expected to keep growing and needed a more scalable format.
Spreadsheet Module Gets Its First Published Limits
Odoo’s built-in spreadsheet module has, until now, operated without any officially documented limits on sheet size, row counts, or cell capacity. That changed with the publication of a specifications and limits page — the first time Odoo has put hard numbers on what its spreadsheet engine can handle.
The details of the specific limits are not dramatic in themselves — they define maximum rows, columns, and cells per sheet, along with formula complexity boundaries — but the existence of a published spec is significant. It means Odoo is drawing a line between “this is a lightweight spreadsheet tool inside an ERP” and “this is a product with defined capabilities and guarantees.”
For users who have been pushing the spreadsheet module toward heavy analytical workloads — large financial models, data analysis across thousands of rows, complex pivot table configurations — these published limits provide clarity on what the tool is designed to handle versus what will hit performance walls. It also gives Odoo’s own support team a documented reference point when users report slowness on oversized sheets.
Employee Module Drops the Contract Report
Sometimes the most telling change is what gets removed. Odoo 19 has dropped the contract report from the Employees module — a report that used to show headcount and contract status information across the organization. The report was removed from the application code, and the documentation now reflects that it no longer exists.
The removal covers roughly 109 lines of documentation across six files, which gives a sense of how deeply the report was woven into the Employee module’s documentation structure. References to the report were pulled from navigation pages, feature overviews, and the reporting section of the Employees docs.
Why remove it? The most likely explanation is consolidation. Odoo has been steadily moving contract management functionality into the Payroll module, where it arguably belongs more naturally. A standalone contract report in the Employee module becomes redundant when the same data — and more comprehensive reporting around it — lives in Payroll. Rather than maintain two parallel reporting paths, Odoo is directing users to the Payroll module for contract-level insights.
For HR teams that relied on this report, the migration path is straightforward: the same contract data is accessible through Payroll’s reporting tools, which offer more granular filtering and analysis options. The Employee module retains all individual contract records on each employee’s profile — it is only the aggregate report that has been removed.
The Common Thread
These three changes — payroll expansion, specification documentation, and legacy cleanup — do not share a feature. What they share is a posture. Odoo is filling gaps in coverage, setting expectations about capabilities, and removing dead weight from modules that have outgrown their original scope. None of these will make a conference keynote, but they are the kind of incremental improvements that determine whether an ERP actually works for the businesses running on it day to day.