Agent skill

Three-Statement Model Builder

by ginlix-ai in ginlix-ai/LangAlpha

Builds or repairs an integrated income statement, balance sheet and cash flow model in Excel with live formulas, supporting schedules, scenarios and a Checks sheet.

Apache-2.0Auto-check passedBusiness, Finance & HR

Install Three-Statement Model Builder

skills CLI
$ npx skills add ginlix-ai/LangAlpha --skill 3-statements -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ginlix-ai/LangAlpha 3-statements --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/langalpha_research/skills/3-statements .claude/skills/3-statements && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
3-statements
GitHub stars
1.8k
Token cost
~5.4k tokens
SKILL.md length
3,184 words
Files
5 (incl. references)
Skills in repo
37
Repo updated
First seen
Licence
Apache-2.0

At a glance

Builds or repairs an integrated income statement, balance sheet and cash flow model in Excel with live formulas, supporting schedules, scenarios and a Checks sheet.

  • Works in 7 steps: Architecture, or the template's map → Stage the historicals, then lay them out → Set the drivers, each with a basis → …
  • Building a linked income statement, balance sheet and cash flow model
  • SKILL.md covers Critical Principles, Step 1: Architecture, or the…, Step 2: Stage the historicals,… and Step 3: Set the drivers, each…, plus 6 more sections
  • Calls python

What it does

An integrated model is treated as two artifacts in one workbook: a faithful transcription of what the company reported, and a forecast made of arguments, with the seam between them kept visible. Every projection cell, roll-forward, linkage and subtotal must be a live Excel formula, never a value computed in Python. Only historical actuals and driver assumptions are typed numbers, because a hardcode silently breaks the downstream integrity checks.

The build uses openpyxl from a saved Python script, following the xlsx skill's conventions: blue font for inputs, black for formulas, green for cross-sheet links, a provenance comment on each input and an explicit number format on computed cells. The agent then recalculates with recalc.py until it reports success and runs audit.py in strict mode, fixing every failure. Reference files cover line items, pulling figures from 10-K and 10-Q filings, formula patterns and formatting, and a separate research-conventions skill supplies evidence labels and source tiers.

When your agent uses it

  • Building a linked income statement, balance sheet and cash flow model
  • Repairing a model whose balance sheet does not balance
  • Populating an existing model template from company filings
  • Adding scenarios, sensitivities and a checks sheet to a model

Example prompts

  • “Link the statements in model.xlsx and make the balance sheet balance.”
  • “Populate this template with the figures from the latest 10-Q and add a Checks sheet.”
  • “Build me a three-statement model with base, upside and downside scenarios.”

Requirements

  • Python with openpyxl
  • The xlsx skill's recalc.py and audit.py scripts

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Architecture, or the template's map
  2. Stage the historicals, then lay them out
  3. Set the drivers, each with a basis
  4. Build the statements and the schedules
  5. Scenarios
  6. The Checks sheet
  7. Deliver

What it can do on your machine

Read from SKILL.md and the folder at commit 2855e43. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Three-Statement Model Builder loads about 5.4k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 67 tokens; SKILL.md has 3,184 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~5.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ginlix-ai/LangAlpha at commit 2855e43, republished under its Apache-2.0 licence (© ginlix-ai). 3,184 words, ~5,355 tokens.

Download SKILL.mdSave it as .claude/skills/3-statements/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
3-statements
description
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.

Build with openpyxl, recalc, audit. Build as a saved Python script (for example <task>/build_model.py), following .agents/skills/xlsx/SKILL.md: blue font for inputs, black for formulas, green for cross-sheet links, a provenance comment on every input, an explicit number format on every computed cell. Then python .agents/skills/xlsx/scripts/recalc.py <file> 30 until the status is "success", and python .agents/skills/xlsx/scripts/audit.py <file> --strict with every fail fixed. A saved script is what lets you edit one section and rerun cheaply.

Present each stage as you finish it. A PTC turn is not chat-interactive at every step, so this is not a blocking question: present the block, say what you are building next, and carry on unless the user objects. A mis-mapped tab or a wrong historical surfaces while it is still cheap to fix.

  1. The architecture or the template map - which sheets exist, what each holds, where the inputs live
  2. Historicals - the transcribed block, with periods and sources
  3. Drivers - the control panel, each driver with its basis
  4. Income statement projections - with the subtotals checked
  5. Balance sheet - the balance check for every period
  6. Cash flow statement - the cash tie-out for every period
  7. Checks sheet - the whole sheet, with the roll-up cell reading OK
  8. Cover - the workbook's first sheet, written last: tiles linking to the terminal-year revenue, EBITDA, net income, free cash flow and leverage, plus the scenario selector and the Checks roll-up

