Skip to Content

PSAK 118 and Odoo Accounting: More Than a Financial Statement Format Change

PSAK 118 is effective 1 January 2027 and changes how profit or loss is presented. What changes, and how far can Odoo help?

PSAK 118 is often summarized as “a change in the income statement format.” In reality, the change goes deeper: how income and expenses are classified, which subtotals must be presented, and how management-defined performance measures are disclosed. For Odoo users, this is not a matter of adding one line to a report — it is a matter of mapping accounts, transactions, and report definitions.


1. What Changes Under PSAK 118?

PSAK 118 adopts IFRS 18, Presentation and Disclosure in Financial Statements, effective 1 January 2027. Crucially, PSAK 118 does not change how financial performance is measured — it changes how it is presented and disclosed.

Five changes matter most:

  1. Five standard categories in profit or loss — Operating, Investing, Financing, Income Taxes, and Discontinued Operations.
  2. Mandatory subtotals — especially Operating Profit and Profit before Financing and Income Taxes.
  3. Operating expense analysis must appear in profit or loss — by nature, function, or a mix; no longer only in the notes.
  4. Management-defined Performance Measures (MPMs, or UKTM — Ukuran Kinerja Tetapan Manajemen) — non-GAAP metrics used in public communication must be disclosed and reconciled.
  5. Impact on other standards — PSAK 207 (cash flows) and PSAK 208 (basis of preparation) also change.

Classification is performed at the reporting entity level. As a result, separate and consolidated financial statements may classify items differently — and that is acceptable as long as it is disclosed.


2. Five Categories, One Logic

CategoryCore contentExamples
OperatingThe main business activity, plus anything not classified elsewhereRevenue, cost of sales, operating expenses, depreciation of operating assets, receivable impairment, operating FX differences
InvestingInvestments managed largely independently of the main businessShare of profit of associates, finance income from investments, investment gains/losses
FinancingFunding obtained to finance the main business and/or investing activitiesInterest on borrowings, interest on trade payables, lease liabilities, interest rate effects
Income TaxesTax expense/income and related FX differencesIncome tax expense
Discontinued OperationsPer PSAK 105Profit/loss from discontinued operations

The key is the main business activity: whether the entity has a specified main activity (e.g., a bank, a financing company, an investment property company) or not. For most manufacturers and distributors, the main activity is not specified — so interest income and interest expense fall into investing and financing, not operating.

Operating Profit comprises all income and expenses classified in the operating category. Profit before Financing and Income Taxes is Operating Profit plus all income and expenses in the investing category.


3. Before and After: An Example

The following illustration uses sample figures (in thousands of Rupiah) to show how classification shifts. Total net profit does not change; how it is read does.

PSAK 201 — before

Line itemRp
Revenue1,987,959
Cost of revenue(1,638,797)
Gross profit349,162
Other income13,896
General and administrative expenses(83,941)
Other expenses(19,299)
Operating profit259,818
Share of profit of joint ventures38,201
Finance income31,940
Impairment of production machinery(49,766)
Finance costs(32,476)
Net foreign exchange gain/(loss)(3,613)
Profit before tax244,104
Income tax expense(70,803)
Profit for the year173,301

PSAK 118 — after

Line itemRp
Operating category
Revenue1,987,959
Cost of revenue(1,638,797)
Gross profit349,162
Other operating income13,896
General and administrative expenses(83,941)
Impairment of production machinery(49,766)
FX gain on operating activities, net5,249
Reversal/(impairment) of receivables(4,273)
Other operating expenses(15,026)
Operating profit215,301
Investing category
Share of profit of joint ventures38,201
Finance income31,940
FX loss on investing activities, net(7,274)
Profit before financing and income taxes278,168
Financing category
Interest on borrowings(19,973)
Interest other than borrowings(12,503)
FX loss on financing activities, net(1,588)
Income tax category
Profit before tax244,104
Income tax expense(70,803)
Profit for the year173,301

Note: net profit stays at 173,301, but operating profit changes from 259,818 to 215,301. The cause is not weaker performance, but the impairment of production machinery now sitting in the operating category, plus the split of FX differences across three activities. This is what often surprises management: numbers change because of classification, not because of profit.

Discussing financial statements and PSAK 118 classification

4. Impact on the Chart of Accounts and Bookkeeping

The most common question: must the chart of accounts be rebuilt? The answer: not necessarily. What is required is the ability to map each account to the right category. COA changes are only needed when a single account pools transactions that must be separated.

Accounts that usually need splitting

  • Interest — finance income from investments (investing) vs interest from customer receivables where that is the main activity; interest on borrowings vs interest on trade payables/lease liabilities (both financing, but must be detailed in the notes).
  • Foreign exchange differences — PSAK 118 requires FX to follow the category of the underlying item: operating, investing, or financing. If Odoo has a single FX account, sub-accounts or additional mapping are needed.
  • Impairment — trade receivable impairment is operating; impairment of investment assets follows their category.
  • Other income/expenses — an oversized “other” label is exactly what PSAK 118 targets. Split by nature.
  • Discontinued operations — needs an account/segment marker so it can be presented separately.

