3-statement-model

3-statement-model is a skill for Claude Code, Codex from anthropics/financial-services. It costs 91 tokens per session (4,689 once invoked), scanned A, a copy of 3-statement-model, Apache-2.0.

A guide for completing integrated three-statement financial models: the income statement, balance sheet, and cash flow statement.

In plain words
What is it for?
Populating partially completed financial models with formulas and data in Excel or standalone spreadsheet files.
Why use it?
It helps keep the three statements linked correctly when filling in an existing spreadsheet template.

Skill for Claude CodeCodex

Part of the model-builder plugin — 3 skills, 1 agent shipped together

About the project

Claude for Financial Services is a collection of agents, skills, commands, plugins, and data connectors for investment banking, equity research, private equity, and wealth-management workflows. Financial professionals use it to draft models, memos, research notes, and reconciliations for review by qualified people. The catalogue contains components from these workflows, including agents, skills, plugins, commands, and instructions.

anthropics/financial-services · 34,627 stars · on GitHub

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/anthropics/financial-services/3-statement-model
Any agent
npx skills add anthropics/financial-services --skill 3-statement-model
Clone the repo
git clone --depth 1 https://github.com/anthropics/financial-services

Made for: Claude Code, Codex.

Or install model-builder, the plugin that ships this one along with the rest of its 3 skills, 1 agent.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for 3-statement-model

README.md
[![agentmods](https://agentmods.dev/badge/skills/anthropics/financial-services/3-statement-model.svg)](https://agentmods.dev/skills/anthropics/financial-services/3-statement-model)
Your own site
<a href="https://agentmods.dev/skills/anthropics/financial-services/3-statement-model"><img src="https://agentmods.dev/badge/skills/anthropics/financial-services/3-statement-model.svg" alt="Measured on agentmods" height="20"></a>
Per session 91 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,689 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin 86% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00091 $0.04689
Opus 5 $0.00046 $0.02344
Sonnet 5 $0.00018 $0.00938
Haiku 4.5 $0.00009 $0.00469

Measured 5d ago against content hash bc2aeb423a3c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

3-statement-model scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

86% identical to 3-statement-model — 39 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

plugins/agent-plugins/model-builder/skills/3-statement-model/SKILL.md · 409 lines

How it starts

The opening of the file, as written. The whole thing — 409 lines — stays where its author put it; the contents beside it link to each section on GitHub.

3-Statement Financial Model Template Completion

Complete and populate integrated financial model templates with proper linkages between Income Statement, Balance Sheet, and Cash Flow Statement.

⚠️ CRITICAL PRINCIPLES — Read Before Populating Any Template

Environment — Office JS vs Python:

  • If running inside Excel (Office Add-in / Office JS): Use Office JS directly. Write formulas via range.formulas = [["=D14*(1+Assumptions!$B$5)"]] — never range.values for derived cells. No separate recalc; Excel computes natively. Use context.workbook.worksheets.getItem(...) to navigate tabs.
  • If generating a standalone .xlsx file: Use Python/openpyxl. Write ws["D15"] = "=D14*(1+Assumptions!$B$5)", then run recalc.py before delivery.
  • Office JS merged cell pitfall: Do NOT call .merge() then set .values on the merged range — throws InvalidArgument because the range still reports its pre-merge dimensions. Instead write value to top-left cell alone, then merge + format the full range: ws.getRange("A1").values = [["INCOME STATEMENT"]]; const h = ws.getRange("A1:G1"); h.merge(); h.format.fill.color = "#1F4E79";
  • All principles below apply identically in either environment.

Formulas over hardcodes (non-negotiable):

  • Every projection cell, roll-forward, linkage, and subtotal MUST be an Excel formula — never a pre-computed value
  • When using Python/openpyxl: write formula strings (ws["D15"] = "=D14*(1+Assumptions!$B$5)"), NOT computed results (ws["D15"] = 12500)
  • The ONLY cells that should contain hardcoded numbers are: (1) historical actuals, (2) assumption drivers in the Assumptions tab
  • If you find yourself computing a value in Python and writing the result to a cell — STOP. Write the formula instead.
  • Why: the model must flex when scenarios toggle or assumptions change. Hardcodes break every downstream integrity check silently.

Verify step-by-step with the user:

  1. After mapping the template → show the user which tabs/sections you've identified and confirm before touching any cells
  2. After populating historicals → show the user the historical block and confirm values/periods match source data
  3. After building IS projections → run the subtotal checks, show the user the projected IS, confirm before moving to BS
  4. After building BS → show the user the balance check (Assets = L+E) for every period, confirm before moving to CF
  5. After building CF → show the user the cash tie-out (CF ending cash = BS cash), confirm before finalizing
  6. Do NOT populate the entire model end-to-end and present it complete — break at each statement, show the work, catch errors early

Read the full file on GitHub · 409 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 409 lines · 91 tokens per session scan A bc2aeb423a3c

Subscribe to this mod's changes

3-statement-model is a skill published in the GitHub repository anthropics/financial-services (34,627 stars, last pushed 10d ago), licensed Apache-2.0. It adds 91 tokens to every session and 4,689 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. It is 86% identical to 3-statement-model, differing in 39 lines, and is treated as a copy.

Related

Other skills, from other repositories

sector-rotation

行业轮动分析——申万行业景气度评分、行业动量排名、产业链传导、估值/盈利/资金流多维比较框架.

HKUDS/Vibe-Trading · 39 tokens

twitter-reader

Read Twitter/X for financial research using opencli (read-only). Use this skill whenever the user wants to read their Twitter feed, search for financial tweets, view bookmarks, look up user profiles, or gather market sentiment from Twitter/X. Triggers include: "check my feed", "search Twitter for", "show my…

himself65/finance-skills · 161 tokens

strategy-pivot-designer

Detect backtest iteration stagnation and generate structurally different strategy pivot proposals when parameter tuning reaches a local optimum.

tradermonty/claude-trading-skills · 28 tokens

chenhao-limit-up

Use when evaluating A-share limit-up (涨停板) setups through Chen Hao's sentiment and momentum lens: market emotion cycles, board strength, follow-through, and short-term aggressive momentum trading.

questflowai/investorskills · 44 tokens

trading-risk-gate

Unified pre-trade safety gate: Ruin check (Law #1), ergodicity audit, and win-rate dominance validation. Absorbs: ergodicity-check, law-of-ruin, win-rate-dominance.

winstonkoh87/Athena-Public · 53 tokens

multi-expert-analyzer

针对通用问题进行多领域专家联合分析, 综合稿产生前必经 fact-checker 与 red-team 两道独立校验。适用场景: 用户提出跨领域或不确定领域的复杂问题, 需要从多个专家角度分别搜证并相互校验后综合成文, 例如该不该买房、该不该跳槽、是否进入某个赛道等。触发关键词: 多角度分析、专家分析、综合分析、多视角、跨领域分析、从不同角度看、深度分析。问题只属于单一明确领域时, 优先使用该领域的专门 skill, 例如纯财务用 finance-core-analysis、纯技术用 software-architect。输出 (全部 markdown 保存到当前项目 markdown/ 目录): (1) 每位专家的中间分析稿…

digoal/blog · 292 tokens