Repository navigation
feat: Fox Factory worked example — reconcile + forecast + divestiture on real SEC data - #1
Merged
Merged
Conversation
… faithful to FOXF disclosure)
…; add Fox Factory model module + Phase A reconciliation (ties to the dollar)
…ar), Phase B segment forecast, Phase C divestiture sensitivity; fix divest D&A accounting
…ar) + forecast coherence
…xample + root README
…; address final review
…weave Fox into launch blog; fix stale D&A/EBIT claims and test counts; encode impairment-bridge judgment
…f-improving against your actuals
This was referenced Jun 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A real public-company worked example (
examples/foxfactory/) that runs the openfpa engine against Fox Factory Holding Corp. (NASDAQ: FOXF), pulled live from SEC EDGAR. Built as a credibility proof — Ridgeline is synthetic; this is real, audited, messy numbers.Three phases:
Engine changes (general, backward-compatible)
pyfpa/models/cashflow.py: expense D&A in the P&L (EBIT = EBITDA − D&A) and add it back in operating cash flow — cash-neutral, correct double-entry. Previously D&A was added back without being expensed, which inflated OCF. Invisible for Ridgeline (D&A=0); the golden-snapshot and Ridgeline suites pass unchanged.pyfpa/config/schemas.py: optionalda_monthly/capex_monthly(default 0.0).pyfpa/analysis/:segments.py(net sales + Adjusted EBITDA per ASU 2023-07 — faithful to FOXF disclosure, not gross profit),divestiture.py(immutable carve-out scenario),reconcile.py(variance helper). All exported and unit-tested.Self-extension (the hero thesis)
Fox reports segment Adjusted EBITDA, not gross profit, so
fpa-learn-businessgenerates a bespokesegment-rollupskill to fit (examples/foxfactory/skills/generated/). Committed business profile grounds it in the filings.Provenance
pull_edgar.pyfetches every figure from EDGAR's XBRL API + the segment-footnote HTML — zero hand-keyed financials.data/SOURCES.mdtraces each number to a filing/accession.Test plan
python3 -m pytest→ 92 passing (incl.test_foxf_reconciliation.pyregression guarding the to-the-dollar tie, andtest_cashflow_fcf.pyproving D&A is cash-neutral).python3 examples/foxfactory/pull_edgar.py && python3 examples/foxfactory/run_foxf.py→ regeneratesoutput/(reconciliation, forecast briefing, divestiture, Excel).Notes
docs/superpowers/specs/2026-06-07-foxfactory-worked-example-design.md,docs/superpowers/plans/2026-06-07-foxfactory-worked-example.md.load_actuals/load_segmentsloaders from the plan were folded intofoxf_model.py(direct CSV access) rather than added to the public API — kept the engine surface lean. Flag if you'd prefer them exported.🤖 Generated with Claude Code