What does not need to change

As long as existing accounts are granular enough, the change can happen at the report layer — without rebuilding the entire COA. Rebuilding the COA risks disrupting history, reconciliation, and integrations. The principle: change the COA only when the information is genuinely not captured.

Classification is an accounting decision, not an IT decision. The system provides data; accountants determine the category.


5. Preparing PSAK 118 Reports in Odoo

Odoo Accounting has a strong financial reporting engine, but it is not automatically PSAK 118 compliant. Odoo 20’s default Profit and Loss is built from account types and report line definitions, with a simple structure: Revenue → Costs of Revenue → Gross Profit → Operating Expenses → Operating Income → Other Income → Other Expenses → Net Profit. That structure does not separate investing, financing, and tax categories the way PSAK 118 requires.

Realistic technical steps

  1. Map account types to the five categories. Odoo offers types such as income, income_other, expense, expense_other, expense_direct_cost, and expense_depreciation. There is no dedicated “investing” or “financing” type, so separation happens through sub-accounts and report line definitions.
  2. Adjust the report definition. In Odoo Enterprise, reports are built from account.report and account.report.line with expressions based on account domains, account codes, or aggregations. Add lines and subtotals: Operating Profit, Profit before Financing and Income Taxes, Profit before Tax.
  3. Build the expense analysis. PSAK 118 requires operating expense analysis in profit or loss. If you choose the function approach, the notes (CALK — Catatan atas Laporan Keuangan) must still disclose total depreciation, amortization, employee benefits, asset impairment, and inventory write-downs. Use account types, tags, or analytic distribution to pull these figures.
  4. Prepare MPMs separately. Reconciliation of MPMs (e.g., Adjusted EBITDA) to the nearest PSAK subtotal usually cannot be produced automatically by standard reports; prepare it in a spreadsheet or custom report, and keep the figures consistent.
  5. Review the cash flow statement. The PSAK 207 amendment makes operating profit the starting point of the indirect method and changes the classification of interest and dividends. Odoo’s cash flow report must be tested, not assumed compliant.
  6. Test with 2026 data. Run a dry run: compare total net profit before and after — it must match — then inspect each new subtotal. Prepare restated comparatives.

Example report line logic

Technically, Odoo line definitions can be simplified as follows:

  • Revenue — domain account_id.account_type = 'income'
  • Cost of revenue — expense_direct_cost
  • Gross profit — aggregation Revenue − Cost of Revenue
  • Operating expenses — expense, expense_other, and expense_depreciation that belong to operations
  • Operating profit — aggregation of all operating category lines
  • Investing — sub-accounts for finance income, share of profit of associates, investing FX
  • Financing — sub-accounts for interest on borrowings, interest on trade payables, financing FX
  • Tax — income tax expense accounts

For deeper needs (for example, automatic FX split by category or multi-entity consolidated reporting), a custom module or dedicated report may be more appropriate than stretching standard configuration.


6. Checklist Towards 1 January 2027

A commonly used implementation sequence:

  1. Gap analysis — profit or loss reclassification, MPM identification, aggregation/disaggregation review, and COA readiness.
  2. Roadmap — timeline, milestones, and report format changes.
  3. Upskilling — brief accounting, finance, IT, management, and the board.
  4. Implementation & dry run — 2026 report simulation, restated comparatives, evaluation of results.
  5. Go-live — official PSAK 118 reports starting with 2027 interim reporting.

A practical checklist you can use immediately:

  • Map every account to one of the five categories.
  • Identify the MPMs already used in press releases, investor presentations, or management commentary.
  • Split still-ambiguous accounts: interest, FX differences, impairment, and “other expenses.”
  • Prepare the notes (CALK): expense analysis by nature and MPM (UKTM) reconciliations.
  • Test the report in Odoo with 2026 data and compare total net profit.
  • Document the classification policy and the rationale for changes.
  • Review with accountants/auditors before the effective date.

Closing

PSAK 118 is not merely a report-format project. It requires companies to re-explain what operating profit means, what belongs to investing and financing, and how management performance measures are calculated. Odoo can be a strong foundation — its reports are configurable — but compliance must be tested, not assumed.

The most valuable part is the preparation: mapping accounts, tidying classification, and training the team before 2027. Companies that start early will move through the comparative period far more calmly.

Want to assess your Odoo readiness for PSAK 118? Talk to the Sinergi Data Totalindo (SDT) Team.


Note: this article refers to the official PSAK 118 (Presentation and Disclosure in Financial Statements) issued by IAI/DSAK IAI and its implementation illustrations. Figures in the examples are illustrative, not actual entity data. ERP systems support implementation, but classification decisions still require accounting judgment and review by practitioners/auditors. Written by Sinergi Data Totalindo, PT.

Sinergi Data Totalindo October 26, 2026
Share this post
Archive
FIFO, FEFO, and Lot Number: Managing Stock More Accurately in Odoo
Ideal for food, pharmaceutical, cosmetics, and manufacturing companies that need batch or expiry-date control.
Chat WhatsApp