In this article
- Start with the audit question, not the report layout
- The seven donor audit reports your NGO ERP must produce
- 1. Grant-level transaction ledger
- 2. Grant budget versus actual, committed and theoretical spend
- 3. Procurement and purchase-order commitment report
- 4. General ledger and trial balance, filtered to the grant
- 5. Approval history and audit-trail report
- 6. Bank reconciliation and payment-evidence report
- 7. Tax and statutory evidence report
- Build an audit pack that a reviewer can use
- Worked example: a split-cost field activity
- Worked example: the unreported commitment
- Record retention is part of the ERP design
- What to configure before the first donor report
- Frequently Asked Questions
- What is the most important donor audit report in an NGO ERP?
- Can we prepare donor reports from spreadsheets if our accounts are in Odoo?
- Should committed expenditure appear in a donor report?
- How long should an African NGO retain donor audit documents?
A programme manager is preparing a donor audit pack when the auditor asks one question that changes the tone of the meeting: “Can you show me every transaction charged to this grant, including the approval and source document?” If the answer depends on reconciling several spreadsheets, shared folders and bank statements, the organisation has a reporting problem.
A properly configured ngo erp gives finance, programme teams and the board one auditable record. Our NGO ERP / grant management software approach is built around the reports donors actually test: grant-level transactions, budget control, commitments, approvals and source evidence.
The standard is higher than producing a monthly expenditure summary. A donor needs to trace reported expenditure back to a supplier invoice, purchase order, payment, approval and accounting entry. They also need to see that adjustments were controlled rather than overwritten.
Start with the audit question, not the report layout
Most donor audits follow the money from an approved grant budget to a reported result. The auditor usually wants to establish four things:
1. Was the cost permitted by the grant agreement and charged to the correct donor budget line?
2. Was the cost approved, procured, received and paid under the organisation’s controls?
3. Does the accounting record agree to the source evidence, bank evidence and statutory tax evidence?
4. Can management explain changes from budget, including commitments that have not yet become expenses?
An NGO ERP should answer these questions without asking staff to rebuild the evidence after year-end. That means the coding decision happens when a transaction is entered, not when someone prepares a donor report.
The most common failure we see in grant-management design is treating the donor budget as a spreadsheet. Staff can post a supplier bill without a grant, project or donor budget line, then finance tries to allocate it later. That approach creates judgement calls after the fact and weakens the audit trail.
In Odoo, analytic accounting can make allocation mandatory and can distribute a cost across multiple analytic accounts. This matters where one invoice supports more than one programme or donor. The allocation remains visible in the posted accounting record rather than being buried in a spreadsheet. Odoo 19 Analytic Accounting documentation, accessed 13 October 2026, confirms this allocation capability.
The seven donor audit reports your NGO ERP must produce
1. Grant-level transaction ledger
This is the foundation report. Every posted expense, income item and adjustment must be filterable by grant, project, donor budget line, reporting period, supplier, invoice, payment and approval evidence.
A good ledger lets an auditor begin with a line in a donor report and drill down to the exact transaction. It should show the accounting date, description, amount, currency where relevant, analytic allocation, supplier reference and document status. If the grant manager cannot filter this report independently, the organisation does not have real-time grant visibility.
Do not accept a ledger that displays only total actual spend by budget line. That total may be correct, but it does not prove what made it up.
2. Grant budget versus actual, committed and theoretical spend
Actual expenditure alone is incomplete. Management also needs committed expenditure, normally approved purchase orders that have not yet become supplier invoices. This shows whether the programme is about to exceed its available budget before the invoice arrives.
Odoo budget reporting supports budget-versus-actual, committed, achieved and theoretical-spend reporting, with drill-down to purchase orders and confirmed journal items. Odoo 19 Budget documentation, accessed 13 October 2026, describes these measures and the ability to investigate their underlying entries.
| Report measure | What it answers | Why the donor and board need it | | Approved budget | What was authorised? | It establishes the baseline for permitted spend. | | Actual spend | What has been posted? | It ties reported expenditure to the general ledger. | | Committed spend | What has been ordered or committed? | It identifies future obligations before cash is paid. | | Theoretical spend | What spend should be expected at this point? | It highlights delivery or timing variances. | | Variance | Where is spend above or below plan? | It prompts a documented management explanation. | A programme report should retain the original approved budget and separately show approved revisions. Replacing the original budget with a revised spreadsheet makes it difficult to explain how the grant changed over time.
3. Procurement and purchase-order commitment report
Donors frequently test procurement because an invoice alone does not show whether the organisation followed its own purchasing rules. The ERP should report requisition, approval, purchase order, receipt, supplier bill and payment status for material purchases.
The step teams often skip is matching the purchase order to the supplier bill and the evidence of receipt. A signed delivery note, goods receipt or service confirmation establishes that the organisation received what it paid for. Where services are involved, retain the approved deliverable or activity report with the invoice.
If your organisation has a small number of low-value purchases, do not build an overly complex procurement workflow. But if multiple projects, country offices or donor restrictions are involved, approval thresholds and budget checks should be configured before a purchase order is approved. This is where a multi-entity Odoo ERP protects budget owners from seeing commitments too late.
4. General ledger and trial balance, filtered to the grant
A donor report must reconcile to the organisation’s books. The grant-filtered analytic report explains which entries belong to the grant. The general ledger and trial balance show that the underlying accounting remains complete and balanced.
Your ERP audit pack should include the general ledger, trial balance, balance sheet, profit and loss, cash flow, aged payables, aged receivables and tax report. Odoo 19 Accounting Reporting documentation, accessed 13 October 2026, confirms that these reports can be exported in PDF and XLSX formats.
The reconciliation should be explicit. Finance should be able to explain why the donor expenditure report differs from a nominal-account view, for example because the donor excludes recoverable tax, foreign-exchange movements or costs outside the reporting period. Do not leave the auditor to infer the difference.
5. Approval history and audit-trail report
An auditor should be able to see who changed a transaction, what changed, when it changed and whether the old value remains visible. The required change log includes the date and time, user, changed field, old value and new value.
Deleting a posted entry to correct an error is a poor control. The better method is to retain the original entry, post a reversal or adjustment, and preserve the approval and explanation. This gives the reviewer an auditable sequence rather than an unexplained gap.
Odoo’s data inalterability reporting uses SHA-256 hashes and chained entries. Used with appropriate restrictive controls, this provides evidence that posted accounting records have not been changed without detection. Odoo 19 Data Inalterability documentation, accessed 13 October 2026, sets out how the report works.
6. Bank reconciliation and payment-evidence report
A supplier invoice proves an obligation. It does not prove payment. The audit pack should show the bank reconciliation, payment reference, payment date, bank evidence and the link to the supplier bill or payroll entry.
For a donor-funded cash advance, the same principle applies. Report the advance, approved purpose, supporting expenditure, balance returned or carried forward, and the reconciliation to cash or bank. This is especially important where programme teams operate outside the head office finance function.
7. Tax and statutory evidence report
Tax exemption does not remove record-keeping obligations. Donor-funded organisations still need local tax evidence where it applies, and the evidence must match the accounting transaction.
For Zimbabwe, retain ZIMRA VAT7 data and fiscal invoices where applicable. For Kenya, electronic tax invoice references matter more from the 2026 year of income: KRA states that declared income and expenses must be supported by valid electronic tax invoices generated and transmitted through eTIMS or TIMS. KRA’s published deadline for 2025 income-tax returns was 30 June 2026.
For South Africa, SARS updated its record-keeping guidance on 19 August 2026. If records are kept outside South Africa or in an alternative electronic form, the SARS EFR001 electronic-record authorisation form may be relevant. This should be considered during implementation, not when an audit begins.
Build an audit pack that a reviewer can use
The best audit packs are not large collections of documents. They are indexed evidence sets where each report tells the reviewer where to go next.
Use this sequence for each donor reporting period:
5. Lock the reporting period once finance has completed reconciliations and approved adjustments. This prevents late edits from changing a submitted donor report.
6. Export the grant budget-versus-actual report, including committed and theoretical spend where the donor agreement requires it. The variance commentary should name the cause and responsible manager.
7. Export the grant-level transaction ledger with invoice, supplier, payment and approval references. This becomes the audit-pack index.
8. Reconcile the grant ledger to the general ledger, trial balance and bank reconciliation. Record each reconciling item and why it exists.
9. Attach source documents to sampled or material transactions: invoices, purchase orders, receipts, approvals, payment evidence and tax records.
10. Include the audit trail and, where configured, the data inalterability report. This answers questions about corrections and amendments.
11. Retain the final PDF and XLSX export with the same period-end cut-off. A later rerun can otherwise produce different results after adjustments.
Worked example: a split-cost field activity
Take a regional health programme with a US$40,000 monthly payroll and two donor-funded field activities. A shared vehicle invoice is posted entirely to one grant because the invoice arrives before the programme manager confirms the allocation. At month-end, finance moves part of the cost in a spreadsheet, but the supplier bill still shows only one grant in the ERP.
A better implementation requires a grant and donor budget-line allocation when the bill is entered, with a documented percentage split approved by the budget owners. The grant ledger then shows both allocations, while the original invoice remains attached once. If the organisation had configured mandatory analytic allocation from the start, it would not need to defend a spreadsheet adjustment during the audit.
Worked example: the unreported commitment
Take an illustrative NGO running a livelihoods grant with a US$40,000 monthly activity budget. The project manager approves a purchase order near period-end, but only actual supplier invoices appear in the donor report. The report suggests there is budget available, even though the approved order has already committed a material portion of it.
When the supplier invoice arrives in the next period, management appears to have overspent without warning. A committed-spend report would have shown the obligation at purchase-order approval, giving the grant manager time to seek a budget revision or defer the purchase. The organisation would also have a clearer answer when the donor asks why actual spend moved sharply between reporting periods.
Record retention is part of the ERP design
Retention periods influence how you configure document storage, user access and archive procedures. A scanned invoice is useful, but it may not be sufficient if local rules require fiscal or electronic tax-invoice evidence.
| Jurisdiction | Minimum record-retention position | Practical ERP implication | | Zambia | ZRA requires VAT invoices and copies to be retained for at least six years. | Retain the invoice, accounting entry and tax evidence together for the full period. | | Zimbabwe | ZIMRA requires VAT accounting records for at least six years. | Preserve VAT7 data, fiscal invoices and transaction support in the audit pack. | | Nigeria | FIRS requires company records for at least six years. | Configure controlled document retention across entities and projects. | | Kenya | KRA generally requires records for five years. | Keep eTIMS or TIMS invoice references with the expense record. | | South Africa | SARS generally requires records for five years, extended until an audit, objection or investigation is finalised. | Do not purge an archive merely because five years has passed if a matter remains open. | These positions come from current ZRA, ZIMRA, FIRS, KRA and SARS guidance accessed on 13 October 2026. Country-specific tax localisation should be reviewed for every entity because donor rules and statutory rules can overlap without being identical.
What to configure before the first donor report
A grant-ready Odoo implementation needs more than the Accounting app. We would normally define the grant structure, donor budget lines, approval roles, procurement stages, document types, retention rules and report ownership before migrating opening balances.
Make these fields mandatory on relevant transactions: legal entity, grant, project, donor budget line, supplier or employee, approval reference and supporting document. For shared costs, define allocation rules and who may approve an exception.
Then test the configuration with a real reporting scenario. Select a purchase from requisition through to payment, split a shared invoice across two grants, post an adjustment, and run the audit pack. If a finance manager cannot trace each result without technical support, the design is not ready.
Frequently Asked Questions
What is the most important donor audit report in an NGO ERP?
The grant-level transaction ledger is the core report because it connects every reported amount to the underlying accounting entry, supplier, invoice, payment and approval evidence. Budget reports are valuable, but they need this detail behind them.
Can we prepare donor reports from spreadsheets if our accounts are in Odoo?
You can, but it introduces version-control and traceability risk. If coding, budget allocations and commitments are held in the ERP, the donor report can be reconciled to the books and supported by an auditable export.
Should committed expenditure appear in a donor report?
It depends on the donor agreement, but management should always see commitments. Purchase orders show obligations that may not yet be recorded as actual expenditure, which is why they are essential for budget control.
How long should an African NGO retain donor audit documents?
The answer depends on the entity’s jurisdiction and the donor agreement. ZRA, ZIMRA and FIRS have six-year requirements in the guidance cited above, while KRA and SARS generally require five years, subject to the SARS extension for unresolved audit, objection or investigation matters.
If your team cannot produce a grant ledger, budget-control report and source evidence from one controlled system, request a consultation through our NGO ERP / grant management software hub page.