Do not populate the model end to end and present it complete.

Step 1: Architecture, or the template's map

Building fresh, the sheet architecture is fixed by three rules:

  • Historicals sit on their own sheet. Reported history is a transcription with its own source notes, and no forecast formula ever writes into it. The boundary period is visibly marked, in the column header and with a border, so a reader can see at a glance where the company stops and we start. This is the seam, and a model that blurs it cannot be reviewed.
  • One control panel. Every scenario switch, toggle and global assumption lives on one sheet. Nothing is switched from inside a calculation sheet, because a toggle buried in the middle of the cash flow statement is a toggle nobody finds when the model gives a strange answer.
  • Calculation sheets hold formulas only. IS, BS, CF and the supporting schedules read from the historicals sheet and the control panel and hold no typed numbers of their own.

Completing somebody else's template, map it first rather than imposing this shape. Templates vary:

Common tab namesHolds
IS, P&L, Income Statementincome statement
BS, Balance Sheetbalance sheet
CF, CFS, Cash Flowcash flow statement
WC, Working Capitalworking capital schedule
DA, D&A, PP&Edepreciation schedule and fixed-asset roll-forward
Debt, Debt Scheduledebt schedule
NOL, Tax, DTAnet operating loss and deferred tax schedule
Assumptions, Inputs, Driversthe control panel
Checks, Audit, Validationthe checks dashboard

Map, in this order: which tabs exist and which of the above are missing; which tabs feed which; where the input cells are, by font colour and by reading the formulas; the row structure (title, units row, section headers, actual against estimate columns, period labels); the column order and whether it is consistent across tabs; and any defined names, which are usually the drivers and the key outputs and are the fastest way to find both.

Then edit the way .agents/skills/xlsx/SKILL.md says to edit somebody's workbook: load it twice, once for formulas and once with data_only=True, write only into input cells, match the existing units and sign conventions, preserve their formatting, and read their cell comments first because they are often instructions. Where a structural change is genuinely needed, a new line item or period, use python .agents/skills/xlsx/scripts/insert.py rather than openpyxl's own insert, which leaves every formula pointing at the cells that used to be there.

Done when every sheet the model needs is either present or planned, the input cells are identified rather than assumed, and the historical-to-forecast boundary is marked.

Step 2: Stage the historicals, then lay them out

Extracted facts land first as rows, one fact per row, each carrying its own source, period, line-item label, unit and sign:

company | period | canonical line item | value | unit | currency | source | as-of | reported label

Only then pivot into the wide statement layout. Doing it in this order is what keeps provenance attached to the figure through the reshape: a number that arrives straight into a wide grid loses which filing it came from the moment it lands, and the provenance comment then gets written from memory. Keep the staged rows in the build script, or on a Source Data sheet, so the pivot can be rerun.

Normalise at ingestion, not at use:

  • Sign: one convention for the whole model, applied as the fact is staged. Whether expenses are positive or negative matters less than that every row agrees.
  • Scale: one scale for the model, recorded per source, because a single filing prints thousands in one table and millions in another.
  • Currency: one reporting currency, with balance-sheet items at spot and flow items at the period average where translation is needed, and the convention stated on the sheet.

Map every reported label to a canonical line item as it is staged, per .agents/skills/3-statements/references/line-items.md, and keep the reported label in its own column so a reviewer can see what was renamed.

When the history is not there. A driver that cannot be anchored because the reported history does not exist, a segment the company stopped disclosing, a metric it never disclosed, a company with three quarters of public life, is stated as such. Produce the model with that driver labelled assumption and its basis named, re-read the readiness posture from the table in .agents/skills/research-conventions/SKILL.md against that input state, and say in the delivery which driver is unanchored and what would anchor it. A placeholder that looks like a transcribed actual is the one failure this step exists to prevent.

Done when every historical cell traces to a staged row with a source and an as-of, the canonical mapping is recorded, and any unanchored driver is labelled.

Step 3: Set the drivers, each with a basis

