Skip to main content
Version: Current

Trial balance

The trial balance is the backend-computed debit and credit summary of General Ledger accounts as of a selected date and currency. It tests double-entry equality. It does not by itself prove source completeness, correct classification, bank agreement, or financial-statement correctness.

Audience: accountants, finance managers, auditors, implementers, and support analysts
Learning time: 35 minutes
Navigation: Finance → Accounting → Trial Balance
Availability: current UI supports as-of date, currency, zero-balance inclusion, comparison, account drill-down, CSV/print export, and refresh.

Learning outcomes

You will be able to:

  • explain account debit, credit, normal balance, and net balance;
  • select an appropriate as-of date and currency;
  • interpret the isBalanced result without overclaiming;
  • drill from a row to journal activity;
  • compare two as-of dates;
  • diagnose imbalance, unexpected zero, or unexplained movement;
  • use the trial balance as an input to tie-out and statement review.

Data model

The response contains rows with account ID, code, name, type, normal balance, total debits, total credits, and balance. It also contains total debits, total credits, isBalanced, as-of date, and currency.

Account types are asset, liability, equity, revenue, and expense. Assets and expenses normally carry debit balances; liabilities, equity, and revenue normally carry credit balances. A balance on the opposite side is not automatically an error, but it should be explained.

Prerequisites

RequirementWhy
Correct schoolprevents tenant/default or cross-school mixing
Approved as-of datedefines included journal dates
Currencystatement is currency-specific
Posted journal evidencedrafts should not be treated as ledger activity
Active Chart of Accounts understandingrows use account identities/types
Exact statement permissionbackend authority is gl:statements
Journal read accessrequired for drill-down
Cut-off and period evidencesupports close interpretation

Roles and exact permissions

ActionPreferred exact abilityCurrent UI note
Run trial balancegl:statementsthe current page also recognises broad financial_payment view/list/edit fallbacks
Drill into journalsgl_journal_entry:listaccount/date filters
Read a journalgl_journal_entry:readheader, lines, source, reversal
List accountsgl_account:listaccount identity and type
Read accountgl_account:readscope and normal balance
Export/print current viewstatement page actionexport permission must follow deployment policy

The API contract is authoritative. A visible page caused by a legacy fallback is not proof the user has gl:statements; backend 403 evidence should be corrected through role configuration, not worked around.

Run the statement

  1. Open Trial Balance and confirm the school.
  2. Set the as-of date. Use the accounting cut-off, not an arbitrary current date.
  3. Select the required currency.
  4. Decide whether zero-balance accounts should be included. Excluding them improves readability but can hide configuration rows.
  5. Enable comparison and choose a prior as-of date when reviewing movement.
  6. Apply filters and wait for the server result.
  7. Verify response as-of date and currency match the request.
  8. Review total debits, total credits, and isBalanced.
  9. Scan account types and unusual balances.
  10. Select a row to drill into journal entries through the same cut-off.
  11. Export only after filters and result identity are recorded.
  12. Use month-end tie-out to compare control accounts with source/subledger balances.

Interpretation

A balanced result proves that included debit and credit totals are equal under the server calculation. It does not prove:

  • every eligible source posted;
  • no duplicate journal exists;
  • mappings used correct accounts;
  • source and ledger cut-offs agree;
  • bank/provider movements reconcile;
  • statement classifications and retained earnings are correct;
  • a period is ready to close.

Comparison review

Comparison should use the same school, currency, zero-balance option, and methodology. For each material movement:

  1. compute or read the difference;
  2. drill into account activity between the two dates;
  3. group by source type;
  4. identify reversals and manual journals;
  5. explain movement using source records;
  6. distinguish normal activity from corrections.

Do not compare USD and another currency as if the difference were operating movement.

Worked scenario: Mupfure Learning Academy

Mupfure runs the USD trial balance at 31 August. Total debits equal total credits. Receivables increased by USD 12,000 and revenue increased by USD 11,500, while a USD 500 credit balance appears in a suspense account.

The accountant drills into suspense and finds a manual journal posted during migration. The trial balance is balanced, but the suspense balance is not accepted as resolved. The source memorandum is reviewed and a governed reclassification is prepared.

Accounting impact and relationship to statements

The trial balance is the common ledger input to the income statement and balance sheet. Revenue and expense balances support period performance; asset, liability, and equity balances support the position statement. Retained earnings can be computed in the balance-sheet response.

A trial balance row should never be “fixed” by client-side arithmetic. The server statement endpoints own totals. If the result is wrong, investigate journals, dates, currency, account configuration, and backend calculation.

Controls and audit evidence

Retain school, filters, as-of date, currency, comparison date, include-zero setting, request ID, response totals, balanced flag, row export, drill-down journal IDs, reviewer, review date, explanations, and tie-out references.

Exports are snapshots of the selected view. File existence does not prove review or certification. Protect exported student/supplier-sensitive descriptions according to school policy.

Failure modes

SymptomLikely causeEvidenceSafe actionEscalate when
totals do not balancecorrupt/legacy data, projection defect, currency mixing, or calculation defectraw rows and journal headersblock close and run integrity reviewposted documents are balanced but statement is not
account unexpectedly absentzero hidden, wrong school/currency/date, inactive/default scope issuefilters and account recordcorrect frame and rerunqualifying activity remains absent
row balance unexpectedwrong journal, mapping, reversal, or normal-balance interpretationdrill-down source lineagecorrect root transaction/journalactivity cannot explain row
comparison movement wrongmismatched filters or datesboth parameter setsalign settingssame settings produce inconsistent result
page opens but API is 403UI fallback permission mismatchabilities and responsegrant exact gl:statementsexact permission is present
export total differs from screenstale data or export formatter defectrequest timestamps and rowsrefresh and regeneratesame snapshot differs

Verification checklist

  • School, as-of date, and currency are explicit.
  • Zero-balance setting is recorded.
  • Backend totals and isBalanced are retained.
  • Material or unusual rows are reviewed.
  • Comparison uses identical methodology.
  • Row drill-down explains movements.
  • Manual and reversal entries are identified.
  • Control accounts are handed to tie-out.
  • Export parameters match the reviewed view.
  • Balanced status is not overstated as full close readiness.

Practice and knowledge check

Guided practice: run current and prior-month trial balances, select three material movements, and trace them to journals and sources.

Independent scenario: the statement is balanced but one source module is USD 2,000 lower than its control account. Explain the next steps.

  1. What does isBalanced prove?
  2. What does it not prove?
  3. Which permission is authoritative for statements?
  4. Why must comparisons use one currency?
  5. How do normal balances help review?
  6. Why should totals not be calculated in the browser?
  7. What is the next control after a balanced trial balance?

Answer guide: it proves included debits equal credits; not completeness/classification/reconciliation; use gl:statements; mixed currencies distort movement; normal balance aids interpretation; backend owns statement logic; proceed to source-ledger tie-out and close evidence.

Next lesson

Continue to Period close.