Diagnostics & Auditability

Review the capstone workflow as evidence, not just the forecast as display

Chapter 7 asks whether the result is traceable, reproducible, and review-ready. These checks summarize whether the authoritative bundle, assumptions, outputs, and valuation inputs are still behaving like one controlled system.

Run ID R_20260420_190558_001
Assumption set A_dashboard_overrides_active
Environment E_py312_flask
WATCH
Pass 17
Watch 1
Fail 0
Checks passed 17 Controls that are already within the Chapter 7 guardrails.
Needs monitoring 1 Usually valuation-input or completeness issues, not modeling drift.
Hard failures 0 Anything here blocks the bundle from being review-ready.
Current stance WATCH Overall read on the capstone workflow state.

Run Checks

Current diagnostic board

These checks are designed around the final capstone integration contract you defined.

Chapter 3 horizon drives the final bundle

PASS

Master horizon contains 12 forecast quarters from FY2026-Q4 to FY2029-Q3.

Base forecast rows stay identical to Chapter 3

PASS

Dashboard assumption overrides are active — the base case intentionally departs from the live Chapter-3 baseline and reflects the user's slider deltas layered on top of live data.

Official scenarios are limited to Base, Bear, and Bull

PASS

Liquidity stress is excluded from the final dashboard contract.

Scenario sensitivity uses only the two live exogenous drivers

PASS

WTI crude and CPI (3M annualized) are the only exposed final sensitivity drivers.

Dashboard valuation input stays isolated from operating outputs

PASS

Diluted shares outstanding is used only in the target-price conversion layer, not in revenue, EBIT, FCFF, or scenario generation.

Target price layer is ready for review

PASS

Shares: 62.40m (live_fmp). Peer median FCFF yield: 3.28%.

Notebook and Flask use the same authoritative file

PASS

Both surfaces read capstone_project/outputs/authoritative/latest_output.json instead of recomputing separate models.

Dashboard assumption overrides are explicit and persisted

PASS

1 non-default dashboard assumption override(s) are currently active.

Macro vintage within staleness tolerance

PASS

Oil cache fresh=True (≤30m), CPI fresh=True (≤35d), fundamentals fresh=True (≤36h), sensitivity fresh=True.

Sensitivity regression has sufficient data and significance

PASS

oil→cogs_yoy (applied): n=36, r²=0.523, p=0.0000, fallback=False. oil→gross_margin (diag): n=40, r²=0.094, p=0.3128. oil→gross_profit_yoy (diag): n=36, r²=0.604, p=0.0000. Horse-race winner by R²: gross_profit_yoy. CPI→DIO(2Q lag): n=38, r²=0.809, p=0.0008, fallback=False.

PVM foundation is sourced from live data (FMP + SEC EDGAR)

PASS

Revenue segments fetched at 2026-04-18T14:50:42 (55 rows); store counts latest quarter 2025-12-27 (72 rows). Driver table mtime: 2026-04-20T14:01:50+00:00.

Balance-sheet ties for every forecast period (A = L + E)

PASS

All 12 periods tie to the penny via the non-current-liability plug (max |gap| $0.0000m).

BS plug drift stays within tolerance (model consistency)

WATCH

Max plug drift from anchor: $189.3m (17.46% of anchor). Thresholds: pass ≤15.0% watch ≤25.0%. The plug absorbs deferred-tax, short-term-investment, and other non-modelled BS movements; a tight drift means the model is consistent.

Cash flow reconciles (CFO + CFI + CFF = ΔCash)

PASS

Periods checked: 12. Max |gap|: $0.000m (tolerance $0.5m).

PP&E roll-forward reconciles (PPE_open + CapEx − Depreciation = PPE_close)

PASS

Rolled across 12 forecast periods from the latest-actual PP&E anchor.

Equity roll-forward reconciles (NI − Div − Buyback + SBC)

PASS

Rolled across 12 forecast periods.

Debt roll-forward reconciles (Debt_open + NetIssuance)

PASS

Rolled across 12 forecast periods.

Historical BS matches raw FMP data (upstream data-quality check)

PASS

All 14 line items match FMP raw BS within 2.0%. FMP filing date: 2025-12-27.

Manifest

Run metadata

Run ID R_20260420_190558_001
Company RL
Model version M_0.3.0
Data version 2025-12-27
Scenario label Base/Bear/Bull Bundle
Generated 2026-04-20 19:05:58

Artifacts

Current file lineage

Authoritative Output outputs/authoritative/latest_output.json
Diagnostics outputs/diagnostics/latest_diagnostics.json
State run_metadata/state.json
Peer Comps Input assumptions/peer_fcff_comps.csv
Notebook notebook/final_capstone_model.ipynb

Source Lineage

Chapter ownership map

Chapter 2: Historical actuals (sole upstream CSV — all anchors derive from here) 40 rows · data/data_pipeline/csv_export/RL_quarterly_historical_pack_usdm.csv
Chapter 3: Live PVM driver table (rebuilt by DATA/pvm_builder.py from FMP + SEC) 12 rows · data/data_pipeline/csv_export/RL_pvm_revenue_driver_table.csv
Chapter 4/5: Working-capital + cash anchors now derive LIVE from Chapter 2 (no CSVs) 0 rows · (live — see build_historical_summary)
Chapter 6: Scenario definitions, exogenous shocks, and translation outputs 28 rows · data/data_pipeline/csv_export/RL_scenario_assumptions.csv

Governance Notes

Why the bundle stays reviewable

Chapter 3 is the operational forecast backbone for the final capstone bundle.

Chapter 6 feeds exogenous sensitivity and translated assumption paths, not the final absolute revenue and EBIT rows.

Dashboard and notebook are downstream views of the same authoritative output file.