Paisa · What it does
Product · Revenue recognition

Five steps, to the paisa.

Contracts, performance obligations, allocation and recognition run inside the general ledger — not in a spreadsheet beside it. When a contract changes, the schedule, the deferred balance and the journal entries change together.

Implemented in src/erp/contracts.ts, src/erp/revrec.ts
Exactevery allocation and schedule sums to the amount being spread
Why it is built this way

4 decisions that carry the weight.

Exact allocation, always

Relative-SSP allocation sums to the transaction price to the last paisa, with the rounding remainder assigned deterministically. A contract whose parts do not sum to the whole is impossible.

The contract asset/liability pair

Recognised ahead of billing creates an unbilled receivable; billed ahead of recognition creates deferred revenue. A billing clears the asset before creating the liability.

Ties to the ledger, no plug

opening + billed − recognised = closing, checked against the GL balance every close. A difference is a blocker, not a footnote.

Safe to re-run

Recognition is idempotent per obligation and period. Running the month twice posts once, which is what makes an automated close safe after a correction.

Capabilities

What it does, in full.

Step 1–2 · Contract and obligations

A contract carries its customer, term, transaction price and its performance obligations, each with a standalone selling price, a service period and a recognition method.

Step 3–4 · Price and allocation

The transaction price is allocated across obligations by relative SSP, so a contract-level discount spreads proportionally rather than landing arbitrarily on one line.

Step 5 · Recognition patterns

Ratable by day or by month, point-in-time on delivery, usage as metered consumption is reported, and milestone on marked delivery. Every schedule sums exactly to its allocation.

Billing schedules

Upfront, monthly, quarterly or annual instalments generated from the term and summing exactly to the transaction price, with the remainder on the final instalment. Usage and milestone contracts bill when the event lands.

Contract modifications

Amendments are versioned, never edited in place. The new version carries the revised price and obligations; the old one is marked superseded and stays readable for audit. Revenue already recognised is not disturbed.

Waterfall and roll-forward

Remaining performance obligation by future month — the backlog view a board asks for — and a deferred revenue roll-forward that reconciles to the general ledger for the period.

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.