Cash Statement Proofs (DEBK Invariants)

Published on 25 March 2026

Abstract

Trade Control is a production system, not a traditional journal-ledger-first DEBK system.

Rather than persisting financial statements as primary artifacts, Trade Control derives statutory-style accounting views dynamically from a genesis transaction model, using Supply vs Demand and Cash Polarity as the organizing principles. Double-entry concepts are present where required (notably for capital assets and balance-sheet snapshots), but the system’s primary architecture is a flow model: a business is treated as a Node whose inputs and outputs are determined by cash polarity and whose realized state is constrained by external cash (e.g., bank) reality.

This architecture provides several properties that are directly relevant to assurance:

Despite not being implemented as a conventional DEBK ledger, Trade Control produces reporting outputs that satisfy DEBK-style invariants. This document provides machine-checkable proofs (identities) demonstrating that the published Cash Statement reconciliation is mathematically consistent and that residuals are rounding-only.

The proofs in this paper are reproducible by executing the following script against the synthetic dataset:

For a technical description of how the synthetic dataset is constructed, see:

Delivery Mechanism

These proofs were generated through a structured AI‑assisted engineering process. The methodology is documented at AI‑Assisted Delivery Mechanism.

Scope and audience

This proof is written for professional review (e.g., business owners, chartered accountants), not end users.

It covers:

Definitions and notation

Let:

From Cash.vwEquityReconciliationByYear, per YearNumber we define:

Additionally, for corporation tax carry mechanics (loss regime), the view exposes:

All monetary amounts are ultimately presented rounded to 2dp.

DEBK invariant #1: Balance sheet identity

The core DEBK balance sheet identity is:

Assets − Liabilities − Equity = 0

In the system, Cash.vwBalanceSheet provides a snapshot of balances derived from the underlying ledger postings. Provided all postings are balanced, the balance sheet identity must hold at each snapshot date by construction of the double-entry system.

This document does not re-prove that base postings are double-entry balanced; instead it proves that the cash statement reconciliation is consistent with the balance sheet snapshot implied by those postings.

DEBK invariant #2: Equity movement identity (annual bridge)

For each year t, the equity bridge identity is:

CapitalDelta(t) = ProfitAfterTax(t) + CapitalInjection(t) + OpeningPosition(t) + Difference(t)

Where:

Proof (by construction of Difference)

In Cash.vwEquityReconciliationByYear:

Difference = CapitalDelta

Rearranging:

CapitalDelta = ProfitAfterTax + CapitalInjection + OpeningPosition + Difference

This is an identity, not an approximation: it holds exactly given the definitions in the view, modulo the rounding applied at output.

Interpretation

Corporation tax treatment: expense vs carry (loss regimes)

Issue addressed

In loss scenarios, corporation tax computations at the statement level may produce negative “tax due” and negative running balances. Interpreting negative values as a current-year tax expense would incorrectly increase equity and break the bridge.

System rule

This separation ensures:

Losses carried forward measure

Loss carry-forward is derived from the corporation tax statement running balance and the period’s CorporationTaxRate, expressed as a non-negative loss pool:

This supports multi-year rolling loss positions without corrupting P&L expense.

Capital injection classification (no hard-coded cash codes)

Capital injection cash codes are derived (per business dataset) using a deterministic first-transaction-sign rule:

This avoids:

Cash.vwFlowReconciliationByYear (presentation proof)

Cash.vwFlowReconciliationByYear is a line-oriented projection of Cash.vwEquityReconciliationByYear. It does not introduce new arithmetic; all reported Amount values are projections or sums of the base view’s columns. Therefore:

Line BRIDGE is explicitly:

ProfitAfterTax + CapitalInjection + OpeningPosition

Line DIFF is explicitly:

Difference

Therefore reviewers can see the bridge total and residual directly without recomputation.

Empirical verification (synthetic scenario matrix)

A synthetic test script runs four scenarios (VAT on/off; profit/loss) and populates a temp table from Cash.vwEquityReconciliationByYear.

Observed results (March 2026 run):

This demonstrates:

  1. Loss years do not introduce spurious tax expense into the equity bridge.
  2. VAT registration affects penny-level rounding only and does not break DEBK identities.
  3. The reconciliation is stable across profit and loss regimes.

What a reviewer can independently validate

For each year in Cash.vwEquityReconciliationByYear:

  1. Compute (to 2dp):
    • CapitalDelta = ClosingCapital - OpeningCapital
  2. Compute:
    • ProfitAfterTax = Profit - CorporationTax
  3. Compute bridge:
    • Bridge = ProfitAfterTax + CapitalInjection + OpeningPosition
  4. Confirm:
    • Difference = CapitalDelta - Bridge

All terms are directly available in the same row, so the proof is self-contained.

For loss carry-forward:

Limitations and boundary conditions

The identities described in this paper are encoded as executable assertions in:

Expected output (reference run)

When executed against the synthetic dataset scenarios used to validate this paper, PROOF_CashStatementReconciliation.sql is expected to return:

A typical PASS summary shows:

What the script proves

The script queries Cash.vwEquityReconciliationByYear and verifies, for each YearNumber, the following identities (subject to 2dp presentation and an allowed tolerance):

It also performs shape/sanity checks on the derived line-report view:

PASS / FAIL interpretation

Tolerance

The script uses a configurable tolerance (default 0.10) to accommodate penny-level rounding effects that arise when:

Reviewers may set the tolerance to 0.01 if the dataset and rounding model are expected to be strictly penny-perfect.

Relevant objects

Appendix A: Reference execution script (synthetic scenarios)

This paper’s reference run uses the scenario runner script:

The script executes four scenarios (profit/loss; VAT on/off) by running App.proc_DatasetSyntheticMIS with the following settings:

For full source, see EXEC_DatasetSyntheticMIS.sql.

Appendix B: Proof output (reference run)

To prove all four synthetic scenarios (profit/loss; VAT on/off), use the scenario-proof runner:

This script:

Reference output

Synthetic Scenario Resultset

Licence

Creative Commons

Licenced by Trade Control Ltd under a Creative Commons Attribution-NoDerivatives 4.0 International License