Build a budget from your bank export
Use this recipe to create xlsx.
Free
Paste into your assistant. It asks the questions; you answer in chat.
More ways to use
Install the downloaded skill
Extract the ZIP. Copy its lc-budget-from-bank-export folder into ~/.claude/skills/ for Claude Code or ~/.codex/skills/ for Codex, then refresh the native app. Ask for the skill by name and answer its questions. The package includes the same published instructions and result checks. Native host execution is not yet verified.
For Claude web, use the connector or copy the prompt. Keep private details in your assistant.
How to use this skill
Copy, paste into your assistant, then answer its questions. No form or account is required here.
Already connected? Copy the public starter below and paste into Claude. Keep private details in the chat.
Optional: prepare details on this device
Bring your details
4 optional details
Needed before the promised result: Your bank export. You can still copy the reusable prompt and provide these in your assistant.
Saved only on this device. Copy counts contain the skill ID, never your text.
Read the prepared prompt
## LazyCoder conversation guide (conversation-v2)
1. Start a conversation, not a form-filling task. Read my latest request and the facts already in this chat before asking anything.
2. Ask only the missing questions needed for the requested result, in a short numbered list (at most three at a time), then WAIT for my answers. Use a native question tool if available; plain chat works too. Never ask me to replace placeholders or fill in a template.
3. Skip questions already answered. Treat unresolved {{placeholders}} and [FIELD LABELS] as missing facts, never literal input. Do not treat an illustrative example as my facts.
4. Use the authored defaults only when relevant; mention material defaults. Ask conditional questions only when their condition applies; if unsure whether it applies, ask. Optional preferences must not block a safe first draft unless the authored instructions require confirmation.
5. Do not invent tasks, dates, names, claims, permissions or missing source material. When required facts are absent, ask and wait instead of producing the final artifact. If everything needed is already supplied, proceed without re-asking.
6. My latest scope correction overrides earlier examples and scope, within the recipe safety and source rules. Resolve conflicts before acting. The authored instructions and output contract remain authoritative; this conversation guide does not grant tool, account, payment or publishing permission.
7. Keep my private answers and generated result in this assistant chat. Do not send them to LazyCoder. Generate the requested format here and check it against the output contract before handing it over.
### Questions to ask only when missing
- What should I use for “Your bank export”? [required] The CSV or spreadsheet your bank or card lets you download, or statement lines copied in. Two or three full months works best. Delete account numbers, card numbers, your name and address first; the AI doesn't need them.
- What should I use for “Country and currency”? [optional] Sets the currency and how dates are read: 03/04 is 3 April in the UK and 4 March in the US.
- What should I use for “Who the budget covers”? [optional] Optional. Who shares this money, and anything the export won't show, such as pay going into another account or cash you spend. Authored default: not given
- What should I use for “Savings goal”? [optional] Optional. An amount and a date, such as an emergency fund or a holiday. Authored default: none given
- What should I use for “Yearly or irregular costs”? [optional] Optional. Bills that don't come every month, with roughly how much and when, so the budget sets money aside for them. Authored default: none given
- What should I use for “Your own categories”? [optional] Optional. Category names you already use. Leave it to use the standard list. Authored default: use the standard list
## LazyCoder delivery guide (delivery-guide-v1)
1. Read the latest request, source material and authored requirements first. Ask only for missing facts. Check that this host can create the promised format; use only a fallback explicitly allowed by the authored recipe. If neither is available, explain the gap before starting. Do not promise a rendered film, editable deck or working file when you can only provide its script or outline.
2. Create the complete result in the authored output specification, preserving source facts and the latest agreed scope. Keep assumptions and missing information explicit. Do not silently omit required parts or leave unresolved ingredient markers. Intentional blanks in a reusable template are different from unanswered recipe inputs.
3. Check the actual result against every authored check, including source facts, counts, dates and required sections. Where tools allow it, inspect the actual saved file and compare it with the answer. Record which checks ran, which failed and which still need human or destination review. A filename, render, successful command or preview alone does not prove the promise was met.
4. Hand over the complete editable file, or the complete copyable fallback explicitly allowed by this recipe. Say which delivery you used and any unresolved limitations. Do not report a file as attached, imported, sent or published unless that action actually succeeded. Keep private inputs and output in this assistant; never send them to LazyCoder.
Use existing authorization for ordinary work. Before any additional paid generation, external write or publishing step, check that the current request authorizes that exact action and cost. If it does not, finish the useful authorized draft and ask at that boundary. Never silently retry or replace an ambiguous paid job.
The authored recipe and latest safe scope remain authoritative. This guide grants no new tools, permissions, provider access or claim of successful execution.
## Authored skill instructions
## 1. Outcome
Turn the bank export below into a finished budget workbook and a short plain-words summary, in the parts set out in part 6. Done means: every row of the export is in the workbook exactly once, each in one category or in the Review list; money moved between the person's own accounts, refunds, duplicates and pending items are kept out of spending; the totals have been added back up against the export and match; the proposed budget comes from what they actually spent; and every savings idea quotes their own figures and is labelled general information.
## 2. Context
Bank export:
"""
[PASTE YOUR BANK EXPORT HERE, OR WRITE "SEE ATTACHED"]
"""
Country and currency: [COUNTRY AND CURRENCY]
Who the budget covers: not given
Savings goal: none given
Yearly or irregular costs: none given
Categories to use: use the standard list
Who it's for: someone who wants to see where their money goes and set a realistic monthly budget. They are not an accountant. Write the summary for them at the level of a clear newspaper, and keep the workbook simple enough to edit without help.
Blank fill-ins: a Country, Who the budget covers, Savings goal, Yearly costs or Categories value that still reads as a capitalised placeholder in square brackets (such as [COUNTRY AND CURRENCY]) was left blank, as was an export that reads [PASTE YOUR BANK EXPORT HERE...]. Brackets inside the export itself are part of the export.
- "See attached": use the attached file as the export. Read every sheet and every row.
- No export, or nothing that looks like transactions: reply only "No transactions came through. Paste your bank export or attach the file and send again." Never invent transactions.
- No country or currency: use the currency symbol or code in the export; if there is none, write amounts with no symbol and say "Currency not given" in the summary. Read dates as section 3 says.
- A statement PDF or a photo instead of a file: read the transaction lines from it, list any line you can't read in the Review list as "[unreadable]", and say so in the summary.
- Optional values left as "not given" or "none given": skip what they feed (the savings-goal line, the yearly set-aside) and say in the summary that they can add them.
## 3. What to pull out
From every row: date, description as written, amount, whether money came in or went out, and the account if there are several.
Reading the export:
- Columns: find the date, description, amount and any balance, type or account columns, whatever they are called. If there is a header row, use it; if not, work it out from the values and say how.
- Money in and out: one Amount column with minus signs for money out; separate "Paid out" and "Paid in" columns; or all positive amounts with a DR/CR or type column. A credit card export often shows purchases as positive and payments as negative; tell it apart by what the rows are. State which convention you found.
- Dates: if any day number is above 12, that settles the order. If not, use the usual order in [COUNTRY AND CURRENCY], and say "Dates read as day/month" (or month/day) in the summary.
- Period: the first and last date, and which months are full. A month the export only partly covers is a part month.
- Large exports: read every row, in batches if you need to. Never sample, and never skip rows to save space.
Sorting each row into a Type, then a category:
- Type is one of Spending, Income, Transfer, Refund, Pending or Duplicate.
- Transfer: money moved between the person's own accounts when both sides are in the export, or a payment to their own credit card when that card's rows are also in the export. Kept out of income and spending. A transfer into their own savings with only one side visible counts as spending in Savings and investments, because it is money set aside.
- A credit card payment when the card's own rows are not in the export goes to Debt and credit card payments, and the summary says the card's spending can't be broken down from this export.
- Refund: money back from a shop. It is negative spending: it reduces spending in the same category as the purchase it reverses, and it is never income.
- Pending: rows marked pending or not yet posted. Listed, kept out of every total.
- Duplicate: only rows identical in every column, including any reference or running balance, that appear because two exports overlap. Keep one, mark the rest Duplicate, and keep them out of totals. Two identical purchases with nothing to tell them apart may be real (two coffees), so keep both and put the second in the Review list as "Possible duplicate".
- Category: exactly one per Spending, Income and Refund row. Use use the standard list if given, adding Income and Review if missing. Otherwise use this list: Income; Housing; Bills and utilities; Groceries; Eating out and takeaways; Transport; Insurance; Health; Children and education; Shopping; Subscriptions and entertainment; Personal care; Gifts and giving; Holidays and travel; Cash withdrawals; Fees and interest; Debt and credit card payments; Savings and investments; Other; Review.
- Merchants: clean each description to a plain merchant name ("TESCO STORES 2231" is "Tesco"). The same merchant always gets the same category.
- Review: a row goes to Review when its description doesn't say what it was for (a payment app with a code, a person's name, a vague reference) or could fit two categories. Never guess. Give it Category "Review" and your best two options.
Also find:
- Recurring charges: the same merchant at a similar amount in at least two months, or one labelled as a subscription or direct debit.
- Irregular and yearly costs: from none given, plus any large bill in the export that looks yearly.
- Signs the person may want money help: spending above income in most full months, overdraft or late-payment fees, returned direct debits, payday or short-term loans, payments to debt collectors, or frequent gambling payments.
- Signs of urgent hardship: no money left for food, heating or rent, or the export or the person mentions an eviction, a disconnection, bailiffs or court action.
- A shared or joint account (transfers to and from a partner, two people's pay), or anything the person writes suggesting someone else controls or takes their money.
## 4. Steps
1. Read the whole export and write down the columns, sign convention, date order, currency, accounts, period and row count.
2. Give every row a Type, then a category or Review, as part 3 says.
3. Work out monthly totals by category from the rows, leaving out Transfer, Pending and Duplicate rows. Mark part months.
4. Find the recurring charges and the yearly costs.
5. Build the proposed budget as part 5 says.
6. Reconcile: count the rows and add the money in and out from the workbook, and compare with the export. Fix any difference before going on.
7. Write the findings, build the workbook as part 6 says, then run the self-check.
## 5. Rules
Safety (keep this in every answer):
- This is general information to help the person see their own money, not financial advice. Say so once, in one plain sentence, at the end of the summary.
- Never decide for them. Don't tell them to cancel, switch, borrow or pay anything. Put savings ideas as options with the figure behind them ("You spent an average of £96 a month on takeaways; half of that would free about £48 a month"). Make no promises about results.
- If any money-help sign from part 3 appears, say so kindly and plainly in the summary, and suggest a free, independent debt or money advice service in [COUNTRY AND CURRENCY]. Describe the kind of service so they can find it; never invent a name, phone number or web address.
- Urgent hardship: if a sign from part 3 appears, put it first in "Good to know": say that free, urgent help exists with food, energy bills, rent and debt, and that the kind of advice service above can act quickly. If the person writes anything suggesting they are in danger or thinking of harming themselves, tell them to call the emergency services or a crisis line in [COUNTRY AND CURRENCY] now. Describe the help; never name a service or give a number or web address.
- Shared money: with a shared or joint account, budget the account as it is, and don't assume who spent what. If anything suggests someone else controls or takes their money, add one calm line that this is a recognised form of abuse and that confidential support services for it exist in [COUNTRY AND CURRENCY], described, not named. Never guess at a relationship from the transactions alone.
- No investment, tax, pension or product recommendations, and no named banks, cards or apps to switch to.
Accuracy and privacy:
- Use only the rows in the export and the values above. Never invent a transaction, amount, merchant or income.
- Never repeat a full account, card or sort-code number; show only the last 4 characters. Leave people's names in payment descriptions as they are in the Transactions tab, but don't repeat them in the summary.
- Write every amount with its currency, to 2 decimal places in the workbook and rounded to whole units in the summary.
Signs and totals, the same everywhere:
- Transactions tab: money in positive, money out negative, exactly as it moved.
- Every other tab and the summary show spending as a positive amount (money out as a positive number, minus refunds in that category).
- Total income is the sum of Income-category rows only. Refunds, transfers, pending and duplicate rows are never income.
- Total spending is the sum of every spending category, Savings and investments included (as money set aside). Net is Total income minus Total spending.
- Difference on the Budget tab is Proposed budget minus actual: positive means under budget, negative means overspent and is shown red.
Budget method:
- For each category, the proposed monthly budget is the average across full months only. For bills that are the same each month (rent, a fixed direct debit), use the latest amount instead. Round to a whole number, then up to the next 5 for amounts over 50.
- If there are no full months, use the part months and say "Based on a part month only" in the summary.
- Yearly costs: add a "Set aside for yearly costs" row equal to their yearly total divided by 12, each cost shown with its sum.
- Savings goal: work out the amount per month needed to reach it by its date, counting from the month after the export ends, and compare it with the average monthly net. If the goal has no date, show the monthly amount for 12 months and say so.
- As a reference only, show how average spending splits into needs, wants, and savings and debt, next to the common 50/30/20 rule of thumb, and say it is a rule of thumb, not a target.
- Every proposed figure is a suggestion for the person to change. Say so on the Budget tab.
## 6. Output
First, the workbook. If you can run code or create files, build a real .xlsx named budget.xlsx, with these tabs in this order and working formulas, no macros:
1. **Transactions**: Date | Description (as in the export) | Merchant | Amount | Account | Type | Category | Note. Money in positive, money out negative. Category has a drop-down list from the Categories tab, so a change flows through every other tab. Sorted by date.
2. **Categories**: Category | Group (Needs, Wants, or Savings and debt) | Notes. The list used.
3. **Monthly**: one row per category and one column per month, each a SUMIFS formula over Transactions by Category and month, leaving out Transfer, Pending and Duplicate, with the sign turned so spending shows positive (as part 5 says). Then rows for Total income, Total spending and Net, as part 5 defines them. Part-month columns headed with "(part month)". Savings and investments counts in spending, as money set aside, so Net is what is left after saving.
4. **Budget**: Category | Average per full month | Proposed budget | Latest full month actual | Difference | Note. Average and Latest actual are formulas over Monthly; Proposed budget is a typed number in a shaded cell for the person to change; Difference = Proposed budget minus actual, shown red when negative (overspent). Then rows for Set aside for yearly costs, Total budget, Average income, and Left over (income minus total budget). Then the savings-goal line, if a goal was given: monthly amount needed, average monthly left over, and "Covered" or "Short by <amount>". A note at the top: "Every proposed figure is a suggestion. Change the shaded cells."
5. **Recurring**: Merchant | Category | Usual amount | How often | Months seen | Monthly cost | Last date. Then a total of the monthly costs.
6. **Review**: Date | Description | Amount | Why it's here | Option 1 | Option 2. A note: "Pick a category in the Transactions tab and every total updates."
7. **Check**: one row each for rows in the export, rows in Transactions, then the count and amount of Transfer rows, Refund rows, Duplicate rows and Pending rows, then total money in and total money out from the export and from the Transactions tab, and the difference, which must be 0.
Format money cells as currency, freeze the header row on every tab, and make the columns wide enough to read.
If you cannot create files, give the same seven tabs as CSV, one code block per tab, headed with the file name to save it as (Transactions.csv and so on), with a header row and every row filled. Use values, not formulas, except the Budget tab's Difference column, which is a formula on the same row (such as =C2-D2) that Excel and Google Sheets calculate on opening. Say in one line before the blocks: "These CSV totals are fixed values; if you change a category, ask for the .xlsx in an app that can make files, or re-run."
Too long for one reply: give the blocks in this order: Check, Monthly, Budget, Recurring, Review, Categories, then Transactions last, split into blocks of at most 150 rows each, labelled "Transactions.csv, rows 1–150 of <n>" and so on (paste them one under the other, without repeating the header). Work out every total from all the rows first. If the reply is about to run out, finish the block you're in, and end with "Transactions rows <a>–<n> still to come: reply "continue"." Never drop or sample rows to make it fit.
Then, in the reply, in this order, with these headings:
1. **What I read**: the columns, money in and out convention, date order, currency, accounts, period, full and part months, the number of rows, and the count and amount of transfers, refunds, duplicates and pending rows kept out of spending. One line per item.
2. **Where your money went**: a table of the categories with their average per full month, largest first, then average income, average spending and average left over.
3. **Your proposed budget**: the Budget tab as a table, marked as a suggestion.
4. **Subscriptions and recurring charges**: the Recurring tab as a table with the monthly total.
5. **What stands out**: 3–5 findings, each with the figure behind it (the biggest categories, changes between months, recurring charges they may have forgotten). Then up to 3 savings ideas, each with the person's own figure and what changing it would free per month, written as options, not instructions.
6. **For you to check**: each Review row, once, and each assumption from part 2 or part 3 that they should confirm.
7. **Totals check**: the Check tab as a short table, ending "Matches the export" or the difference.
8. **Good to know**: any urgent-hardship sign first, then any money-help sign with the kind of free advice service, then the shared-money line if part 5 calls for it; one line on removing account numbers before sharing the file; then the not-advice sentence.
## 7. Self-check
Before replying, check each of these and fix any failure:
- Every row of the export is in the Transactions tab exactly once, and the row counts on the Check tab match.
- Money in and money out in the Transactions tab equal the export's, so the Check tab difference is 0, and the Check tab counts transfers, refunds, duplicates and pending rows.
- Spending is positive everywhere outside the Transactions tab, Total income holds only Income rows, and every Difference is budget minus actual.
- Every Spending, Income and Refund row has exactly one category from the list, or Review, and each merchant has the same category everywhere.
- No Transfer, Pending or Duplicate row is counted in any total, and refunds reduce spending instead of adding to income.
- Each month's category totals add up to that month's total spending, and Net equals income minus spending.
- Every proposed budget figure follows the budget method, and averages use full months only (unless there are none).
- Every savings idea quotes the person's own figure, and none tells them what to do.
- No full account or card number appears anywhere.
- The summary ends with the not-advice sentence; any money-help, hardship or shared-money sign is mentioned with the kind of help, and no service is named.
Then reply with the output only, ending with one line: "Checked: <n> rows, <n> categories, <n> to review, totals match." If they don't match after fixing, end "totals differ by <amount>, see Totals check" instead.
## 8. Setup
Works as one paste in any chat app. Where the app can run code or create files, it builds a real budget.xlsx with formulas that update when you change a category; where it can't, you get each tab as CSV to save and open in Excel or Google Sheets, and a very long export may need one "continue" reply for the last transaction rows. Attach the export file and write "see attached" in the export block if it is too long to paste. Before attaching, delete account numbers, card numbers, your name and address. This sorts and adds up your own figures; it isn't financial advice.Review your result locally
Paste the result after your assistant creates it. This optional check stays in this tab and is not sent to LazyCoder.
Your spending sorted into categories, with a monthly budget sheet.
Version & review details