ENGINE 23
SFS-E23-QPR · PROFORMA INTEGRITY · REV 2026-07-24 · PRODUCTION
PRODUCTION = runnable end-to-end, CI-backed, full test suite passing. All data fictional and seeded.
Project Proforma Integrity
Does the workbook still tie to itself?
A real-estate developer reports every active project each quarter with a proforma workbook -- a grid of formatted numbers that was internally consistent the day a formula last recalculated, and that drifts the moment a cell is overtyped or a tab is rolled forward without its precedents. The error-check tab keeps showing zeros because the zeros themselves were typed. This engine reads the six artifacts a reporting cycle emits -- the project register, the per-project base ledger, the stated tie-out summary, the reporting calendar, the filing register and the cycle report -- and runs twenty-six deterministic controls over them. Do the sources and uses total and balance, does hard plus soft equal total project cost and the dev-cost budget equal the unlevered cost, is the interest reserve adequate and the equity funded before construction, does net profit re-derive from revenue and cost, does the owner-repayment waterfall tie to net profit and do the sponsor and investor splits sum to the whole, do the margins and per-NSF costs re-derive, is each variance a real current-minus-prior subtraction, and did every active project file a QPR on or before its region's due date with the cycle count derived from the filings rather than kept beside them. It recomputes every stated summary figure from the base ledger through the same kernel that produced the data, compares every tie-out with exact integer-cent equality, and never writes to a source artifact.
A quarterly proforma proves nothing by showing a zero on its error-check tab, because the zero is a cell like any other and can be typed over the break it was meant to catch. None of the failures here look wrong in a grid of formatted numbers. Total sources drift a cent from total uses and the source-and-use error line still reads zero; the dev-cost budget stops matching the proforma's unlevered cost; net profit no longer equals revenue minus cost, yet the waterfall distributes against it as though it did; the sponsor and investor splits stop summing to the whole and a cent leaks out of the distribution; a margin is quoted off a stale cost, a variance column is typed rather than subtracted, and a project's QPR misses its cycle or lands a day after the region's due date while the cycle count -- maintained beside the filings -- still says the deck is complete. The engine rebuilds every stated figure from the base ledger through the same derivation kernel that produced the data, compares each tie-out to the cent, walks the calendar due-date gate, ships a planted-defect file for every registered control, and states its benchmark as a command rather than a claim. A tie-out that was overtyped, or a filing that landed late, is invisible until a distribution is cut against a number that never closed.
Architecture
functional block stack · static overviewSelect a layer
Nine control families run in registry order over each proforma file. The first proves the others had something to read and that the review date is legible, because a control that passes on absent evidence reports assurance it never performed.
Key specifications
at a glanceWhat it does for you
plain termsA real-estate developer reports every active project each quarter, and the reporting deck is built on a proforma workbook per project -- a grid of formatted numbers that was internally consistent the day a formula last recalculated, and that drifts silently when cells are overtyped or tabs are rolled forward without their precedents. The workbook carries its own error-check tab, but the zeros on it are cells like any other and can be typed over the break they were meant to catch. Three families of drift hide inside a clean-looking workbook, none of which look wrong in a grid of formatted numbers. The balances stop balancing: total sources drift a cent from total uses, hard plus soft stops equalling total project cost, the dev-cost budget no longer matches the proforma's unlevered cost. The profit chain stops tying: net profit no longer equals revenue minus cost, the waterfall's distributed profit stops matching the budgeted profit, the sponsor and investor splits stop summing to the whole -- the distribution looks funded and the arithmetic underneath it does not close. And the report drifts from the evidence: a margin is quoted off a stale cost, a variance column is typed rather than subtracted, a project's QPR misses its cycle or lands after its region's due date, and the cycle count is maintained beside the filings rather than derived from them. None of these are judgment calls. They are equalities and comparisons -- a stated total against the sum of its lines, a limit against a reserve with exact <=, a stated figure against its re-derivation from the base ledger, a filed date against a due date -- which a deterministic control settles better than an error-check tab whose zeros were typed. This engine is about integrity, not valuation: it does not underwrite a rent or a cap rate or decide whether a project should be built, only whether the workbook still ties to itself and whether every deliverable made its cycle on time.
The seeded demo runs every control over every proforma file7. The CLI generates twenty-eight fictional proforma files -- one clean baseline and one carrying each of the twenty-seven planted defects -- then runs all twenty-six controls over each. The clean file returns PASS with no flags; every defect file returns REVIEW or FAIL and names the control it tripped along with the reason that control exists.
A source-and-use error of a single cent is a break, not a rounding band8. A boundary defect appends an unfunded use line so that uses exceed sources by one cent, and re-derives the file so the stated totals still tie their own lines -- leaving only the balance broken. src_source_use_balance recomputes total sources and total uses from the ledger and fails on the single cent, because the source-and-use error is re-derived rather than read off an error-check tab whose zero was typed.
The materiality swing is real, re-derived, and a reviewer's call9. A defect raises a project's revenue so net profit swings far beyond the file's materiality band against prior, then re-derives the file so every tie-out stays intact. var_materiality_flag raises a FLAG rather than a FAIL: the swing is correctly derived and the arithmetic closes, but a move this large between quarters wants a human's eyes, so the file rolls up to REVIEW rather than FAIL.
Functional block diagram
engineering · each block links to its sourcePlain terms
- Seeded Proforma Files. fictional quarterly proforma files enter the control registry
- Structural Precondition. is the proforma file complete and the review date legible
- Sources & Uses. do the source and use totals tie their lines and balance
- Cost-Budget Tie-outs. do the cost budgets tie hard+soft, unlevered and contingency
- Interest Reserve & Equity. is the reserve adequate and equity funded first
- Profit Derivation. does the profit chain re-derive from revenue and cost
- Owner-Repayment Waterfall. does the waterfall tie net profit and the splits sum to the whole
- Margins & Per-NSF. do the margins and per-NSF cost re-derive
- Variance. is each variance a real subtraction and any swing material
- Reporting Completeness & Calendar. is every project filed, on time, complete, and does the count tie
- Base Ledger & Summary Tabs. the base ledger and stated tie-out figures every rule recomputes against
- Verdict and Findings. every finding, with the reason it exists, ends at a person
Engineering
- Seeded Proforma Files. generate_corpus writes one clean baseline plus one planted-defect file for every registered control, twenty-eight files in total. Only each project's base ledger is stated -- source and use lines, hard and soft cost, interest, revenue, area, equity split, prior-period figures and milestone dates; every stated summary figure and the cycle count are derived through the same kernel the engine later recomputes with, so the relationships the engine tests are the same relationships that produced the data.
- Structural Precondition. One control. FAILs a file missing any of the six artifact types or carrying a duplicate, and FAILs an unreadable as_of, so no downstream rule holds vacuously on absent evidence.
- Sources & Uses. Three controls: stated total sources and total uses each equal the sum of their lines, and total sources balance total uses with the source-and-use error re-derived to zero rather than trusted.
- Cost-Budget Tie-outs. Three controls: total project cost equals hard plus soft, the dev-cost budget equals the recomputed unlevered cost, and the stated contingency total equals the sum of its lines.
- Interest Reserve & Equity. Two controls: the budgeted interest does not exceed the interest reserve, and equity is funded before construction draws begin -- the condition the loan was sized against.
- Profit Derivation. Two controls: net profit equals net revenue less total project cost, and unlevered profit equals net revenue less unlevered cost -- the two differing by exactly the financing interest.
- Owner-Repayment Waterfall. Five controls: the waterfall, budgeted and distributed profits each tie net profit, the sponsor share re-derives from the equity split with the largest-remainder rule, and the sponsor and investor shares sum back to net profit with no leakage.
- Margins & Per-NSF. Three controls: margin on cost, margin on revenue and cost per net square foot each recompute from the base ledger and compare exactly, so a metric quoted off a stale cost is caught.
- Variance. Three controls: each financial variance is current minus prior, each milestone schedule variance is current date less baseline in days, and a net-profit swing beyond the materiality band is flagged for a reviewer.
- Reporting Completeness & Calendar. Four controls: every active project filed a QPR, each was filed on or before its region's due date, each region filed its full deck of deliverables, and the cycle count recomputes from the filing register.
- Base Ledger & Summary Tabs. The base ledger carries each project's raw source and use lines, hard and soft cost, interest, reserve, revenue, area, equity split, prior-period figures and milestone dates; the tie-out summary carries every stated figure the engine recomputes -- totals, profits, margins, per-NSF cost, the waterfall and split profits and the variances. The source-and-use, cost, profit, waterfall, margin and variance controls all resolve against these, recomputing each stated figure through the same kernel that produced the data.
- Verdict and Findings. Findings roll up per proforma file: any FAIL is FAIL, FLAGs without FAILs are REVIEW, clean is PASS. The CLI exit code is the verdict, so a pipeline can gate on it. Reports carry no timestamps or absolute paths, which is what makes the committed report diffable.
Instruction set
every public command| Command | Operation | Output | Exit | Artifacts |
|---|---|---|---|---|
python run.py | regenerate the seeded fictional corpus, run all twenty-six controls, write both reports | per-file verdicts and every actionable finding, then the overall verdict | 2 for the bundled corpus, which carries a planted defect for every control by design | proforma_report.json, proforma_report.md, samples/ |
python -m proforma_engine samples | analyze an existing folder of proforma files without regenerating it | per-file verdicts and findings | 0 PASS / 1 REVIEW / 2 FAIL / 3 usage | none unless --json or --md is passed |
python -m proforma_engine samples --generate --quiet | regenerate the corpus and print only the overall verdict | a single verdict line | 0 PASS / 1 REVIEW / 2 FAIL / 3 usage | samples/ |
python -m pytest proforma_engine/tests -q | run the full test suite for this engine | 10381 passed | 0 when every test passes | none |
Benchmarks
measured demo results| Measure | Result |
|---|---|
| Engine tests10 | 10,381 tests collected live collection from the engine directory |
| Registered controls11 | 26 controls counted from the registry, not from documentation |
| Planted defects12 | 27 defect files every registered control has at least one file that trips it |
| Control coverage13 | 100 percent of controls with a planted defect no control ships without a file demonstrating it firing |
Control characteristics
engineeringPlain terms
The engine has no write path and therefore no autonomy to gate. It produces findings; a person decides whether a proforma is treated as tying out and whether a late or missing filing is chased.
Engineering
Deterministic envelope. seeded fictional inputs, read-only operation, offline default mode.
Demo gate. FAIL on the bundled corpus, by design -- it carries a planted defect for every registered control
| Severity | Verdict | Action |
|---|---|---|
| No findings above PASS | PASS | carry the mechanically clean proforma into the documented reporting sign-off |
| One or more FLAG, no FAIL | REVIEW | a human resolves each flag; a period-over-period net-profit swing beyond the materiality band lands here -- real, re-derived, and worth a reviewer's eyes |
| One or more FAIL | FAIL | the proforma is not treated as tying out until the failing control is cleared -- a broken balance or tie-out, an inadequate reserve, a leaking split, a mistyped variance, or a missing or late filing |
- Read-only: proforma files are parsed and never written back, so the engine cannot introduce the break it reports.
- Integer cents throughout, compared with exact ==; there is no tolerance band on a tie-out, and a cent off the requirement is reported as a break.
- An amount that should be integer cents but is not produces an AMOUNT_INVALID finding contained to the one ledger row it was read on, rather than being coerced into the number the engine is meant to audit.
- One derivation kernel: the controls and the generator share the arithmetic in proforma_engine.proforma, so a stated figure cannot disagree with the logic that produced it.
- Deterministic and byte-stable: same inputs produce the same findings in the same order, with no timestamps or absolute paths in any output.
- Absent evidence is never a passing control; a missing artifact fails completeness rather than letting the controls that read it pass unread.
Operating limits
what it refuses to do- The engine never edits a proforma, recalculates a workbook, files a deliverable, or writes to a source artifact. It reads the proforma file and stops.14
- It reads the six artifacts a reporting cycle emits. It does not connect to the spreadsheet the proforma lives in, a document-management system, or the underwriting model behind the ledger.15
- It is about whether the workbook still ties to itself, not whether the project is a good investment: underwriting a rent or a cap rate is a different job the engine explicitly declines.16
- It proves each stated figure re-derives from the base ledger, not that the base ledger's own raw costs, revenues and dates are correct. That judgment is a reviewer's.17
- It takes the filing register at face value: it confirms a QPR is recorded as filed on or before the due date, not that the filed document itself is complete or correct. All shipped data is fictional and the reporting period is set in a fictional future.18
See it run
control architecture
Integration
how to run itDistribution: public repository, MIT license.
- 1python -m pytest --collect-only -q -o addopts= (proforma-integrity-automation/)
- 2len(proforma_engine.engine.REGISTRY)
- 3distinct rule-id prefixes in proforma_engine.engine.REGISTRY
- 4samples/*.json after python run.py
- 5len(proforma_engine.model.DOC_TYPES)
- 6proforma_engine/tests/test_control_semantics.py boundary cases at the cent
- 7python run.py (proforma-integrity-automation/); proforma_engine/tests/test_planted_defects.py
- 8proforma_engine/generate.py _source_use_imbalance; proforma_engine/tests/test_control_semantics.py
- 9proforma_engine/generate.py _profit_swing_material; proforma_engine/tests/test_control_semantics.py
- 10python -m pytest --collect-only -q -o addopts= (proforma-integrity-automation/)
- 11len(proforma_engine.engine.REGISTRY)
- 12len(proforma_engine.generate.DEFECTS)
- 13proforma_engine/tests/test_planted_defects.py
- 14proforma-integrity-automation/README.md and proforma_engine/tests (read-only / determinism proofs)
- 15proforma_engine/model.py DOC_TYPES
- 16proforma_engine/engine.py module docstring (Scope)
- 17proforma_engine/model.py module docstring (Scope: integrity, not valuation)
- 18proforma_engine/generate.py
Show us where the hours go.
One conversation: you describe the work that consumes your team's month; we tell you plainly what this engine can take over, what it can't, and what a scoped first phase would cost. Your people keep approval authority.
Book a free consultation