Statements not balanced
The Statement of Financial Position renders with a red not balanced banner: total_assets ≠ total_equity_and_liabilities (beyond ±1.0 SGD).
What this means
The statement generator is deterministic — every figure is a pure function of the mapped TB. An imbalance always traces back to:
- The TB itself was unbalanced on upload (you already saw the amber preview badge in TB not balanced).
- Or — far more common — a sign-flip on one or more mappings: a credit-side key (e.g.
trade_payables) resolved to a debit balance, or vice versa.
Diagnose
Check the anomaly list at the top of the Statements tab — sign-flip anomalies surface with the affected row id and key.
sql
SELECT account_code, account_description, current_year_balance, taxonomy_key
FROM fs_trial_balance_items
WHERE engagement_id = '<engagementId>'
AND taxonomy_key IN (
SELECT key FROM <the keys flagged in the anomalies list>
);
-- inspect: do the balances make sign sense given the taxonomy_key's expected balance?Common patterns:
- An accumulated depreciation row mapped to
pperather than to a contra-PPE concept; the negative balance flows through to PPE and disagrees with the section total. - A revenue refund / contra-revenue mapped to
revenue; the natural balance is debit butrevenueis credit-side. - Director loan mapped to
trade_receivablesinstead ofother_receivables— the sign is consistent but the section is wrong.
Fix
- Open the Mapping tab. Filter by
confidence == LOWorMANUAL; this is where overrides accumulate. - Identify the offending row by the anomaly's
fieldsarray. - Override the mapping to the correct key (see Override a mapping).
- Regenerate statements.
versionNobumps; the new run should landis_balanced = true.
If you regenerated and the imbalance is identical, the cause is upstream (a different row); inspect the anomalies again.
When the imbalance is tiny (≤ 1.0 SGD)
The balancer tolerates ±1.0 SGD. If the imbalance is exactly at the edge (e.g. 1.05 SGD), it's almost always a rounding artefact in the TB. Tighten the source or accept and document.
Related
- Override a mapping
- Generate statements
- TB not balanced — upstream check