Annual Ops Budget Template
Most small teams don't have an ops budget. They have a credit card and a surprise. The invoices arrive scattered — a SaaS renewal here, a laptop there, a $400 emergency router the week the office floods — and each one is "small enough not to discuss." This template turns the scatter into six budget lines, one reforecast per quarter, and a kill list. Every number is pulled from records you already keep — the software license register and the IT asset inventory — so the budget is an export, not an archaeology project. One page, no finance degree, and the mid-year "we need to buy what?" conversation becomes a fifteen-minute review instead of a crisis.
1. The six lines that cover real small-team ops spend
Budget categories fail when they're too abstract ("infrastructure") or too granular (one line per SaaS tool). Six lines hold the whole weight:
| Line | What lives in it | Where the number comes from |
|---|---|---|
| 1. Software & SaaS renewals | Every recurring subscription, seat expansion, and annual plan | Sum the license register — cost × seats × renewal period. This is the line with zero archaeology if the register is honest. |
| 2. Hardware replacement fund | Laptops past mid-life, the aging NAS, the router with no firmware since 2024 | Filter the asset inventory by warranty/support-ends within 18 months × replacement cost. Divide by 2 so you don't buy everything in one year. |
| 3. Incident buffer | The bad day: emergency hardware, IR contractor hours, data-recovery service | One replacement laptop price + one day of contractor rate. Unspent rolls forward; spent quietly, you'll be glad it existed. |
| 4. Security & compliance | Password manager seats, MDM, backups, the annual pen-test or audit hour | License register (security rows) + one audit line. Never the first line you cut. |
| 5. People-knowledge | Training, conference or course, the documentation hours that feed the dependency audit | One course + conference per person per year. Small line, huge return on the day someone resigns. |
| 6. Contractors & ad-hoc | One-off projects, migrations, the specialist hour you can't hire | Last year's actuals × 1.2. If you had no actuals, start with line 3's contractor rate × 3. |
Everything else — office snacks, domain renewals, that $9/mo tool someone tried in March — is not a line. Domains and misc sub-$100/year go in line 1 as a "tail" row; snacks are not ops. The test for a line: would its absence create an operational risk? Snacks don't. Backups do.
2. Build it in one afternoon — the five sources
The first budget is a half-day of reading your own registers, not a forecasting exercise:
- License register export. Every row with a renewal date in the next 14 months. Sum by month — you'll see the renewal spikes (that's where the annual plans cluster) and the seats creep (30 seats where 22 people work).
- Asset inventory filter. Support-ends within 18 months. Multiply by today's replacement price, not the 2023 price. Divide by two — you're building a replacement fund, not buying everything at once.
- Last year's card statement. Categorize into the six lines. The delta between "what I think we spend" and the statement is always a lesson; the tail is always bigger than expected.
- The incidents of last year. What did the bad days actually cost? A dead drive recovered, a contractor weekend, a new router bought in a panic? That sum is the floor of line 3, not a guess.
- Known next-year projects. The migration everyone's discussed, the vendor contract expiring (contract checklist has the dates). Named projects get named amounts; unnamed anxieties get nothing.
Write the result on one page — the whole budget fits on a laptop screen. If it doesn't fit, you've built a finance department, and that's a different document.
3. The monthly ritual: fifteen minutes, three questions
A budget nobody reads is a spreadsheet. The ritual that keeps it alive:
- What arrived this month that wasn't a line? A new $15/mo tool, a $90 surprise renewal, a seat upgrade someone self-served. Every surprise gets a decision: kill it, or amend a line. Untracked surprises are how lines rot.
- Am I pacing? Lines 1 and 4 are near-fixed (compare to plan); lines 2, 3, 6 burn unevenly. Only two numbers matter monthly: line 1 actual vs plan and cash left in lines 2+3+6.
- Did anything change upstream? New hire = +1 seat line and a laptop from the spare fund; a resignation = a offboarding seat reclaim (seats you stop paying for are budget found). The weekly review catches these; the monthly budget ritual prices them.
Fifteen minutes, same day each month, calendar-blocked. The ritual's real job is killing surprises early enough that they're decisions instead of emergencies.
4. The quarterly reforecast: where budgets actually happen
Annual budgets set intentions; quarterly reforecasts make them true. One hour, four questions:
- Which lines will blow through? Hardware fund too thin because two laptops aged early? Move money now, while it's still a choice. A reforecast that only documents the shortfall is a post-mortem, not a forecast.
- Which renewals changed shape? The vendor moved from $9/user to $14/user, or annual-only with a 20% jump. That's a decision point — shop it, negotiate it, or kill it — and it's visible only if the license register's renewal dates are current. This is why line 1 and the register are the same source of truth.
- What did the buffer absorb? Line 3 spent on a real incident? Good — that's what it's for. Refill it first from whatever's underspent. An empty incident buffer entering Q4 is a bet you don't want to be holding.
- What moves to the kill list? (Section 5.) The reforecast's most valuable output isn't a new number — it's the tool you finally stop paying for.
Sync the reforecast hour with the access review and the asset drift check: same quarterly afternoon, three audits, one long coffee.
5. The kill list: how new tools get paid for
Every new tool someone wants gets one rule: name what dies to pay for it. A $40/mo addition with no donor is a budget leak with a nice landing page. The kill list works because it forces the comparison nobody makes naturally — the shiny candidate against the forgotten incumbent:
- Zero-login tools. The license register shows last-login (or ask for SSO/audit access). A tool nobody has opened in 90 days is not a line, it's a refund. SaaS sprawl audit for the full method.
- Duplicate tools. Two screenshot tools, two task boards, three "AI writing" subscriptions. Pick one, kill the rest, and reclaim the seats in the register the same day — cancellation without a register update just resurrects next quarter.
- Trial ghosts. The annual-plan upsell taken during a trial, forgotten in month two. The register's "renewal date + notes" column catches these; the kill list executes them.
- Insurance-by-tool. Tools kept "just in case" that duplicate a capability you already have in line 3's buffer. Sometimes the buffer replaces three niche subscriptions — and the buffer doesn't auto-renew.
Publish the kill list with amounts. "Killed: 2 tools, $57/mo — funds the monitoring upgrade we actually needed" is the sentence that makes the whole budgeting exercise credible to the team. Without visible kills, "budget" reads as "no."
6. The worked example (solo operator, 6-person company)
| Line | Plan | Basis |
|---|---|---|
| 1. Software & SaaS | $4,200/yr (~$350/mo) | License register: 14 tools, 3 annual spikes (Mar, Jun, Nov), tail ~$40/mo. Includes reclaiming 8 zombie seats found in the register. |
| 2. Hardware fund | $3,000/yr | Inventory: 3 laptops hit warranty end within 18 months (~$1,400 each). Split across 2 years. NAS + router budgeted for next cycle. |
| 3. Incident buffer | $1,800/yr | One laptop price + one contractor day. Unspent rolls forward (last year's buffer absorbed a $600 drive recovery — kept the floor). |
| 4. Security & compliance | $1,100/yr | Password manager (9 seats), MDM, offsite backups, 2 hours of external review. Protected line — never first cut. |
| 5. People-knowledge | $900/yr | One course + one conference ticket per person, staggered. Feeds the dependency audit's shadow-test time, too. |
| 6. Contractors & ad-hoc | $2,400/yr | Last year actuals ($2,000) × 1.2. Known Q3 project: the CRM migration. |
Total: $13,400/yr ≈ $1,117/mo — roughly the price of one junior hire, covering the whole operational floor. The number itself matters less than the fact that every line has a source and a review cadence.
7. The paste-in starter (CSV)
Start ugly and honest. Columns first, rows second; the numbers get honest on their own once the ritual runs.
line,category,monthly_plan,annual_plan,source,owner,review_cadence,notes 1,software_saas,350,4200,license_register,Ops,monthly,3 annual spikes: Mar/Jun/Nov 1,software_tail,40,480,card_statement,Ops,monthly,domain + misc under $100/yr 2,hardware_fund,250,3000,asset_inventory,Ops,quarterly,3 laptops EOL <18mo; split 2yr 3,incident_buffer,150,1800,last_year_incidents,Ops,quarterly,rolls forward; spent = refill first 4,security_compliance,92,1100,license_register,Ops,quarterly,protected line — never first cut 5,people_knowledge,75,900,per_head_policy,Ops,quarterly,course + conference per person 6,contractors_adhoc,200,2400,last_year_actuals,Ops,quarterly,Q3 CRM migration project
One row per line (plus the tail), one owner, one cadence. If you add a "misc" row, it must have a monthly review or it becomes where unexamined spend hides.
8. What each line feeds on a bad day
- Line 3 → the stolen-laptop hour. The lost-or-stolen runbook ends with "replace the device." A funded line 2/3 turns that sentence into a same-week laptop instead of a quarterly debate.
- Line 4 → the compromise cleanup. The company-card runbook and any credential incident end with rotations, audits, sometimes external help. Security spend already budgeted means you buy the help instead of hoping.
- Line 2 → the EOL walk. The patch cadence finds a device the vendor no longer supports. Budget already placed in line 2 means the replacement is a purchase, not an emergency.
- Line 5 → the resignation morning. When notice lands, the dependency audit assumes the backup person exists and the docs are current. That's line 5's money at work — the cheapest insurance in the whole budget.