---
title: "Financial Report Template Enhanced"
space: "OHADA ERPNext Localization"
url: "https://docs.navari.co.ke/ohada-english/financial-report-template-enhanced"
updated: "2026-09-09"
---

# Financial Report Template Enhanced

A **Financial Report Template Enhanced** is a reusable blueprint that turns the same submitted accounting data into different presentations. You can standardise headings, reuse calculations, hide zero or supporting rows, control signs and charts, and produce the same approved structure every period without changing the Chart of Accounts.

A template controls grouping, labels, calculations, and layout. It does not by itself make the books compliant with OHADA rules. Recognition, valuation, depreciation, tax, and disclosure must still be configured and professionally reviewed.

This builder extends ERPNext's [Financial Report Template](https://docs.frappe.io/erpnext/financial-report-template). Run every enhanced template from **Financial Statement Enhanced**, not from the standard Profit and Loss or Balance Sheet reports.

## Before you begin

- Review the Chart of Accounts and assign Account Categories where the template will filter by category.
- Decide the report's required lines, calculations, hierarchy, and sign presentation.
- Choose stable Line References that formulas can reuse.
- Test the template on a non-production company and period before relying on it for reporting.

## Start from a template

Open **Financial Report Template Enhanced** from the Ohada workspace. The app includes **Profit and Loss**, **Balance Sheet**, and **Cash Flow** templates. Review and adapt those, or create a new template for a controlled reporting requirement.

## Create the template

1. Enter a descriptive Template Name and select the Report Type.
2. Add rows to the **Report Line Items** table in the order they should appear.
3. Select the Data Source for each row.
4. Give calculated or reusable rows a unique Line Reference.
5. Optionally add Value Columns (for example valeur brute, amortissements, valeur nette). Leave the table empty for one amount column per period.
6. Configure formatting, visibility, sign, and chart options.
7. Save, click **View Report**, and reconcile the output with standard financial statements.

## Choose a row data source

| Data source       | Use it for                                                      | Example                                       |
| ----------------- | --------------------------------------------------------------- | --------------------------------------------- |
| Account Data      | Balances selected through account filters or categories         | All accounts in `Ventes de marchandises`      |
| Calculated Amount | Arithmetic based on referenced rows (and column codes)          | `REVENUE - COST_OF_GOODS_SOLD`                |
| Custom API        | Approved server-side logic unavailable through standard filters | A specialised regulatory or management metric |
| Visual Row        | Headers, blank lines, or layout structure                       | OPERATING EXPENSES                            |

## Important row fields

| Field                                        | Meaning                                                                                                 |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| Display Name                                 | The line label shown to report readers.                                                                 |
| Line Reference                               | A unique code used by calculations. Start with a letter; use letters, numbers, underscores, or hyphens. |
| Show Line Reference                          | When unchecked, the code is hidden on the report but still usable in formulas.                          |
| Indent Level                                 | Visual indent on the display name (`0` heading, `1` subtotal, and so on).                               |
| Formula or Account Filter                    | The filter, expression, or API path for the selected data source.                                       |
| Balance Type                                 | Opening balance, closing balance, period movement, debits, or credits. Required for Account Data.       |
| Balance Filter                               | `All`, or restrict to debit/credit accounts or a net debit/credit line. Pair with Hide If Zero.         |
| Reverse Sign                                 | Changes presentation when a line should appear with the opposite sign.                                  |
| Hide If Zero                                 | Removes an empty line from the rendered report.                                                         |
| Hidden Line                                  | Keeps a supporting calculation available without displaying it.                                         |
| Include in Charts                            | Makes the line eligible for the report chart.                                                           |
| Bold Text / Italic Text / Color / Value Type | Presentation of the line.                                                                               |

For Account Data, use the filter builder (Account Category, Account Type, Root Type). Turn on **Advanced Filtering** only for nested `and` / `or` JSON.

If the template has Value Columns, open the row and use **Value Column Settings** only when that measure should differ from the row default.

## Build calculations safely

One can define `REVENUE` and `COGS` as Account Data rows, then calculate `GROSS_PROFIT` with `REVENUE - COGS`. A margin row can use `(GROSS_PROFIT / REVENUE) * 100 if REVENUE != 0 else 0` to avoid division by zero.

Allowed functions include `abs`, `round`, `min`, `max`, `sum`, `sqrt`, `pow`, `ceil`, and `floor`. Parentheses must be balanced. A Line Reference must not collide with a Value Column code.

On the bilan, two rows can share the same account filter with Balance Filter **Debit Accounts** and **Credit Accounts**, and Hide If Zero, so a third-party(customer/supplier) balance appears on only one side.

## Validate coverage and output

Save runs validation. Errors block save (unknown Line References, circular formulas, missing filters, invalid Custom API path).

Click **View Account Coverage** and pick a company. **Missing Accounts** shows posting accounts that no Account Data line selects. **Filtered Accounts** shows what the selected lines include. Check that intended accounts are included once.

## View a template in the report

Open **Financial Statement Enhanced** and select the template, or click **View Report** on the template form. The report uses the template's headings, ordering, visual rows, and calculations while continuing to read the same General Ledger entries.

Finance can reuse this view for every period and still drill into contributing accounts with **Account Detail Level** set to Account Breakdown.

## Troubleshooting

### A formula references an unknown line

Confirm that the source row has a Line Reference and that the formula uses the exact code. Keep references unique and create source rows before dependent calculations.

### An account is missing from the report

Review its Account Category and the row's account filter. Also check whether Hide If Zero or Balance Filter suppresses the line.

## Frequently asked questions

### Should I edit a built-in template?

Use a copy when Profit and Loss, Balance Sheet, or Cash Flow must remain available as a baseline. Document every custom calculation and account category dependency.

### Should I edit a template that is already in use?

Duplicate it when the original must remain available as a baseline. Disable a template to hide it from the report without deleting it.

### Can one template work across companies?

A category-based design can, but each company must map accounts consistently and the output must be tested separately.

### Can a template replace statutory review?

The template controls presentation and calculations inside ERPNext. It does not determine whether the report meets local statutory, audit, or filing requirements.
