Back to Blog

April 26, 2026

Odoo Remaps Its Profit and Loss Statement to Speak Fluent GAAP for US Businesses

Odoo updates its US fiscal localization with a GAAP-aligned Profit and Loss statement that replaces European terminology with standard American accounting labels, adds a dedicated package verification flow, and restructures optional module documentation for US-based deployments.

Anyone who’s migrated from QuickBooks or Xero to Odoo in the United States has probably noticed the terminology gap. European accounting frameworks use “Revenue” where Americans say “Income.” They call it “Cost of Revenue” instead of “Cost of Sales.” The bottom line is “Net Profit” rather than “Net Income.” It sounds cosmetic, but when your CFO or auditor opens a report and sees unfamiliar labels, it creates friction — and in accounting, friction breeds errors.

Odoo has now fixed this with a properly mapped Profit and Loss statement for the US localization. The underlying math hasn’t changed. What has changed is that every line item now uses the terminology that American accountants, bookkeepers, and the IRS expect to see.

The Full Terminology Mapping

The changes run through the entire income statement structure. Here’s what shifted:

Generic LabelUS GAAP Label
RevenueIncome
Less Costs of RevenueCost of Sales
Gross ProfitGross Profit
Less Operating ExpensesExpense
Operating Income (or Loss)Net Operating Income
Plus Other IncomeOther Income
Less Other ExpensesOther Expense
(subtotal)Net Other Income
Net ProfitNet Income

Two sections from the European framework are gone entirely: “Less Allocations and Plus Withdrawals” and “Net Profit Left After Allocations and Withdrawals.” Under GAAP standards as defined by the Financial Accounting Standards Board (FASB), the P&L statement summarizes operating performance only. Profit appropriation is a separate concern and doesn’t belong on the income statement.

Cleaner Configuration Verification

Alongside the P&L changes, Odoo has reworked how the US localization confirms its own setup. Instead of checking for an abstract “chart template,” the system now looks at the Package field in Accounting Settings. If it shows “United States,” the base localization is active. It’s a small change, but it makes the initial configuration check more intuitive, especially for people setting up their first Odoo database.

Odoo Accounting Settings showing the Fiscal Localization Package field set to United States, confirming the US GAAP localization is active

Nine Optional Modules for the Full Stack

The US localization isn’t just one module. The base l10n_uspackage gives you the GAAP chart of accounts and the remapped P&L. But there are eight more modules that extend the system into specific American accounting workflows:

  • US Accounting Reports— adds the Check Register and other US-specific report layouts
  • US Checks Layout— prints checks in Quicken, Peachtree, and ADP-compatible formats with configurable margins and multi-page stubs
  • NACHA Payments— generates ACH batch payment files with CCD and PPD entry class codes
  • 1099 Reporting— exports contractor payment data to CSV for IRS filing
  • AvaTax Integration— connects to Avalara’s cloud tax engine for real-time, jurisdiction-specific sales tax calculations
  • US Payroll— handles federal and state tax withholding, W-2 and W-4 forms, and pay schedules from annual to daily frequency
  • US Payroll with Accounting— bridges payroll transactions into the general ledger
  • Payroll Export to ADP— generates CSV files for companies using ADP as their payroll processor

The GAAP Chart of Accounts Underneath

The P&L relabeling sits on top of a chart of accounts that follows GAAP’s seven-category structure: Receivable (prefix 1), Payable (2), Equity (3 and 9), Assets (1), Liability (2), Income (4 and 6), and Expenses (6). Several accounts are locked and cannot be deleted — Bank Suspense, Outstanding Receipts, Outstanding Payments, Stock Valuation accounts, Foreign Exchange Gain/Loss, and Undistributed Profits — because they’re wired into Odoo’s core accounting logic.

For publicly traded companies subject to SEC reporting requirements, the account structure supports the level of granularity that regulatory filings demand. For small businesses, the same chart works out of the box without requiring someone to understand why there are separate accounts for cash difference gains and stock interim deliveries.

Cash Flow Gets the Direct Method

The Cash Flow Statement uses the direct method, which measures actual cash movements rather than working backward from accrual figures. It pulls exclusively from Bank and Cash journals, grouped into Operating Activities, Financing Activities, and Investing & Extraordinary Activities. Accounts Receivable and Accounts Payable activity is excluded until cash actually moves — which is exactly how the direct method is supposed to work, but something that plenty of accounting software gets wrong.

ISO 20022 with an American Accent

One detail worth noting: Odoo now distinguishes between global ISO 20022 and US ISO 20022 payment standards. The global version uses IBAN numbers and SEPA credit transfer conventions. The US version uses ABA routing numbers and follows rules set by the Federal Reserve, The Clearing House, and NACHA. Both standards are available in the same bank journal, and the recommendation is straightforward — use US ISO 20022 for domestic transfers and the global version for international ones.

Why This Matters

The P&L terminology change sounds like a small thing, but it’s the kind of detail that signals maturity in a localization. When an American CPA opens the Profit and Loss report and sees “Net Income” instead of “Net Profit,” they don’t have to mentally translate. When they see “Cost of Sales” instead of “Cost of Revenue,” it matches their training, their other clients’ systems, and the IRS forms they file every quarter.

Combined with the check printing, NACHA batch payments, 1099 exports, AvaTax integration, and now a properly structured income statement, Odoo’s US localization is no longer a European accounting system wearing an American costume. It’s starting to feel native.

Ready to experience Odoo AI?

Join hundreds of teams using DearERP to customize Odoo in minutes, not weeks. Plans start at $29/month.