Finance update pack
@ledgerly/finance-update-pack
Write the monthly finance update for leadership or investors from a few inputs: revenue, costs, cash, and plan. A script computes plan vs actual, flags the variances that matter, and works out burn and runway; Claude drafts the narrative and asks you for the why behind each big variance.
- Activity
- New: be the first to try it
- Installs
- 0 installs
- Likes
- 0 likes
- Clones
- 0 clones
What it makes
Real output from this kit
- Sample file4 KB, download to openFinance update varianceFrom the kit's tests
- Sample file2 KB, download to openFinance update varianceFrom the kit's tests
- Sample file1 KB, download to openFinance update varianceFrom the kit's tests
How this works
- It is a skill: written instructions Claude reads when your request matches what the skill is for. You do not call it by name; just ask for the task.
- While it works, it reads and changes files in the places it lists, nowhere else.
- It runs these commands on your computer: node scripts/variance.mjs.
- Nothing runs until you choose to use it, and you can remove it any time.
SKILL.md
Finance update pack
A finance update people actually read: three headline bullets, one table, the variances that matter with a real reason for each, then cash and runway. The script does the arithmetic so the narrative never contradicts the numbers.
Inputs
One CSV per month in data/, for example data/finance-2026-10.csv (see examples/finance-2026-10.csv):
line,type,plan,actual,prior,better
Subscription revenue,revenue,262000,268400,255100,
Hosting and model costs,cogs,41000,47800,42300,
Payroll,opex,210000,204500,203900,
New customers,metric,9,11,7,
Logo churn,metric,2,3,1,lower
Ending cash,cash,,3150000,3216800,type:revenue,cogs,opex,metric, orcash(one row, the ending balance).plancan be empty for lines with no plan.prioris last month's actual (optional, used for month over month).better: costs default tolower, everything else tohigher. Setlowerfor metrics like churn.
Also ask: the month, the audience (leadership team, board, or investors), and anything already known ("the big services deal slipped to November"). If the user has a P&L export instead, map its lines into this shape and show the mapping before running.
Steps
Run the numbers:
node scripts/variance.mjs data/finance-2026-10.csv --month 2026-10 --out out/finance-updateThresholds: a line is flagged when it misses plan by at least
--threshold-pct(default 10) and--threshold-absdollars (default 5000). Metrics use the percent only. Tune for company size.- Read
out/finance-update-variance.md. It has the summary table, burn, runway (this month and the two-month average), and the flagged lines with an empty "Why" column. - Get the why. For each flagged line, ask the user one short question ("Services revenue was $8.5k under plan. Slipped deal, lost deal, or plan too high?"). Do not invent reasons. If the user does not know, write "Under review" and list it as a follow-up.
Draft
out/finance-update.mdwith the template below. Match the audience:- Leadership: all flagged lines, owners for follow-ups, next month's watch list.
- Board or investors: fewer lines, rounder numbers, trend over detail, and the asks. Never share salary-level detail.
- Show the draft. Offer a short version (five lines) for a chat post.
Template
# Finance update: October 2026
**Headline**
- Revenue $277.9k, 1% under plan; subscription revenue 2% over, services 47% under (deal slipped).
- Net burn $66.8k vs $52.0k plan, driven by a conference ($14.3k over in programs).
- Cash $3.15M; runway about 4 years at current burn.
| | Plan | Actual | Var |
| Revenue | ... |
| Gross margin | ... |
| Opex | ... |
| Net burn | ... |
**Variances that matter**
- <line>: <actual> vs <plan> (<var %>). <Reason in one sentence>. <What changes next month>.
**Cash and runway**
<balance, burn trend, runway, any known lumps coming>
**Asks / decisions**
- <specific ask, or "None this month">
**Next month watch list**
- <1 to 3 items>Guardrails
- Every number in the narrative must come from the script output or the user's file. If they disagree, the script wins; recheck the input.
- Runway is a simple cash / net burn. If the company is near breakeven or burn swings a lot, say so and suggest the
cash-runway-modelkit for scenarios. - Not financial or investment advice; it is a reporting aid.
- Do not send or post the update anywhere. Write files; the user shares them.
README.md
Finance update pack
Writes your monthly finance update from one small CSV of plan, actual, and last month. A script does plan vs actual, burn, and runway and flags the lines that missed by enough to matter; Claude asks you why for each one and drafts the update for your team, board, or investors.
Who it is for: founders and finance leads who send a monthly update and want it accurate, short, and done in 20 minutes.
Example
Input: examples/finance-2026-10.csv (two revenue lines, two cost of revenue lines, five opex lines, three metrics, ending cash).
Output (out/finance-update-variance.md):
| | Plan | Actual | Var | Prior month |
| Revenue | $280,000 | $277,900 | -$2,100 | $269,300 |
| Net burn | $52,000 | $66,800 | $14,800 | $54,900 |
Ending cash $3,150,000. Runway 47.2 months at this month's burn.
Variances over 10% and $5,000: Logo churn, Services revenue, Sales and marketing programs, New customers, Hosting and model costsThen out/finance-update.md: headline bullets, the table, each variance with your reason, cash and runway, and asks.
What it can access
- Runs
node scripts/variance.mjs(Node built-ins only). - Reads
data/. Writesout/finance-update*. - No network. It never sends the update; you do.
Setup
None. Put this month's numbers in a CSV like the example and ask Claude for the monthly finance update.
Files
- README.md
- SKILL.md
- examples/finance-2026-10.csv
- kit.json
- scripts/lib.mjs
- scripts/variance.mjs
Did it work?
0worked for them0did not work
Sign in to say whether it worked for you.
Nobody has said yet. Tried it? Tell the next person.
