Skills

3 Statements

Build or repair an integrated three-statement model: linked IS, BS and CF, supporting...

Install

npx skills add ginlix-ai/LangAlpha --skill 3-statements -g -a claude-code -y
Repository
ginlix-ai/LangAlpha2.2k
Category
Engineering
Updated
3d ago
License
Apache-2.0
Context cost
Mediumabout 3,000 tokens
Runs scripts
No, instructions only

What it does

Build or repair an integrated three-statement model: linked IS, BS and CF, supporting schedules, scenarios and a Checks sheet. Triggers on three-statement model, build me a model, link the statements, populate this template, make my balance sheet balance.

Three-Statement Model

An integrated model is two artifacts sharing one workbook: a faithful transcription of what the company reported, and a forecast that is a set of arguments. The seam between them is the most important line in the file, and most of the rules below exist to keep it visible.

Evidence labels, source tiers, staleness, the readiness posture and the intake limits: .agents/skills/research-conventions/SKILL.md, read before the first figure enters the workbook.

  • Fiscal period labels, per-company LTM windows, and rate against level changes: .agents/skills/research-conventions/references/market-data-rules.md.
  • A filing label does not match a model row, or a subtotal will not tie to its components: .agents/skills/3-statements/references/line-items.md.
  • The template needs data pulled out of a 10-K or 10-Q: .agents/skills/3-statements/references/sec-filings.md.
  • Writing a linkage, a roll-forward or a schedule formula: .agents/skills/3-statements/references/formulas.md.
  • Formatting a sheet the user will read: .agents/skills/3-statements/references/formatting.md.
  • Designing a scenario set or a sensitivity grid: the weak-design catalogue under Step 10: Scenarios and Sensitivities in .agents/skills/dcf-model/SKILL.md applies here unchanged.

Critical Principles

Formulas, not hardcoded values. Every projection cell, roll-forward, linkage and subtotal is a live Excel formula, never a value computed in Python and written in. With openpyxl, ws["D15"] = "=D14*(1+Assumptions!$B$5)" is correct and ws["D15"] = 12500.0 is not. The only cells holding typed numbers are historical actuals and the driver assumptions on the control panel. A hardcode does not just freeze one number: it breaks every downstream integrity check silently, because the check still evaluates and still reads OK.

Read the whole SKILL.md on GitHub

More in Engineering