Agent skill

Financial Model Updater

by ginlix-ai in 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.

Apache-2.0Auto-check passedBusiness, Finance & HR

Install Financial Model Updater

skills CLI
$ npx skills add ginlix-ai/LangAlpha --skill model-update -a claude-code

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

GitHub CLI
$ gh skill install ginlix-ai/LangAlpha model-update --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/model-update .claude/skills/model-update && 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
model-update
GitHub stars
1.8k
Token cost
~3.1k tokens
SKILL.md length
1,772 words
Files
1
Skills in repo
38
Repo updated
First seen
Licence
Apache-2.0

At a glance

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

  • Works in 8 steps: Name the trigger and list the fields it… → Take a versioned copy → Map every data point before you write → …
  • A company has reported a quarter and the existing model needs rolling forward
  • SKILL.md covers Step 1: Name the trigger and…, Step 2: Take a versioned copy, Step 3: Map every data point… and Step 4: Write the resolved…, plus 6 more sections
  • Calls python

What it does

Refreshing a model starts with naming the single trigger behind it: a reported quarter, a guidance change, a consensus move, a transcript disclosure, a filing, a KPI release, a capital-structure change or a market data move. The agent then writes down which fields that trigger reaches before the workbook is opened.

Every edit lands on a versioned copy, so the file you supplied stays exactly as it arrived and you can reconcile against it. Each data point is mapped to a treatment before any cell changes, and the result is meant to show a reader what changed and on whose authority. A trigger that is really two, such as a print that also restates a prior year, is handled as two separate updates.

The skill points to companion material: check-model when the workbook's Checks sheet fails or the model looks wrong, a sector-drivers reference when operating metrics have to move, and research-conventions for evidence labels, source tiers and staleness, which is read before the first write.

When your agent uses it

  • A company has reported a quarter and the existing model needs rolling forward
  • Management raised, cut or withdrew guidance and the driver rows need revising
  • A 10-K, 10-Q or 8-K changes the share count, debt schedule or segment figures
  • Estimates or a price target need refreshing after a consensus move

Example prompts

  • “The new quarter is out. Roll the model in ./models/acme.xlsx forward and show what changed.”
  • “Revise estimates after the guidance cut and keep the original workbook untouched.”
  • “Update the share count and net debt for the buyback announced in the latest 8-K.”

Requirements

  • An existing financial model workbook
  • A source document for the trigger, such as a filing or call transcript

Workflow steps

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

  1. Name the trigger and list the fields it touches
  2. Take a versioned copy
  3. Map every data point before you write
  4. Write the resolved rows and log every one
  5. Rebase the estimates
  6. Restate the valuation as a delta
  7. Recalculate, audit, and say which
  8. Deliver

What it can do on your machine

Read from SKILL.md and the folder at commit 111a0f6. 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

Financial Model Updater loads about 3.1k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 1,772 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

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 111a0f6, republished under its Apache-2.0 licence (© ginlix-ai). 1,772 words, ~3,058 tokens.

