Money Finance
iamzifei/show-me-the-money
Financial tracking, revenue analytics, expense management, and pricing optimization.
Refreshes an existing financial model after earnings, guidance, filings or capital-structure changes, editing a versioned copy and recording what changed and why.
$ npx skills add ginlix-ai/LangAlpha --skill model-update -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ginlix-ai/LangAlpha model-update --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "model-update" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/model-update into .claude/skills/model-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-update", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/model-updateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ginlix-ai/LangAlpha --skill model-update -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ginlix-ai/LangAlpha model-update --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/langalpha_research/skills/model-update .agents/skills/model-update && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "model-update" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/model-update into .agents/skills/model-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-update", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ginlix-ai/LangAlpha --skill model-update -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ginlix-ai/LangAlpha model-update --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/langalpha_research/skills/model-update .cursor/skills/model-update && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "model-update" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/model-update into .cursor/skills/model-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-update", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ginlix-ai/LangAlpha.git --path plugins/langalpha_research/skills/model-update--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ginlix-ai/LangAlpha --skill model-update -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ginlix-ai/LangAlpha model-update --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/langalpha_research/skills/model-update .gemini/skills/model-update && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "model-update" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/model-update into .gemini/skills/model-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-update", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ginlix-ai/LangAlpha model-updateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ginlix-ai/LangAlpha --skill model-update -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/langalpha_research/skills/model-update .github/skills/model-update && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "model-update" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/model-update into .github/skills/model-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-update", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ginlix-ai/LangAlpha --skill model-update -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ginlix-ai/LangAlpha model-update --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ginlix-ai/LangAlpha.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/langalpha_research/skills/model-update .opencode/skills/model-update && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "model-update" agent skill from https://github.com/ginlix-ai/LangAlpha/tree/main/plugins/langalpha_research/skills/model-update into .opencode/skills/model-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-update", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
model-updateRefreshes 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.
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.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 111a0f6. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
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.
.claude/skills/model-update/SKILL.md (or your agent's skills folder).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:
Checks sheet fails, or the model looks wrong before you touch it: audit it first with .agents/skills/check-model/SKILL.md..agents/skills/dcf-model/references/sector-drivers.md lists what drives each sector.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.
| Trigger | Arrives as | Touches |
|---|---|---|
| Results | a reported quarter or year | historical actuals, the LTM roll, and the forward periods the print reprices |
| Guidance change | a range, a raise, a cut, a withdrawal | the driver rows for the guided periods, and the basis note beside them |
| Consensus move | a revised mean estimate with its vintage | the comparison column, never the model's own drivers |
| Transcript disclosure | a number said on a call | the operating metrics it re-anchors, and any driver built on them |
| Filing | 10-K, 10-Q, 8-K, proxy | restatements, segment re-cuts, share count, the debt schedule, contingencies |
| KPI release | a monthly or quarterly operating metric | the sector KPI rows, and the revenue build above them |
| Capital structure change | a buyback, an issuance, a raise, a repayment | diluted share count, net debt, the equity bridge |
| Market data move | price, rates, FX | the 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.
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.
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.
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 point | New value | As-of | Source | Target sheet!cell | What is there now | Treatment |
|---|
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:
| Treatment | Holds when | What happens |
|---|---|---|
safe to write | the target is a declared input cell and the new value is the same quantity on the same basis | overwrite it in the copy and log the write |
reference only | the target holds a formula, or writing would cut a linkage the model depends on | record the figure beside the model and leave the cell computing |
no place in the model | the model carries no line for the item | record it in the unwritten block of the change log and raise it on delivery |
needs an assumption | the model's cell needs something the source does not supply, an allocation, a split, a period conversion | write the chosen value into the declared input cell, label it assumption per the evidence rules, and log it as an assumption |
requires rebuild | the change is structural: a segment re-cut, an accounting-basis change, a driver the model does not have | write nothing, and route it per When to rebuild instead |
Two rules the table carries with it:
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.
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 | noteBelow 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.
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 incomeWhen 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 EPSThen 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.
A new price target on its own tells the reader nothing about what moved it. Report the change and its drivers:
| Prior | Updated | Change | |
|---|---|---|---|
| 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.
python .agents/skills/xlsx/scripts/recalc.py <file> 60 # until status is "success"
python .agents/skills/xlsx/scripts/audit.py <file> --strict # fix every failThen 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.
Everything under {task}/:
Change Log sheet,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.
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.
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:
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
Just SKILL.md in plugins/langalpha_research/skills/model-update of ginlix-ai/LangAlpha.
Open the folder on GitHubat commit 111a0f6
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Financial Model Updater this skillginlix-ai/LangAlpha | 1.8k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Money Financeiamzifei/show-me-the-money | 1k | — | ~2.2k | Automated safety check: Pass | Custom licence | |
| Longbridge Fundamentalshelsome/folio | 269 | 1 repos | ~1.8k | Automated safety check: Pass | MIT | |
| Financial Analystalirezarezvani/claude-skills | 28k | 1 repos | ~1.8k | Automated safety check: Pass | MIT | |
| Company Valuation MethodsHKUDS/Vibe-Trading | 35k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Financetravisjneuman/.claude | 101 | 1 repos | ~3k | Automated safety check: Pass | MIT |
iamzifei/show-me-the-money
Financial tracking, revenue analytics, expense management, and pricing optimization.
helsome/folio
Financial statements, business segments, dividends, valuation multiples (PE/PB/PS), industry comparison, operating data, corporate actions, company and executive profiles, cross-stock comparison…
alirezarezvani/claude-skills
Runs financial ratio analysis, DCF valuation, budget variance reports and rolling forecasts from statement data using four bundled Python scripts.
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.
travisjneuman/.claude
Financial analysis expertise for financial modeling (DCF, LBO, M&A), valuation, financial statement analysis, capital allocation, treasury management, and corporate finance decisions.
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…
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.
ginlix-ai/LangAlpha
Produces a first-time equity research initiation report in five tasks: company research, financial model, valuation, charts and a DOCX report.
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.
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.
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.
ginlix-ai/LangAlpha
Builds Word files with python-docx, edits existing ones in place with tracked changes and comments, then renders and validates the result.
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.