← Files Public Equity InvestingARCHIVED FILE
skills/dcf-model-builder/references/banker-formula-workbook-contract.md
4.03 KB · Oct 2, 2026 · 00:03 UTC
# Banker Formula Workbook Contract Formula mode is the default user-facing model-build path. It materializes `assets/templates/banker_formula_workbook_template.xlsx`, preserves the template's formulas, tabs, styles, and checks, then writes plan-derived inputs, source notes, scenario controls, and Public Equity Investing posture warnings. Run with: ```bash python3 scripts/build_banker_formula_workbook.py path/to/plan.json --output-dir output ``` Formula-mode outputs: - `banker_formula_workbook.xlsx` - `banker_formula_workbook_run_log.json` - `model_citations.json` - `manifest.json` The workbook is the human deliverable. The run log, manifest, and citation ledger are support/audit artifacts. The JSON artifacts are not the user-facing deliverable unless the user asks for the audit files directly. `model_citations.json` must validate against the Public Equity Investing model-citation schema before dashboard handoff. ## Truthfulness Gate Only call an artifact `banker_formula_workbook` when all of the following are true: - the formula builder ran; - `banker_formula_workbook.xlsx` exists; - required sheets are present; - formula count clears the model-specific inspection threshold; - required formula-bearing sheets are populated; - `Cover` is the first visible sheet; - named ranges or `model_citations.json` provide a stable source-to-cell anchor map; - styles are preserved; - no external workbook links are present; - the formula run log says `workbook_mode: "banker_formula_workbook"`; - `model_citations.json` exists with sheet/cell-level provenance for key outputs. If any gate fails, do not label the deterministic export or partial output as a banker formula workbook. Fall back honestly to `deterministic_export`, or mark the formula-mode run `not-decision-ready`. ## Required Workbook Shape Required sheets: - `Cover` - `Executive Summary` - `Control Panel` - `Historical Financials` - `Revenue Build` - `Margin Cost Build` - `Working Capital` - `Capex D&A` - `Tax Schedule` - `Unlevered FCF` - `WACC` - `Terminal Value` - `DCF Valuation` - `Sensitivities` - `Checks` - `Source Notes` The `Cover` sheet must remain first and must carry public-equity context: issuer/ticker, valuation date, source posture, placeholder warnings, model mode, market-price inputs when available, selected valuation outputs, and workbook map. For a named-company model, template example values must never survive as apparent company history. Populate sourced actual periods only; render unavailable historical periods blank or clearly unavailable. Period headers must reconcile across Control Panel, historical, operating-build, FCF, and valuation sheets before the workbook can be used. The formula workbook must surface economic integrity checks as well as mechanical formula checks. At minimum, do not reject a sourced net-cash position merely because net debt is negative, and treat a modeled negative PP&E roll-forward as `not-decision-ready` until reinvestment assumptions are repaired. Where PP&E cannot be supported from source data, withhold the roll-forward and disclose the gap rather than projecting a fabricated asset balance. ## Source-To-Cell Provenance `model_citations.json` is the handoff from workbook generation to dashboards. Each record should include workbook path, sheet, cell or range, value when known, formula where available, scenario/case, line item, section, source ID, evidence label, source label, source date/freshness, and optional URL. Dashboards may cite model cells such as `DCF Valuation!B18` instead of generic "model output." Keep the citation ledger as a support artifact; hero the workbook or rendered dashboard for the end user. ## Limitations Formula mode preserves and populates the bundled DCF template. It does not synthesize arbitrary new tabs, evaluate Excel formulas in Python, or guarantee every user-specific model architecture. Use formula mode by default for user-facing model builds; use deterministic mode only for controlled computed values, smoke tests, explicit lightweight support exports, or honest fallback when formula mode is unavailable.
SHA-256: cfc27641a797311ca1c92b2e377ca90edc4774e9a3ef716654f640c705e85d48