Download SKILL.mdSave it as .claude/skills/model-update/SKILL.md (or your agent's skills folder).
name
model-update
description
Refresh an existing financial model after a print, a guidance change, a consensus move, a filing, a KPI release or a capital-structure change. Triggers on update the model, roll it forward, the new quarter is out, revise estimates, refresh the price target.

Model Update

Updating is not building. You know what changed in the world and you do not know what the file will do when you write into it, so the order below maps every data point to a treatment before a single cell moves, keeps the file the user gave you byte-identical, and leaves a reader able to see what changed and on whose authority.

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

Routing before you start:

  • The workbook's own Checks sheet fails, or the model looks wrong before you touch it: audit it first with .agents/skills/check-model/SKILL.md.
  • The refresh has to move operating metrics rather than the three statements: .agents/skills/dcf-model/references/sector-drivers.md lists what drives each sector.

Step 1: Name the trigger and list the fields it touches

One update has one trigger. Name it, hold the document or the tool call that carries it, and write down the fields it reaches before opening the workbook.

TriggerArrives asTouches
Resultsa reported quarter or yearhistorical actuals, the LTM roll, and the forward periods the print reprices
Guidance changea range, a raise, a cut, a withdrawalthe driver rows for the guided periods, and the basis note beside them
Consensus movea revised mean estimate with its vintagethe comparison column, never the model's own drivers
Transcript disclosurea number said on a callthe operating metrics it re-anchors, and any driver built on them
Filing10-K, 10-Q, 8-K, proxyrestatements, segment re-cuts, share count, the debt schedule, contingencies
KPI releasea monthly or quarterly operating metricthe sector KPI rows, and the revenue build above them
Capital structure changea buyback, an issuance, a raise, a repaymentdiluted share count, net debt, the equity bridge
Market data moveprice, rates, FXthe spot anchor, the WACC inputs, and the implied return

A trigger that is really two, a print that also restates a prior year, is two rows in Step 3 rather than one blurred update.

Done when the trigger is named, its source is in hand with an as-of date, and the list of fields it touches exists in writing.

Step 2: Take a versioned copy

Every edit lands on a copy. The file the user gave you is the thing they can reconcile against, and it stays exactly as it arrived.

bash
shasum -a 256 "$SRC"                                   # before anything
cp "$SRC" "{task}/<name>_v2_$(date +%F).xlsx"

Increment the version rather than overwriting a previous update, so a reader can diff two vintages of the same model.

Done when the copy exists under the task directory and the source file's hash matches the one taken before any edit.

Step 3: Map every data point before you write

Read the workbook twice, once for formulas and once with data_only=True, per Editing an Existing Workbook in .agents/skills/xlsx/SKILL.md. Then build the mapping table. It is the reviewable artifact of this skill: the table, not the edit, is what you present first.

Data pointNew valueAs-ofSourceTarget sheet!cellWhat is there nowTreatment

What is there now is one of declared input, formula, or absent, read from the workbook rather than assumed. Treatment comes from this closed set:

TreatmentHolds whenWhat happens
safe to writethe target is a declared input cell and the new value is the same quantity on the same basisoverwrite it in the copy and log the write
reference onlythe target holds a formula, or writing would cut a linkage the model depends onrecord the figure beside the model and leave the cell computing
no place in the modelthe model carries no line for the itemrecord it in the unwritten block of the change log and raise it on delivery
needs an assumptionthe model's cell needs something the source does not supply, an allocation, a split, a period conversionwrite the chosen value into the declared input cell, label it assumption per the evidence rules, and log it as an assumption
requires rebuildthe change is structural: a segment re-cut, an accounting-basis change, a driver the model does not havewrite nothing, and route it per When to rebuild instead

Two rules the table carries with it:

  • A restatement keeps both figures. When the company restates a prior period, the row records the original and the restated value and the model shows the restated one, so the estimate history stays readable rather than quietly rewritten.
  • Market-sensitive inputs carry an as-of every time. Price, diluted share count, net debt, consensus, FX and rates each get the date they were captured, in the mapping row and in the cell's provenance comment.

Done when every data point from Step 1 has a row, every row carries exactly one of the five treatments, and the table has been presented to the user before the first cell is written. That stop is an intake exception and yields under .agents/skills/research-conventions/references/intake.md.

Step 4: Write the resolved rows and log every one

Write the rows tagged safe to write and the rows tagged needs an assumption, and only into declared input cells. An assumption row carries its basis in the cell's provenance comment and is logged as an assumption, so the change log tells a sourced write from a chosen one.

Structural edits, a new period column or a new line item, go through python .agents/skills/xlsx/scripts/insert.py rather than openpyxl's own row insert, which moves values and leaves formulas, defined names, chart ranges and merges pointing at the cells that used to be there. Its --help prints the subcommands and flags. Read the warnings it returns for #REF! results before continuing.

The workbook gains a Change Log sheet, written by the edit script, one row per write:

date | sheet!cell | line item | old value | new value | source | as-of | treatment | note

Below the written rows, the same sheet carries the unwritten block: every mapping row tagged reference only, no place in the model or requires rebuild, with the reason. A reader who opens only this sheet learns what moved, what did not, and why.

Each written input keeps a provenance comment naming the source and the as-of, replacing the one that was there.

Done when every written row has a Change Log row saying whether it was sourced or assumed, every logged cell holds the new value, and the unwritten block accounts for every mapping row that was not written.

Show full SKILL.md (729 more words)Show less

Step 5: Rebase the estimates

Reported to adjusted. The reported figures and the basis the model runs on are different metrics. Bridge them, one line per adjustment, and say which basis the model uses:

Reported operating income | + stock compensation | + restructuring | + acquisition amortisation | = adjusted operating income

When the company changes its own definition of the adjusted measure, that change is a finding: name it, show both definitions on the affected period, and treat the periods either side as not comparable until the bridge is restated.

Estimate change by driver. Show the walk, not just the new numbers. Each step is a driver, and the steps close on the new estimate:

Prior FY26 EPS | volume | price/mix | gross margin | operating expense | share count | tax | = new FY26 EPS

Then compare the revised estimates against consensus, with the consensus vintage stated.

Done when the bridge's closing figure equals the model's new estimate cell for every period shown, and every adjustment line and driver step names its source or its reason.

Step 6: Restate the valuation as a delta

A new price target on its own tells the reader nothing about what moved it. Report the change and its drivers:

PriorUpdatedChange
Fair value per share
Spot price, as of
Implied return

Then decompose the change into estimate revision, discount rate or multiple change, capital structure, and the roll forward of one period, so the components sum to the total change.

The stance the number implies, and the vocabulary available for it, come from .agents/skills/research-conventions/references/judgment.md.

Done when the decomposition sums to the change in fair value, and the spot price and implied return both carry the same as-of.

Step 7: Recalculate, audit, and say which

bash
python .agents/skills/xlsx/scripts/recalc.py <file> 60      # until status is "success"
python .agents/skills/xlsx/scripts/audit.py  <file> --strict # fix every fail

Then reopen with data_only=True and read the Checks roll-up, if the workbook carries one. A cached value shows a passing check on a broken model, which is why the delivery message states plainly whether the file was recalculated or whether displayed values are the ones that were already there.

Done when recalc.py reports success, audit.py --strict reports no fail, the Checks roll-up reads OK, and the delivery message says the workbook was recalculated.

Step 8: Deliver

Everything under {task}/:

  • the updated workbook, carrying the Change Log sheet,
  • the estimate-change summary: what changed, why, whether it is thesis-changing or noise,
  • the valuation delta from Step 6.

The message that delivers them carries three things: the readiness posture, read from the table in .agents/skills/research-conventions/SKILL.md against the state the update leaves the model in, where an assumption row means a load-bearing input rests on a chosen number and a requires rebuild row means the model cannot represent the change at all; the rows that were not written and what they would take; and the monitoring items the update creates, in the table shape .agents/skills/research-conventions/references/judgment.md gives.

Done when the posture is stated with the specific row responsible for it, and every unwritten mapping row appears in the message.

When the model cannot be edited safely

Some workbooks cannot take a write without breaking. The tells: the target cells hold formulas rather than inputs, the file drives external links or macros, it carries pivot caches or objects openpyxl drops on save, or it is the user's system of record and they have not asked for it to be changed.

Deliver a control pack instead: the original untouched, plus a companion workbook whose sheets say what they hold, New Data, Bridge, Implied Impact, Change Log. The pack stands alone, since a cross-workbook link cannot be resolved: values taken from the original are typed in with a provenance comment naming the sheet and cell they came from, and everything computed inside the pack is a live formula under the conventions in .agents/skills/xlsx/SKILL.md.

Done when the original's hash is unchanged, and every sheet in the pack names the cells of the original it corresponds to.

When to rebuild instead

An update assumes the model's shape still fits the company. These changes break that assumption, and updating through them produces a model that ties and misstates:

  • the company re-cut its segments, or changed what a segment contains,
  • the accounting basis changed: a new standard adopted, a revenue-recognition change, a reporting-currency change,
  • a merger, divestiture or spin changed the entity the model describes,
  • the driver the update needs does not exist in the model at all.

Say so rather than forcing the write, and route it: .agents/skills/3-statements/SKILL.md for the operating model, .agents/skills/dcf-model/SKILL.md for the valuation. The mapping table is what carries into the rebuild, since it already says what the new shape has to hold.

© 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

Just SKILL.md in plugins/langalpha_research/skills/model-update of ginlix-ai/LangAlpha.

Open the folder on GitHubat commit 111a0f6

Compare with similar skills

Financial Model Updater 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.

Financial Model Updater compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Financial Model Updater this skillginlix-ai/LangAlpha1.8k—~3.1kAutomated safety check: PassApache-2.0
Money Financeiamzifei/show-me-the-money1k—~2.2kAutomated safety check: PassCustom licence
Longbridge Fundamentalshelsome/folio2691 repos~1.8kAutomated safety check: PassMIT
Financial Analystalirezarezvani/claude-skills28k1 repos~1.8kAutomated safety check: PassMIT
Company Valuation MethodsHKUDS/Vibe-Trading35k—~2.2kAutomated safety check: PassMIT
Financetravisjneuman/.claude1011 repos~3kAutomated safety check: PassMIT

Similar skills

  • Money Finance

    iamzifei/show-me-the-money

    Financial tracking, revenue analytics, expense management, and pricing optimization.

    1k GitHub stars~2.2k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Financial statements, business segments, dividends, valuation multiples (PE/PB/PS), industry comparison, operating data, corporate actions, company and executive profiles, cross-stock comparison…

    269 GitHub starsUsed in 1 repo~1.8k tokens
    Business, Finance & HRAuto-check passed
  • Financial Analyst

    alirezarezvani/claude-skills

    Runs financial ratio analysis, DCF valuation, budget variance reports and rolling forecasts from statement data using four bundled Python scripts.

    28k GitHub starsUsed in 1 repo~1.8k tokens
    Business, Finance & HRAuto-check passed
  • Company Valuation Methods

    HKUDS/Vibe-Trading

    Walks through company valuation with DCF, dividend discount and sum-of-the-parts models, relative multiples, sensitivity tables and a valuation-trap checklist.

    35k GitHub stars~2.2k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • Finance

    travisjneuman/.claude

    Financial analysis expertise for financial modeling (DCF, LBO, M&A), valuation, financial statement analysis, capital allocation, treasury management, and corporate finance decisions.

    101 GitHub starsUsed in 1 repo~3k tokens
    Business, Finance & HRAuto-check passed
  • Research Finance

    alirezarezvani/claude-skills

    A skill your agent uses when managing the money for an internal R&D program or portfolio — building a multi-period program budget with the F&A (indirect) split, tracking burn rate and runway against…

    28k GitHub stars~2.7k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed

More from ginlix-ai/LangAlpha

All 38 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
  • 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.

    1.8k GitHub stars~5.4k 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

Questions about Financial Model Updater

What does Financial Model Updater do?

Refreshes an existing financial model after earnings, guidance, filings or capital-structure changes, editing a versioned copy and recording what changed and why. Refreshing a model starts with naming the single trigger behind it: a reported quarter, a guidance change, a consensus move, a transcript disclosure, a filing, a KPI release, a capital-structure change or a market data move. The agent then writes down which fields that trigger reaches before the workbook is opened.

When should I use Financial Model Updater?

Financial Model Updater fits situations like: A company has reported a quarter and the existing model needs rolling forward; management raised, cut or withdrew guidance and the driver rows need revising; A 10-K, 10-Q or 8-K changes the share count, debt schedule or segment figures; estimates or a price target need refreshing after a consensus move.

How do I install Financial Model Updater in Claude Code?

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

How do I install Financial Model Updater in Codex?

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

Can I use Financial Model Updater 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 model-update -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/model-update, .gemini/skills/model-update, .github/skills/model-update and .opencode/skills/model-update in your project.

What does Financial Model Updater need to run?

Going by SKILL.md and its folder, Financial Model Updater needs the command-line tools its instructions call (python). Our summary lists: An existing financial model workbook; A source document for the trigger, such as a filing or call transcript.

Does Financial Model Updater 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 Financial Model Updater 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 Financial Model Updater use?

Financial Model Updater 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 Financial Model Updater use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Financial Model Updater?

Skills that share tags, products or a category with Financial Model Updater: Money Finance (iamzifei/show-me-the-money, 1k stars), Longbridge Fundamentals (helsome/folio, 269 stars), Financial Analyst (alirezarezvani/claude-skills, 28k stars) and Company Valuation Methods (HKUDS/Vibe-Trading, 35k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Financial Model Updater?

ginlix-ai (a GitHub organization) maintains it in ginlix-ai/LangAlpha, which has 1,806 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on October 8, 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.