No. 09 · Case study · Excel workbook
The Budget
A working Excel budget with 3,303 formulas, from one prompt
The budget of a made-up coffee chain's new app, six months in: the approved plan, what's been spent, where it will land and what the next decision costs. Nine sheets, 3,303 formulas and not one typed-in result, so when you change an assumption, everything moves. Claude Code built the Excel file from one prompt of mine and checked it by looking at it. Change the numbers right here, or download it.
Each sheet below is a table with the values the workbook calculates. Select a cell to read its formula. The three charts on the Dashboard have a description, and their numbers are below them and on the Monthly sheet.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | ||||||||||||||
| 2 | Tidewell App 2.0: budget status | |||||||||||||
| 3 | End of September 2026 · Tidewell Coffee Co. · USD | |||||||||||||
| 4 | ||||||||||||||
| 5 | ● Amber: inside the approved budget, with less than 50% of the contingency left | |||||||||||||
| 6 | Checks: All 14 checks pass · Scenario: Current forecast | |||||||||||||
| 7 | ||||||||||||||
| 8 | Approved budget | Spent to date | Forecast at completion | Contingency left | Launch | Work per dollar | ||||||||
| 9 | $1,925k | $827k | $1,871k | $54k | Jan 2027 | 0.86 | ||||||||
| 10 | incl. $178k contingency | 43% of the budget · plan: $810k | +$124k against the base budget | 30% of the $178k reserve | On the approved date | $0.86 of planned work for each $1 spent | ||||||||
| 11 | ||||||||||||||
| 12 | Cumulative spend | What moves the forecast | ||||||||||||
| 13 | Approved plan against actual to date plus forecast. The shaded months are forecast. | Forecast minus budget per cost line, largest first | ||||||||||||
| 14 | ||||||||||||||
| 15 | ||||||||||||||
| 16 | ||||||||||||||
| 17 | ||||||||||||||
| 18 | ||||||||||||||
| 19 | ||||||||||||||
| 20 | ||||||||||||||
| 21 | ||||||||||||||
| 22 | ||||||||||||||
| 23 | ||||||||||||||
| 24 | ||||||||||||||
| 25 | ||||||||||||||
| 26 | ||||||||||||||
| 27 | ||||||||||||||
| 28 | ||||||||||||||
| 29 | ||||||||||||||
| 30 | ||||||||||||||
| 31 | ||||||||||||||
| 32 | ||||||||||||||
| 33 | ||||||||||||||
| 34 | ||||||||||||||
| 35 | Contingency | Decisions this month | ||||||||||||
| 36 | What has used the $178k reserve so far | Numbers to have ready for the steering committee | ||||||||||||
| 37 | One more month of build would cost | $187k | ||||||||||||
| 38 | The contingency left pays for | 0.3 months | ||||||||||||
| 39 | Pending change requests, not yet decided | $46k | ||||||||||||
| 40 | Contingency left if they are approved | $8k | ||||||||||||
| 41 | Forecast at today's work per dollar | $2,096k | ||||||||||||
| 42 | … against the approved budget | +$171k | ||||||||||||
| 43 | Work per dollar: the cost performance index on Report. | |||||||||||||
| 44 | A month of build: the current plan's build team and platform for one month. | |||||||||||||
| 45 | Data behind the charts | |||||||||||||
| 46 | Formulas only. The charts and the colours above read these cells. | |||||||||||||
| 47 | Status | Amber | Amber: inside the approved budget, with less than 50% of the contingency left | |||||||||||
| 48 | Checks failing | 0 | Scenario | Current forecast | Months late | 0 | ||||||||
| 49 | ||||||||||||||
| 50 | Over (under) budget by cost line | Largest first | Over | Under | Room | |||||||||
| 51 | Product management | – | 0 | Approved changes | 59,500 | 59,500 | – | (45,675) | ||||||
| 52 | Product design | (21,875) | 21875 | Android development | 41,040 | 41,040 | – | |||||||
| 53 | iOS development | (780) | 780 | Product design | (21,875) | – | (21,875) | |||||||
| 54 | Android development | 41,040 | 41040 | Quality assurance | 21,660 | 21,660 | – | |||||||
| 55 | Backend & integrations | – | 0 | Cloud hosting | 12,800 | 12,800 | – | |||||||
| 56 | Quality assurance | 21,660 | 21660 | Test devices | 5,040 | 5,040 | – | |||||||
| 57 | Cloud & DevOps | 3,625 | 3625 | All other lines | 5,445 | 5,445 | – | |||||||
| 58 | Engineering lead | – | 0 | |||||||||||
| 59 | User research & testing | – | 0 | |||||||||||
| 60 | Security & accessibility | 2,500 | 2500 | |||||||||||
| 61 | Payment certification | 1,700 | 1700 | |||||||||||
| 62 | Test devices | 5,040 | 5040 | |||||||||||
| 63 | Launch content | – | 0 | |||||||||||
| 64 | Cloud hosting | 12,800 | 12800 | |||||||||||
| 65 | Software & tools | (1,830) | 1830 | |||||||||||
| 66 | Third-party services | 230 | 230 | |||||||||||
| 67 | Approved changes | 59,500 | 59500 | |||||||||||
| 68 | ||||||||||||||
| 69 | Contingency reserve | |||||||||||||
| 70 | Approved changes | 59,500 | ||||||||||||
| 71 | Overruns | 64,110 | ||||||||||||
| 72 | Left | 54,145 | ||||||||||||
| 73 | Reserve | 177,755 | ||||||||||||
Opens in Excel, Google Sheets, Apple Numbers and LibreOffice. No macros, no links to other files.
How to use it
- Click
- Any cell: its formula appears at the top. Click a reference in it to go there.
- Type
- Into a blue cell, then Enter: the whole workbook recalculates.
- What-if
- Four buttons that each change one input, the way you would.
- Download
- The Excel file, with its charts, checks and print setup.
What you’re looking at
Tidewell Coffee Co. is a coffee chain Claude Code made up, and it’s building a new app: order ahead, pay at the counter, collect rewards. It’s October 2026, six months into a twelve-month project. In March the steering committee approved $1.925 million. $827,000 is spent, and the forecast says the project will land at $1.871 million.
This is the project’s budget as an Excel workbook of nine sheets: a cover, a dashboard, a report by cost line and a monthly view for the people who read it; three sheets of inputs; one sheet with every calculation; and one with the checks the workbook runs on itself. It holds 3,303 formulas and not a single typed-in result. Every number on the dashboard comes from the inputs and the 64 bookings on the Actuals sheet, through a chain of formulas you can follow. Click a number above and its formula appears at the top. Click a reference in the formula and you’re there.
I wrote in my prompt that most people have never seen a really well-built spreadsheet, let alone one an AI made. So here’s the one Claude Code made, and you don’t need Excel to look inside it.
Talk it through, then have it built
You no longer have to spend days building a custom spreadsheet, or find a template that comes close and spend more days making it yours. Talk it through with an AI first, until what you need is fully specified: who reads the budget, what they decide with it, which numbers you know and which you’re guessing, what it has to answer every month. Then have it build exactly that.
I skipped the talking for this one. My prompt said “Don’t ask me questions”, because this budget was meant to show what Claude Code can do, not to run a real project. So Claude Code guessed: the company, the project, every number. For a budget you’ll actually use, let the AI ask its questions first.
I built this in Claude Code, but Claude Cowork or a chat with Claude could build it too, and ChatGPT and other models can do similar things. As far as I know, Microsoft’s own Copilot isn’t quite as strong in Excel yet. If it hasn’t caught up already, I think it will. For a budget at work, start with the assistant your company approved.
It’s a model, so change it
The four buttons above the sheet each change one input cell, the way you’d do it in Excel, and the whole workbook recalculates in your browser. Try them on the Dashboard:
- The build slips a month. One more month of the whole team costs $187,000. The forecast jumps to $2.06 million, past the approved budget, the launch moves to February, and the status turns red.
- Approve the gift cards. The one change request still waiting for a decision costs $46,000. Approve it and $8,000 is left of the contingency, the reserve set aside for surprises.
- Contractors charge 10% more. Three of the eight roles are contractors on day rates. Their rise eats all but $17,000 of the contingency.
- Close October before its costs are in. This one looks like good news: the forecast drops by $187,000, because October now counts as done and nothing was booked for it. But one of the workbook’s checks fails, and the dashboard says so in red.
Or select any blue cell, on the Inputs, Purchases or Actuals sheet, and type your own number.
Built to good spreadsheet practice
My prompt asked for the best practices of good spreadsheet design. Here’s what that turned into:
- Inputs, calculations and results live on separate sheets. Inputs are in blue, assumptions on a yellow background, and they’re the only cells that aren’t locked. Every formula is protected, without a password, so nobody overwrites one by accident.
- One timeline everywhere. Every month-by-month sheet has the same 15 months in the same columns, so column K always means September 2026.
- One formula per row. Each row uses the same formula for every month. There’s no hand-edited exception in the middle, which is the most common way a spreadsheet goes quietly wrong.
- The approved plan stays as it was. Today’s plan sits beside it in its own columns, and every difference is highlighted. Edit the approved plan anyway and a check fails.
- The actuals look like a finance system’s export. One row per booking: invoices, staff costs charged to the project, costs booked before their invoice arrives, and credits. Next month you paste the new rows at the bottom, move “Actuals through” to the new month, and everything follows.
- It checks itself. Fourteen checks: every booking has a known cost line, every closed month has actuals, the report adds up to the months, no purchase falls outside its phase, the plan fits the timeline. The result shows on the cover and the dashboard.
- It explains itself. The cover says what the workbook is for, how to update it each month, what each sheet does, what the colours mean and what changed in each version. Every assumption says where it came from.
- It prints. Every sheet is set up to print on A4, one page wide, and the long ones repeat their headings on every page.
Charts only where they answer something
My prompt said visualizations only where they help someone understand the budget or make a decision. There are three, all on the Dashboard:
- Cumulative spend answers “are we on track, and where will we land?” The approved plan in grey, actuals plus forecast in blue, the forecast months shaded, the approved budget as a dashed line on top.
- What moves the forecast answers “why?” The six cost lines furthest from their budget, largest first, plus everything else. The two approved change requests and an extra Android contractor explain most of what has used up the contingency.
- Contingency answers “how much room is left?” Of the $178,000 reserve, approved changes took $59,500, overruns about $64,000, and about $54,000 is left.
The chart colours passed a colour-blindness check, and every bar carries its number, so colour is never the only clue. The rest of the dashboard is numbers, because a single number doesn’t need a chart: six key figures at the top, and a box with the figures to bring to the next steering committee. One of them: the contingency left pays for 0.3 months of delay.
The workbook disagrees with itself
The forecast is built bottom-up: today’s team, rates and plan for every month still to come. It says the project lands $54,000 inside its budget.
The Report sheet then asks a second question: how much of the planned work has actually been done for the money spent? (Project controllers call this earned value.) The engineering lead estimates the build at 50% done. By that measure, the first six months delivered 86 cents of planned work for every dollar. If the rest of the project goes the same way, it lands at $2.1 million, $171,000 over the approved budget.
Claude Code put both on the dashboard. One says the project is fine. The other says it isn’t, if the rest goes like the first six months. A steering committee would want to know which to believe, and why.
How it was made
Claude Code wrote the workbook as code: a Python script lays out every sheet and writes every formula, and the made-up company’s data sits in a separate file, from the day rates to the 64 bookings. LibreOffice, a free office suite, then opens the file and calculates it.
The first thing to get right was the story. In the first draft of the numbers, the project was already $108,000 over its approved budget: the build had slipped a month, and a month of this team costs $187,000. Claude Code judged that too dramatic for a project halfway through, so it put the schedule back on time and made the slip one of the what-if buttons.
A formula that points at the wrong row still gives a plausible number. So the same budget is computed a second time in plain Python, and if a single total or cost line differs, the build stops. It also stops when any cell shows an error or one of the workbook’s own checks fails.
Then Claude Code turned every sheet into an image and looked at it, over several rounds. That found problems you only see by looking:
- The forecast shading was missing from the spend chart. LibreOffice didn’t draw anything placed on the chart’s hidden second scale, so the shading now sits on the main one, as tall as the approved budget.
- The bar labels showed raw numbers like 59,500 and a stray dash for every zero: LibreOffice ignored the labels’ own number format until the file said explicitly not to copy it from the data.
- One label collided with its neighbour: the label on the only bar that goes left ran into the cost line’s name. An invisible bar now keeps room for it. That fix then hid the wrong entry in the legend, because LibreOffice seems to count the entries from the other end. The invisible bar now sits in the middle, which is the same entry whichever end you count from.
- Text spilled out of its cells, labels were cut off, and column headings overlapped.
Last, it checked the file against the specification of the Excel format. Every part of it passes.
The viewer on this page
What you see above is the workbook itself: its own cells and formulas. This page can’t run Excel, so Claude Code also wrote a small calculation engine for it: it reads the workbook’s formulas and works them out with the same 23 functions, following the rules spreadsheets use for blanks, text and dates. A test compares all 3,303 results, and the text every cell shows, with LibreOffice’s, then the results again for four sets of changed inputs. They all match.
The charts are the one thing the page draws itself, from the same cells, colours and number formats. Excel and LibreOffice draw their own from the file, so there they may look a little different.
What isn’t perfect
- Excel: nothing to fix. Excel doesn’t run where Claude Code works, so Claude Code’s checks and pictures ran in LibreOffice. I opened the first version in Excel and found nothing wrong. The Google Sheets fixes below came after that.
- Google Sheets: one fix, not rechecked. In Google Sheets, the first check failed. Its formula added up the bookings for every cost line in one go, and Google Sheets doesn’t work that formula out the way Excel does. Claude Code replaced it with one plain formula per cost line. To be safe, it also rewrote the colour rules and two dropdown lists that relied on named cells, which Google Sheets handles differently. Nobody has opened the fixed version in Google Sheets yet.
- Apple Numbers: not checked. It opens Excel files, but may drop the print setup, the protection and parts of the chart formatting.
- The timeline has 15 months. A slip of more than three months runs past it. A check says so, but adding months means adding columns by hand.
- The second opinion is only as good as its estimate. “Build 50% done” is the engineering lead’s judgment, and every earned-value number depends on it.
- The protection is a trade-off. It stops accidents and annoys anyone who wants to rearrange things. Review > Unprotect Sheet, no password.
- Every number is made up. The rates and costs are plausible, not market data.
- It’s in English only, on all three language versions of this page.
What you can learn from this
- Make “no typed-in results” a rule, and test it. Change an input and watch whether the total moves. If it doesn’t, someone typed it in.
- Ask for checks. A workbook that tells you when it’s broken catches mistakes you’d otherwise only find by auditing it, and an AI can write the checks as easily as the formulas.
- For every chart, ask which decision it helps with. If nobody can say, leave it out.
- Follow a number back to where it comes from, the way the viewer above lets you. That’s how you review a workbook, whoever built it.
What I typed
My prompt, word for word
Next entry for the "What's possible" section, to complete the office set after The Blueprint (Word) and The Pitch (PowerPoint): an Excel workbook. I think most people have never seen a really well-built spreadsheet, let alone one an AI made. Build the budget for an app development project. Use a made-up company and a realistic project that people anywhere in the world would recognise, not something Swiss. Set it mid-project, so there's a plan, actual spending so far and a forecast to compare. It should be the kind of workbook a finance person respects and a project lead actually wants to use. Apply the best practices of good spreadsheet design and make it a working model: change an assumption and everything updates, no typed-in results. Make it aesthetically pleasant too. Add data visualizations where they help someone understand the budget or make a decision, and nowhere else. Like the other two, offer the original file for download plus a way to look at it on the page, and check your work by actually looking at it. Don't ask me questions, fill the gaps with your best guess. This is to show off what you can do, not to fit a real project 100%.
The budget itself didn't need my project: the company, the project and every number are Claude Code's invention. The prompt still leans on it. The office set, “the other two” and “a way to look at it on the page” only meant something because Claude Code was working inside this site's project and knew those pages. And “Don't ask me questions” was right for a showcase and wrong for a budget you'll use. The version below asks for your numbers and lets the AI ask first.
A prompt to start from
Try it yourself
Fill in the brackets:
Build an Excel workbook for [what it's for, e.g. the budget of our app project]. It's for [who reads it], to decide [what]. What I know so far: [the plan, the numbers you have, which of them are estimates, what has been spent]. Make it a working model a finance person would respect: inputs, calculations and results on separate sheets, inputs clearly marked, no typed-in results, so changing an assumption updates everything. Add checks that tell me when something doesn't add up. Add charts only where they help someone understand the budget or make a decision. Before you build anything, ask me what you need to know, then propose the structure: which sheets, which cells are inputs, what gets calculated and what gets checked. Build it once I've agreed. Then open the result, look at every sheet and fix whatever looks wrong.
For a work budget, use the assistant your company approved. If it can only answer with formulas in a chat reply, you won't get a workbook like this. Whichever you use, open the result, change an input and follow a total back to where it comes from.