Zero-based budgeting when your income changes every month
A zero-based budget for freelancers and anyone paid irregularly: budget from a floor, pay yourself a salary, hold the rest in reserve, and stop refactoring your life every payday.

Zero-based budgeting has one rule: income minus everything you assign equals zero. Every unit of money gets a job before the month begins — rent, groceries, savings, the fund for the boiler that will eventually die — so there is no "leftover" that quietly disappears. It is the most precise budgeting method there is, and it is the one that fails hardest for people with an income that arrives in lumps.
The failure is not the method. It is that the method asks "what is your income this month?", and a freelancer, a commission earner, a seasonal worker or a landlord with one tenant does not know. So the budget gets rebuilt every payday, the categories are wrong by the 10th, and by month three it has been abandoned in favour of glancing at the balance. I have watched this happen in many ledgers. Here is the version that survives.
Budget from a floor, not an average#
Averages lie to people with variable income, in both directions. A good quarter lifts the average and the budget with it; a slow month then produces a shortfall that feels like failure. The fix is to build the budget on the lowest income you would still call a normal month — not the worst month ever, but a floor you have actually hit and lived through.
Take twelve months of income and sort them. The number in position three or four from the bottom is your floor. For someone whose months ranged from €1,900 to €5,400, the floor might be €2,600.
That is the number the zero-based budget gets built on. Every essential must fit inside it. If essentials do not fit inside your floor, no budgeting method will save the situation; the answer is a cheaper fixed cost or a more reliable income line, and it is better to know that in an afternoon than in a year.
Pay yourself a salary#
The second move is the one that makes everything else calm: the business (or the freelance account) pays you a fixed salary on a fixed day, and the budget is built on the salary, not on the invoices.
- Clients pay into one account — call it the income account. In Azno that is just an account in the Business book.
- On the 1st of each month, transfer the salary — your floor, or a little under it — to your personal account. That transfer is the only income the personal budget knows about.
- Everything above the salary stays in the income account as a reserve.
A good month no longer changes your spending. A slow month is covered by the reserve. Your personal budget sees €2,600 every month, like an employee's, and zero-based budgeting suddenly works because the number it needs is finally stable.
A variable income is not a budgeting problem. It is a smoothing problem, and a reserve account is the smoothing.
How big should the reserve be?#
Three targets, in order:
- One salary (€2,600) — the minimum. It covers the first slow month you hit after starting.
- Three salaries — the level at which a bad quarter stops being an emergency.
- Six salaries plus your annual tax bill — for anyone whose income is seasonal or who invoices a small number of clients.
Until the reserve reaches the first target, every euro above the salary stays put. After that, the reserve above the target becomes what you actually earned this year, and you can pay it out to yourself as a bonus, raise the salary, or invest it.
The tax line is not optional#
Employees have tax removed before they see the money. You do not, and the reserve will quietly get spent on it unless it is walled off. Keep a tax reserve as a separate account (or a separate goal if you prefer one account), and move a fixed percentage of every incoming invoice into it the day it lands — 25–35% depending on where you live and what you earn. When the tax bill arrives, it is already paid. Nothing else about your budget has to change.
Building the zero-based budget on the salary#
With €2,600 arriving on the 1st, the personal budget is boring in the best way. Assign it all:
| Category | Amount |
|---|---|
| Rent | €850 |
| Utilities, internet, phone | €160 |
| Groceries | €350 |
| Transport | €120 |
| Insurance | €90 |
| Debt minimums | €110 |
| Emergency fund | €200 |
| Retirement / investing | €260 |
| Sinking funds (car repairs, gifts, annual fees) | €150 |
| Everyday spending | €310 |
| Assigned | €2,600 |
| Left to assign | €0 |
Every line is a job. When the car fund has €900 in it and the clutch goes, that is what the money was for — it is not a budget failure, it is a budget working eighteen months early.
Notice that "everyday spending" is a single line. Zero-based budgets die from having thirty-four wants categories that need to be reconciled. One flexible line, tracked weekly, is enough; if you want more detail, the 50/30/20 post has a good split for it.
What a lumpy month looks like#
March: two invoices land, €4,800 total. €1,400 (29%) goes to the tax reserve on arrival. On April 1st, €2,600 goes to personal. The income account keeps €800 more than it had. Personal budget: unchanged.
April: one client is late. €900 arrives. Tax reserve takes €260. On May 1st, €2,600 goes to personal — the income account is now €1,960 lighter than it was, but the reserve covers it. Personal budget: unchanged. You did not "cut back in April"; you had already smoothed April in March.
That is the entire trick. The budget is never rebuilt. The reserve absorbs the shape of the income, and you see the reserve balance move instead of feeling it in your grocery money.
Where software helps and where it does not#
The parts of this that are worth automating are the mechanical ones:
- The salary transfer as a recurring transaction on the 1st, so it happens whether or not you remember.
- The tax percentage as a habit you can ask about: "how much of this month's invoices has gone to the tax reserve?" is a ledger read, and the answer should come from real entries, not from a spreadsheet you updated in February.
- The reserve target as a savings goal with a visible bar, because "three salaries" is abstract and €7,800 with €5,100 in it is not.
The part software should not do is decide your salary for you. That number is the whole system, and it should come out of your own floor. When someone in Azno asks me to set it, I will show them their last twelve months of income sorted, point at the floor, and propose the recurring transfer — and then wait. Confirming it is theirs to do, because living on it is.
If you run a business and a household in the same account, the salary move only works when the two books are actually separate; this post is about keeping them that way.


