Why the average lies to you
Every guide to irregular income says the same thing: budget from your lowest month, not your average. Then it stops. Nobody shows you how to find your lowest month, so most people eyeball it, guess low, and end up budgeting against a number they invented.
Averages fail freelancers in a specific way. Say you made $84,000 last year. The average says $7,000 a month, so you set rent, insurance, and subscriptions against $7,000. But the real months looked like $11,400, then $3,100, then $9,800, then $2,700. The average was never real. Half your months came in below it, and the low ones came in way below it.
A budget built on an average still fails. It just fails in March instead of every month, which makes it feel like bad luck instead of bad math.
What you need
Three things: a bank account with at least a year of history, an AI agent that speaks MCP (Claude, ChatGPT, Cursor, Gemini, and a couple dozen others all work), and a BankBridge connection between them.
Setup takes a few minutes. Sign up at bankbridge.money, connect your bank, and add the server to your agent with an API key or the OAuth flow. It's $5 a month per connected bank, cancel anytime, and access is read-only. The agent can see your deposits but can't move a dollar. If this is your first time, the guide on connecting your bank to Claude walks through every step.
Once connected, your agent gets 11 tools for asking questions of your live account data. For this job, three matter most: get_monthly_cashflow, list_transactions, and search_transactions. You won't call them yourself. You ask questions in plain English and the agent picks the tools.
Finding your real floor
Start with one question:
Pull my monthly cashflow for the last 12 months. Show income per month, sorted lowest to highest.
The agent calls get_monthly_cashflow and returns a table of your actual months. This is the part every blog post skips. You're not estimating your lean month anymore, you're reading it off your own bank history.
Then push one level deeper, because the raw income number almost always needs cleaning:
For the three lowest months, list every deposit. Flag anything that isn't client income: transfers from savings, refunds, tax refunds, one-time sales.
What survives that filter is your floor. For a lot of freelancers it's an uncomfortable number, which is exactly why it's the right one to build on.
Deposits that aren't income
Bank data is messier than budgeting advice admits. Three things inflate your apparent income if you don't strip them out.
Transfers from your own savings look like deposits. If you moved $2,000 from savings to checking during a dry spell, that month's "income" is overstated by $2,000, and your floor looks safer than it is. Ask the agent to exclude transfers between your own accounts. If your money lives at more than one bank, connect them all so the agent can see both sides of each transfer.
Refunds and reimbursements aren't income either. A $600 refund on a cancelled flight isn't $600 you earned. Same for one-time events like selling old gear or last year's tax refund. They're real money, but they tell you nothing about a repeatable floor.
Recalculate my lowest months with transfers, refunds, and one-off deposits excluded. What's my real floor?
Budget against the floor
With the floor in hand, split your spending into two piles: what must be paid no matter what, and what flexes.
Pull my recurring charges and my average monthly spending by category over the last 6 months. Which categories are fixed and which are flexible?
get_recurring_charges catches rent, insurance, subscriptions, and utilities. get_spending_summary shows where the rest goes. Set the fixed pile against your floor first. If your floor is $3,400 and fixed costs are $2,900, then $500 is your guaranteed flexible budget in any month, plus whatever that specific month brings in above the floor.
If fixed costs exceed the floor, you've just learned the most important thing this exercise can teach: your baseline is too heavy for your worst months, and no amount of averaging fixes that. Cut fixed costs, or build a buffer big enough to bridge the gap. Either way, stop letting the average tell you you're fine.
Do this with real numbers, not vibes. The whole reason to use an agent here is that every figure comes from live transactions, not from what you remember spending.
The good months have a job
Budgeting against the floor doesn't mean living at the floor. It means treating everything above the floor as surplus with an assignment, not as a raise.
A split that works for most variable earners: buffer first, until savings holds two or three months of fixed costs. Then tax set-asides if you owe quarterlies. Then everything else. The buffer is what turns a lean month from a crisis into a non-event; you pay yourself the floor out of it and refill it when a fat month lands.
How many months of my fixed costs do I have in savings right now?
One question, one honest answer, and you know exactly how fragile or solid this month is.
Rerun it, don't set it
A floor computed once goes stale. A retainer ends, your rates go up, a slow season shifts. The floor you found in March may not be the floor in September.
Because BankBridge fetches your data live on every question (nothing is stored or cached on our servers), rerunning the whole analysis is one prompt, not an afternoon of CSV exports.
Recompute my 12-month income floor with the same exclusions as last time. Has it moved since we last checked?
Once a month is plenty, and it slots neatly into a broader monthly money review if you do one. The goal was never a prettier spreadsheet. It's a budget anchored to the one number that decides whether your bad months hurt: the real floor, read off real deposits.