A forecast is a set of arguments, and a driver with no stated basis is not an argument. Every driver on the control panel carries a basis, and the basis text is also what goes in the cell's provenance comment.

DriverBasisAs-ofNote

Basis is one of a closed set: management guidance, consensus, historical trend, bottom-up build, analyst judgement. The mix is the tell: a model where every driver reads historical trend has no view in it, and one where every driver reads analyst judgement has no anchor under it.

Reconcile against guidance and consensus. For the near periods, show the model's forecast beside the company's guidance and beside consensus, with the delta and its reason:

FY26 revenue | our model | guidance range | consensus (N analysts, vintage) | delta to guidance | delta to consensus | why

A forecast that sits outside guidance without saying so is a view the model is hiding from its own reader. A forecast that matches consensus exactly is a view worth stating deliberately rather than arriving at by default.

Working capital is anchored to a stated window. Days-based assumptions (DSO, DIO, DPO) come from a named historical window, and the choice of window is justified: the last four quarters for a stable business, a full cycle for a seasonal one, the post-transition periods for a company that changed its terms. Setting them to the last reported period by default carries whatever was unusual about that quarter through the entire forecast.

Capex and depreciation cohere. The capex path and the depreciation schedule are one decision, not two. A growth capex ramp with flat depreciation is a defect, not a rounding issue: new assets depreciate. Model depreciation off the asset base the capex path builds, split maintenance from growth capex, and check that the implied asset life stays stable across the forecast. In the terminal year, capex and depreciation should be converging unless something specific says otherwise.

Done when every driver has a basis and an as-of, the guidance and consensus reconciliation exists for the near periods, and the working-capital window is named.

Step 4: Build the statements and the schedules

Project the income statement from the drivers, then the balance sheet, then the cash flow statement, then close the loops. .agents/skills/3-statements/references/formulas.md carries the linkage and roll-forward formulas.

The debt schedule is complete or it is not a schedule. Model the maturity ladder tranche by tranche, mandatory amortisation, the revolver with its draw and repay mechanics, and the cash sweep if there is one. Interest expense is computed on the average balance across the period, and it reconciles to that balance. A single "total debt" line with an interest rate applied to it cannot answer the question the schedule exists for, which is whether the company can meet its maturities.

Circularity. Interest expense feeds net income, which feeds cash, which feeds the debt balance, which feeds interest expense. Enable iterative calculation (100 iterations, maximum change 0.001) and put a circuit breaker toggle on the control panel so the loop can be cut when it fails to converge. An unintentional circularity is a different thing: trace it and break it rather than switching iteration on to hide it.

Quality checks per sheet, run as the sheet is built rather than at the end:

  • Income statement: historicals match the source; expense lines sum to the reported totals; every subtotal computes; the tax logic handles losses; forecast rows reference the control panel with no hardcodes; period-over-period changes are directionally sensible
  • Balance sheet: assets equal liabilities plus equity in every period; cash matches the cash flow statement's ending cash; working-capital accounts tie to their schedule; retained earnings rolls forward; debt ties to the debt schedule; signs are right
  • Cash flow: net income at the top of CFO matches the income statement; non-cash add-backs tie to their source schedules; working-capital changes carry the right sign (an increase in an asset is a use of cash); capex ties to the PP&E roll-forward; financing ties to the debt and equity movements on the balance sheet; ending cash matches the balance sheet and beginning cash matches the prior period
  • Supporting schedules: opening balances equal prior closing balances; every roll-forward is complete (beginning + additions - deductions = ending); schedule totals tie to the statement line they feed; the assumptions used match the control panel

NOL and deferred tax, where the model carries one: the opening balance is zero for a new entity; the NOL grows only when pre-tax income is negative; utilisation is capped at 80 percent of pre-tax income before the NOL deduction under the post-2017 federal limitation; the balance never goes negative; the deferred tax asset ties to the balance sheet; and tax expense is zero when taxable income is at or below zero.

Done when every check above has been run for every period and each failure has been traced to the cell where it starts.

Show full SKILL.md (1,148 more words)Show less

Step 5: Scenarios

Scenarios are defined by a driver delta table on the control panel, not by three columns of typed numbers. Each case names the world it describes and states which drivers move and by how much against the base:

DriverBaseUpside deltaDownside deltaThe world each describes

Switch with CHOOSE or INDEX/MATCH off a single selector cell on the control panel. Drivers worth sensitising: revenue growth, gross margin, SG&A percent, DSO/DIO/DPO, capex percent, interest rate, tax rate.

