Data Reconciliation
Data Reconciliation
Every number on this dashboard is built from raw transactions — invoices, bills, time entries, payroll. The reconciliation suite below proves those numbers tie back to their sources and to each other. Each check shows two independently-derived figures side by side, in the same unit (rand, hours, or count), with the variance between them. The point isn't a pass/fail stamp; it's that you can see, line by line, that nothing leaks.
Where a variance is anything other than zero, that is the conversation — a real difference to explain, not a number to bury. On this data, every tie resolves to the cent.
The whole battery, at a glance
Read the per-check detail below for what each one means.
Revenue
Invoiced revenue (ex-VAT), net of credit notes, against the income line in Xero's own profit-and-loss report — both for the full window and for the latest month on its own.
Direct cost
The two cost terms the per-client profit model deducts — contractor (direct) cost and re-billed ad spend — each traced to its own basis, plus the combined deduction against every tagged or direct-cost bill line. Untagged advertising is the agency's own overhead and stays out of per-client profit by design, which is why ad spend sits below the full Advertising line in the P&L.
Balance sheet balances
The fundamental accounting identity: total assets equal total liabilities plus equity, at the latest balance-sheet date. Both sides are summed from the balance sheet's own line items, so this proves the books balance to the cent.
Salaries and labour
Total payroll cost-to-company against the Salaries & Wages line in Xero's P&L, and the allocation arithmetic: labour charged to clients plus non-billable time equals total payroll. Nothing in the wage bill goes unaccounted for.
Gross profit arithmetic
Revenue less labour, direct cost, and ad spend equals the gross profit the dashboard reports — the four-term model closing on itself.
Time
Tracked hours from the time-tracking source against the adapter the profit model reads, and mapped hours against total hours — every hour both arrives and maps to a client.
Payroll sources agree
The two payroll representations the pipeline carries hold the same total cost-to-company — neither doubled nor dropped. (This is the check that catches an accidental double-load of the payroll feed.)
Profit-and-loss build
The P&L we build from raw transactions against Xero's own report P&L, section by section. Interest and other income are built from transactions but aren't carried as a tie-able line in the report extract, so they sit outside this comparison — they don't affect the operating lines above.
Data completeness
Did every input arrive, every month? Each source's count of months present, against the length of the window. A source short of the window means an input lagged.