Paisa · What it does
Product · Reporting

The metrics and the statements agree.

MRR is computed from the same contracts that produce revenue, so the operator number and the GAAP number can be reconciled to each other on demand instead of argued about.

Implemented in src/statements.ts, src/erp/metrics.ts, src/health.ts
One ledgerthe operator metrics and the statements share it
Why it is built this way

3 decisions that carry the weight.

One source, two audiences

Board metrics and statutory statements come from the same ledger and the same contracts. There is no reconciliation spreadsheet because there is nothing to reconcile.

Blocked when the books are out

Statements refuse to render if the trial balance does not balance. A report that cannot be trusted is not produced.

Exact, not approximate

Retention is reported in basis points rather than a percentage float, because a float quietly loses the precision everything else here guarantees.

Capabilities

What it does, in full.

Statements

Balance sheet, profit and loss and cash flow, computed as projections over the journal for any date or window.

MRR movement bridge

Opening MRR, new, expansion, contraction, churn, reactivation, closing — classified per customer per month from the contract schedules.

Retention

Net and gross revenue retention for a cohort between two periods, with the expansion, contraction and churn behind the number rather than just the number.

Backlog

Remaining performance obligation — contracted revenue not yet recognised — by future month, from the same schedules that will recognise it.

Cash and runway

Cash on hand, trailing net burn and runway in days, with the basis stated. When there is not enough history to be honest, it says so instead of guessing.

Financial health score

A 0–100 score across liquidity, profitability, runway, debt, receivables discipline and revenue growth, with an explicit list of what data was missing.

Related

Works with

See it against a real ledger.

The demo runs on a seeded company with a live close waiting — two real blockers and agents holding proposals.