The downside case is mechanical: a stated driver change with the arithmetic shown, never a percentage haircut to the base. Under it, test that the debt path still works, that covenants hold, and that the revolver capacity covers the trough, because a company that cannot fund its downside has a different downside from one that can.

Scenario audit: the toggle switches every statement, the balance sheet balances in all three cases, cash ties out in all three, and the ordering holds (upside above base above downside for net income, EBITDA, FCF and margins; the reverse for leverage).

Done when each case names its world, the toggle moves every dependent output, and the ordering holds in the Checks sheet.

Step 6: The Checks sheet

Every model workbook carries a Checks sheet. The four-column layout, the verdict formula, the roll-up and the read-back after recalculation are the sheet contract under Financial Model Conventions in .agents/skills/xlsx/SKILL.md. What a three-statement model adds is the split below and the rows in it.

Group 1: hard checks. Each holds exactly, and a failure means the model is wrong.

CheckColumn B holds
Balance sheet balancesTotal assets minus (total liabilities + total equity), for every period
Cash flow reconciles beginning to ending cashEnding cash minus (beginning cash + CFO + CFI + CFF)
Ending cash ties to the balance sheetCF ending cash minus BS cash
Net income tiesCF opening net income minus IS net income
Retained-earnings roll-forwardPrior RE + net income - dividends minus BS closing RE; SBC reaches equity through net income and APIC, never through this roll
Debt ties to the scheduleBS total debt minus the debt schedule closing balance
Interest ties to the scheduleIS interest expense minus the debt schedule interest on the average balance
D&A ties to PP&EIS and CF D&A minus the PP&E schedule depreciation
Capex ties to the cash flow statementPP&E schedule additions minus CF capex, sign adjusted
Working-capital change tiesCF change in NWC minus the movement in the BS working-capital accounts
Equity financing tiesChange in common stock and APIC on the BS minus equity issuance in CFF
Deferred tax asset tiesNOL schedule DTA minus the BS deferred tax asset
Units and currency consistentCount of sheets whose units row differs from the control panel's; column C tests =0
Cash ties across the monthly and annual viewsMonthly closing cash minus annual closing cash, where the model carries both
Year 0 equity tiesEquity raised in year 0 minus beginning equity capital in year 1
Ending cash non-negative=MIN(<ending cash row>); column C tests >=0, since negative cash means the model has no financing plug
NOL balance non-negative=MIN(<NOL balance row>); column C tests >=0
NOL utilisation cappedUtilisation divided by pre-tax income before utilisation, which is the base the 80% limit caps against; column C tests <=0.80
Tax expense zero on a lossTax expense in every period where taxable income is at or below zero; column C tests =0
Scenario selector validThe selector cell; column C tests membership, =IF(OR(B14="Base",B14="Upside",B14="Downside"),"OK","FAIL")
Scenario directionalityThe three cases' EBITDA at the last projection year; column C tests the whole ordering, =IF(AND(Downside<Base,Base<Upside),"OK","FAIL")

Group 2: diagnostics. Each carries a band, and a breach is a question about the forecast rather than a defect.

CheckColumn B holdsBand
Capex and depreciation cohereTerminal-year capex divided by terminal-year depreciationinside roughly 0.8x to 1.5x unless the build says otherwise
Implied asset life stableMax minus min of (net PP&E divided by depreciation) across the forecasta drift of more than a couple of years is a schedule defect
Days ratios in rangeThe largest absolute change in DSO, DIO or DPO against the anchoring windowa move of more than a few days needs a stated reason
Margin driftTerminal-year EBITDA margin minus the historical maximumabove it, the forecast is claiming a record and should say why
Leverage in boundsPeak net debt to EBITDA across the forecastagainst the covenant, where one is known
Interest coverageMinimum EBITDA divided by interest expenseagainst the covenant, where one is known

The two roll-up rows, the read-back after recalculation and what an open WARN owes the delivery are in the xlsx contract above.

Where a template already ships its own checks dashboard, add these rows to it and put the roll-up at the bottom of that sheet rather than creating a second one.

When the roll-up reads FAIL: go to the source tab that owns the failing row and fix it in the build script rather than in the check, then rerun the script.

Done when both groups are present and labelled and the roll-up reads OK from recalculated values.

