Every November, the same scene plays out in apartment association meetings across Riga, Tallinn, and Vilnius: a dozen owners sitting in a basement community room, staring at a spreadsheet nobody fully understands, trying to agree on next year's maintenance fee before the heating bill arrives.
I have sat through enough of these meetings to know the pattern. The treasurer presents last year's actuals. Someone points out that the roof repair came in 18% over budget. Someone else argues the reserve fund is too small. A third person insists fees should not go up. The meeting runs two hours over. The budget gets approved at midnight. Nobody is happy.
It does not have to be this way. Here is a practical framework for annual budget planning that I have seen work for apartment associations of all sizes, from 8 units to 120.
Start with actuals, not last year's budget
The single biggest mistake I see is using last year's budget as the starting point. Budgets are wishes. Actuals are what happened. If you base next year's plan on what you hoped would happen this year, you are building on a guess.
Pull the real numbers. Every transaction. Group them by category: heating, electricity, water, cleaning, elevator maintenance, insurance, administrative, reserve contributions. Compare actuals to budget for each line. Note the variances. A 15% miss on heating is information. A 15% miss on elevator maintenance is a warning.
If your accounting system cannot produce this report in under ten minutes, that is your first problem to fix. You cannot plan a budget with a shoebox of receipts and a hand-entered spreadsheet.
A worked example: 24 units in Āgenskalns
Let me show you what this looks like with real numbers. A 24-unit Soviet-era panel building in Āgenskalns, Riga — five stories, one staircase, district heating from Rīgas Siltums. I helped their board build the 2025 budget last October. Here is what the actuals looked like for 2024:
| Category | 2024 actual | 2025 plan |
|---|---|---|
| Heating and hot water | €9,400 | €10,800 |
| Elevator service and callouts | €3,200 | €3,600 |
| Repairs and maintenance | €2,800 | €3,100 |
| Cleaning and grounds | €1,900 | €2,000 |
| Administration and accounting | €2,400 | €2,520 |
| Insurance | €1,150 | €1,300 |
| Reserve contribution | €0 | €2,400 |
| Total | €20,850 | €24,720 |
The maintenance fee went from €0.72/m² to €0.86/m². That is a 19% increase, and yes, owners were unhappy about it. But the alternative was another year with a zero reserve fund and a heating bill that could swing 30% depending on January. The board presented the one-page summary two weeks before the meeting, answered questions in a shared Google Doc, and the budget passed in 80 minutes. The reserve contribution was the line people argued about most. It was also the line that mattered most.
Separate recurring costs from project costs
Recurring costs are predictable: heating contracts, electricity, water, cleaning salaries, insurance premiums, annual elevator inspection. These are your baseline. They go up by inflation, fuel prices, and wage index. You can forecast them with reasonable accuracy by looking at the last 24 months and adjusting for known changes.
Project costs are everything else: roof repairs, pipe replacements, facade insulation, parking lot resurfacing. These are lumpy. A year with no projects looks cheap. A year with a roof replacement looks catastrophic. If you mix the two, your maintenance fee will swing wildly and owners will revolt.
The fix: maintain two budgets. A recurring operating budget that changes gently year over year. And a multi-year capital plan that spreads major projects across 5-7 years and funds them through a separate reserve contribution. When the roof needs replacing in year three, the money is already there, collected in small amounts over years one and two.
Build the reserve fund on purpose, not by accident
Most apartment associations I have worked with treat the reserve fund as whatever is left over at the end of the year. Some years there is a surplus. Some years there is not. This is not a reserve. It is a coincidence.
A proper reserve fund has a target. The standard rule of thumb: hold 2-4% of the building's replacement value, or at minimum 3-6 months of operating expenses, whichever is larger. For a 40-unit building with annual operating costs of €48,000, that means €12,000-€24,000 in reserve at all times.
Contribute to the reserve every month, not just when there is a surplus. Treat it as a fixed line item in the recurring budget, right after insurance. If you do not, the first major repair will wipe it out and you will face a special assessment that owners cannot afford.
In Latvia, the Law on Residential Property Management (Dzīvokļa īpašuma likuma 4. daļa) requires associations to maintain a reserve fund, but the law does not specify a minimum amount. That leaves it to the board, which usually means it gets underfunded. My advice: pick a percentage of the annual budget — 8% to 12% is a reasonable start for older panel buildings — and write it into the association's internal rules so it survives a change of board.
Forecast heating and electricity with a margin
Heating is the largest variable cost for most apartment associations in the Baltics, and it swings with winter severity. I have seen heating bills vary by 30% year over year for the same building.
Do not forecast heating at last year's actual. Forecast at last year's actual plus a 12% margin. If the winter is mild, you keep the surplus in the reserve. If the winter is harsh, you do not face a shortfall in February that forces an emergency fee increase.
Electricity is more stable now than it was in 2022, but the same principle applies. Add a 10% margin. The cost of overestimating is a small surplus. The cost of underestimating is a special assessment in March, which is far worse politically.
One thing worth knowing if your building is still on a single-pipe heating system: a heating substation modernization (siltummezgls) can cut consumption 15-25%, and Altum offers loans specifically for this under the Energy Efficiency program. The payback is typically 4-7 years. If your heating line is over €8,000 a year for a building under 40 units, it is worth running the numbers.
Involve owners before the meeting, not during
The midnight-budget-approval scenario happens because owners see the numbers for the first time in the meeting. By then it is too late to ask questions, push back, or suggest alternatives. Everything becomes a rushed decision under social pressure.
Send the draft budget to all owners at least two weeks before the annual meeting. Include a one-page summary: last year's actuals, next year's plan, the fee change, and the top three reasons it changed. Invite written questions. Answer them in a shared document before the meeting.
When the meeting happens, most owners have already made peace with the numbers. The discussion focuses on the two or three lines people actually care about, not the entire spreadsheet. The meeting finishes in 90 minutes. The budget passes. People go home.
Track variance monthly, not just annually
A budget approved in December and reviewed next December is a budget that has been dead for six months. Costs drift. Usage changes. A contractor raises prices mid-year. By the time you notice in the annual review, the damage is done.
Run a simple variance report every month: budget vs actual by category. Flag anything over 10% off. If heating is running 20% above plan in January, you can adjust the reserve contribution in February rather than discovering the shortfall in November when it is too late to act.
This takes ten minutes a month if your system tracks transactions by category. It is the highest-return financial habit an association can build.
The line everyone forgets: insurance and audit
Two lines I see underfunded almost every year are insurance and the building audit (tehniskā apskate). Insurance feels optional until the February a pipe bursts and floods three apartments below. The audit feels bureaucratic until your insurer asks for it after a claim and you cannot produce one.
In Latvia, a building audit runs €400-€800 depending on size. Insurance for a 30-40 unit panel building runs €800-€1,500 a year if you shop around. Together that is under €2,500, but if you budget €0 for either, you are guaranteeing a surprise expense. Budget for both, every year, even if the audit is not due — it rotates on a cycle, and the year it lands on your building is never the year you expected.
Use the right tools
A spreadsheet is fine for an 8-unit building with one bank account and no employees. Past that, it becomes a liability. Version control is a mess. Formulas break silently. The treasurer leaves and nobody can find the password to the Google Sheet.
A proper property management system gives you: categorized transactions, automatic budget vs actual reporting, reserve fund tracking as a separate ledger, multi-year capital planning, and owner communication tools in one place. If your annual budget meeting currently requires printing a 14-tab spreadsheet and explaining each tab verbally, you have outgrown the spreadsheet.
The bottom line
A good annual budget is not a prediction. It is a decision framework: how much do we need to collect, how much do we set aside for the future, and how do we communicate that to owners so the meeting does not end at midnight.
Start with actuals. Separate recurring from capital. Fund the reserve on purpose. Add margin on variable costs. Share the draft early. Track monthly. The math is not complicated. The discipline is.
If your association is ready to move past the spreadsheet stage, that is exactly what we built Urbaneta for: categorized billing, reserve tracking, owner communication, and budget reporting in one system. But even if you never use it, the framework above will make your next annual meeting shorter, calmer, and more accurate.
Dreading the next budget meeting? Try Urbaneta free — categorized billing, reserve fund tracking, budget-vs-actual reports, and owner communication in one platform. No setup fee, no credit card.