crucible / engine /FALLBACKS.md
s-ttp's picture
P1: primary-source segment facts (annual-report XBRL instance), SEC bank capital/credit facts, sourced ADS ratio and 20-F officers; mixed-issuer equity engine + real sum-of-parts; engines own the two-stage arithmetic; no risk-free/ROE/growth/sector-P/E defaults; fallback register
cdc46b3 verified
|
Raw History Blame Contribute Delete
1.99 kB
# Fallback register (engine)
Every silent substitution found in the valuation path, classified. UNSAFE items were removed:
missing data now stays missing (status UNAVAILABLE / UNVERIFIED) and, where material, blocks
publication.
| Location | Pattern | Class | Action |
|---|---|---|---|
| `calculate_fair_value` risk-free | `_rf = … if treasury else 0.045` | UNSAFE (market input) | removed — `rf=None` ⇒ no per-share value; Stage A A17 blocks |
| story context | `rf=_dm.get("rf") or 0.045` | UNSAFE | removed — story returns None with reason |
| `story_dcf.story_fcff` | `rf or 0.045` | UNSAFE | removed |
| `_median_roe` | `else 0.12` | UNSAFE (through-cycle ROE) | returns None ⇒ book-value model withheld |
| mechanical DCF growth | `pred_fund.get("eps_growth", 0.08)` | UNSAFE | removed — no growth input ⇒ no value |
| persona prose | `sector_pe … or 20.0` | UNSAFE (fabricated benchmark) | line skipped when missing |
| consensus anchor | FY fields with 0 contributors | UNSAFE | N=0 ⇒ no consensus; quarterly-sum fallback labelled non-consensus; A8b |
| bank statement revenue | provider gross `totalRevenue` | UNSAFE (wrong concept) | canonicalised to NET_REVENUE upstream; gross quarantined |
| ADS ratio | inferred from per-share ratios | SAFE only as cross-check | sourced from the 20-F (A18) when available; inference retained as consistency check |
| ERP | `_DAMODARAN_ERP = 0.0428` | SAFE (documented model constant, not a data substitute) | labelled in A17 |
| confidence defaults | `eps_confidence … 0.40` etc. | SAFE (model weights, not financial facts) | kept |
| stage weights / caps | `_STAGE_WEIGHTS`, sanity caps | SAFE (methodology constants) | disclosed in the composite audit |
| beta | bottom-up sector beta when raw beta missing | SAFE (documented methodology) | shown in assumptions |
| segment margins | LLM-recalled segment brief | SAFE only as story context | never used for a canonical value; SOTP requires filing-sourced profits |