Step 7: Deliver

  • Toggle through every scenario and confirm no hard check fails in any of them
  • Resolve every #REF!, #DIV/0!, #VALUE! and #NAME?, or document the one that is expected and why
  • Confirm no input cell still holds a placeholder
  • Confirm the Cover is the first sheet and every tile on it is a formula pointing at the output it reports
  • State the readiness posture from .agents/skills/research-conventions/SKILL.md, forced down by any unanchored driver, any unexplained WARN, or any figure past its freshness threshold, and name the driver responsible
  • Save everything under {task}/, and keep the build script beside the workbook so the model can be rebuilt

Done when recalc.py reports success, audit.py --strict reports no fail, the roll-up reads OK in every scenario, and the posture is stated with its reason.

Optional Analysis Blocks

Build these when the user asks for them or the template has rows waiting for them, and skip them otherwise.

Margins, displayed directly below each profit line on the income statement: gross margin below gross profit, EBITDA margin below EBITDA, EBIT margin below EBIT, net margin below net income. Each is the profit line over revenue.

Credit metrics, on the balance sheet: total debt to EBITDA and net debt to EBITDA for leverage, EBITDA to interest expense for coverage, debt to total capital and debt to equity for structure, current and quick ratios for liquidity. Where covenants are known, add an explicit compliance row against each threshold and flag the result.

Sign Conventions

StatementItemSign
CFOD&A, SBCpositive (add-back)
CFOincrease in ARnegative (use of cash)
CFOincrease in APpositive (source of cash)
CFIcapexnegative
CFFdebt issuancepositive
CFFdebt repaymentnegative
CFFdividendsnegative

© ginlix-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (references) in plugins/langalpha_research/skills/3-statements of ginlix-ai/LangAlpha.

  • SKILL.md
  • references/formatting.md
  • references/formulas.md
  • references/line-items.md
  • references/sec-filings.md

Open the folder on GitHubat commit 2855e43

Compare with similar skills

Three-Statement Model Builder next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Three-Statement Model Builder compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Three-Statement Model Builder this skillginlix-ai/LangAlpha1.8k—~5.4kAutomated safety check: PassApache-2.0
Dcf ModelWind-Alice/AliceMarket1342 repos~12kAutomated safety check: PassNone
XLSX Financialsagentii-ai/agentii-investment-intelligence207—~2kAutomated safety check: PassApache-2.0
Dcf ModelLuciole-Studio/Misaka-Agent1712 repos~12kAutomated safety check: PassApache-2.0
XLSX Spreadsheet ToolkitXiaomiMiMo/MiMo-Code14k—~2.9kAutomated safety check: PassApache-2.0
Excel Spreadsheet Builderagentscope-ai/QwenPaw36k—~1.8kAutomated safety check: PassProprietary

Similar skills

  • Dcf Model

    Wind-Alice/AliceMarket

    Real DCF (Discounted Cash Flow) model creation for equity valuation.

    134 GitHub starsUsed in 2 repos~12k tokens
    Business, Finance & HRAuto-check passed
  • XLSX Financials

    agentii-ai/agentii-investment-intelligence

    Produce formatted .xlsx financial statement workbooks from XBRL statement data.

    207 GitHub stars~2k tokensUpdated 11 days ago
    Documents & OfficeAuto-check passed
  • Dcf Model

    Luciole-Studio/Misaka-Agent

    Build discounted cash flow valuation workbooks in Excel. An agent skill from Luciole-Studio/Misaka-Agent.

    171 GitHub starsUsed in 2 repos~12k tokens
    Business, Finance & HRAuto-check passed
  • XLSX Spreadsheet Toolkit

    XiaomiMiMo/MiMo-Code

    Builds, edits, cleans, recalculates and reads Excel workbooks and CSV files with openpyxl and pandas, plus LibreOffice for recalculation and PDF export.

    14k GitHub stars~2.9k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Excel Spreadsheet Builder

    agentscope-ai/QwenPaw

    Creates, edits, cleans and analyzes Excel and CSV files with openpyxl and pandas, recalculating formulas through LibreOffice so files are delivered without formula errors.

    36k GitHub stars~1.8k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Working With Spreadsheets

    aiskillstore/marketplace

    Creates and edits Excel spreadsheets with formulas, formatting, and financial modeling standards.

    433 GitHub stars~1.3k tokensUpdated yesterday
    Documents & OfficeAuto-check passed

More from ginlix-ai/LangAlpha

All 37 skills in this repo
  • Investment Deck Check

    ginlix-ai/LangAlpha

    Quality-checks an investment deck in .pptx form before it goes out: number consistency, chart and narrative alignment, source coverage, language and a circulation verdict.

    1.8k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Equity Initiation Report

    ginlix-ai/LangAlpha

    Produces a first-time equity research initiation report in five tasks: company research, financial model, valuation, charts and a DOCX report.

    1.8k GitHub stars~3.8k tokensUpdated today
    Auto-check passed
  • Financial Model Checker

    ginlix-ai/LangAlpha

    Audits an existing Excel financial model without editing it, checking structure, formulas, integrity identities and source tie-out, and ends in a prioritized issue log.

    1.8k GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • DCF Model Builder

    ginlix-ai/LangAlpha

    Builds a live Excel DCF valuation workbook with free cash flow projections, WACC, terminal value, three scenarios, sensitivity grids and a reverse DCF.

    1.8k GitHub stars~7.7k tokensUpdated today
    Auto-check passed
  • Builds Word files with python-docx, edits existing ones in place with tracked changes and comments, then renders and validates the result.

    1.8k GitHub stars~4.8k tokensUpdated today
    Auto-check passed
  • Financial Model Updater

    ginlix-ai/LangAlpha

    Refreshes an existing financial model after earnings, guidance, filings or capital-structure changes, editing a versioned copy and recording what changed and why.

    1.8k GitHub stars~3.1k tokensUpdated today
    Auto-check passed

Questions about Three-Statement Model Builder

What does Three-Statement Model Builder do?

Builds or repairs an integrated income statement, balance sheet and cash flow model in Excel with live formulas, supporting schedules, scenarios and a Checks sheet. An integrated model is treated as two artifacts in one workbook: a faithful transcription of what the company reported, and a forecast made of arguments, with the seam between them kept visible. Every projection cell, roll-forward, linkage and subtotal must be a live Excel formula, never a value computed in Python.

When should I use Three-Statement Model Builder?

Three-Statement Model Builder fits situations like: building a linked income statement, balance sheet and cash flow model; repairing a model whose balance sheet does not balance; populating an existing model template from company filings; adding scenarios, sensitivities and a checks sheet to a model.

How do I install Three-Statement Model Builder in Claude Code?

Run `npx skills add ginlix-ai/LangAlpha --skill 3-statements -a claude-code`. Or copy the skill folder (plugins/langalpha_research/skills/3-statements in ginlix-ai/LangAlpha) into .claude/skills/3-statements in your project. Claude Code loads it when a task matches its description.

How do I install Three-Statement Model Builder in Codex?

Run `npx skills add ginlix-ai/LangAlpha --skill 3-statements -a codex`. Or copy the skill folder (plugins/langalpha_research/skills/3-statements in ginlix-ai/LangAlpha) into .agents/skills/3-statements in your project. Codex loads it when a task matches its description.

Can I use Three-Statement Model Builder in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ginlix-ai/LangAlpha --skill 3-statements -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/3-statements, .gemini/skills/3-statements, .github/skills/3-statements and .opencode/skills/3-statements in your project.

What does Three-Statement Model Builder need to run?

Going by SKILL.md and its folder, Three-Statement Model Builder needs the command-line tools its instructions call (python). Our summary lists: Python with openpyxl; The xlsx skill's recalc.py and audit.py scripts.

Does Three-Statement Model Builder access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Three-Statement Model Builder safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Three-Statement Model Builder use?

Three-Statement Model Builder is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Three-Statement Model Builder use?

About 5.4k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.7k tokens, read only when the agent opens those files.

What are the alternatives to Three-Statement Model Builder?

Skills that share tags, products or a category with Three-Statement Model Builder: Dcf Model (Wind-Alice/AliceMarket, 134 stars), XLSX Financials (agentii-ai/agentii-investment-intelligence, 207 stars), Dcf Model (Luciole-Studio/Misaka-Agent, 171 stars) and XLSX Spreadsheet Toolkit (XiaomiMiMo/MiMo-Code, 14k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Three-Statement Model Builder?

ginlix-ai (a GitHub organization) maintains it in ginlix-ai/LangAlpha, which has 1,811 GitHub stars. The repository holds 37 skills in this directory. The repository was last updated on October 10, 2026.

Source: ginlix-ai/LangAlpha on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.