Utilities Up 12%: Building a Realistic 2026 Budget in Beancount

My January 2026 electric bill just came in at $178, up from $145 in January 2025. That’s a 23% increase year-over-year, and it’s forcing me to completely rebuild my monthly budget in Beancount.

If you’re still using static budget amounts for utilities from 2022 or 2023, you’re probably way off. The average U.S. household now pays $610/month for all utilities (electricity, gas, water, internet), and electricity alone jumped 47% from 2020 to 2025.

This isn’t just inflation - it’s a structural shift in energy costs that requires a different budgeting approach in Beancount.

The Utility Cost Crisis

Here’s what happened to household utility costs over the past 5 years:

Five-year increases (2020-2025):

  • Electricity: +47%
  • Natural gas: +103% (more than doubled!)
  • Water: +59%

2026 projections:

  • Electricity expected to rise another 13-18% this year
  • Average monthly electric bill: $156 (national average)
  • Total utility costs (all services): $610/month

The key problem: Utility bills are now outpacing wage growth and overall inflation, rising 9.6% in 2025 vs. general inflation of ~3%.

Why Static Budgets Don’t Work Anymore

Most Beancount users set their utility budgets once and forget about them:

; DON'T DO THIS - Static budget from 2023
2026-01-01 budget Expenses:Utilities:Electric "Monthly budget"
  Expenses:Utilities:Electric   120 USD  ; Wrong! This was accurate in 2022

The problem: Electricity costs 47% more now than in 2020. Your $120 budget is now $176.

If you budgeted $120/month in 2023, you’re under-budgeting by $56/month in 2026. That’s $672/year in unexpected expenses.

How to Track Variable Utility Costs in Beancount

Instead of a fixed monthly budget, track actual costs and calculate rolling averages:

; Track actual utility bills
2026-01-15 * "Duke Energy" "January electric bill"
  Expenses:Utilities:Electric    178.45 USD
  Assets:Checking               -178.45 USD
  usage_kwh: 892
  rate_per_kwh: "$0.20"

2025-12-15 * "Duke Energy" "December electric bill"
  Expenses:Utilities:Electric    155.20 USD
  Assets:Checking               -155.20 USD
  usage_kwh: 776
  rate_per_kwh: "$0.20"

2025-11-15 * "Duke Energy" "November electric bill"
  Expenses:Utilities:Electric    132.50 USD
  Assets:Checking               -132.50 USD
  usage_kwh: 663
  rate_per_kwh: "$0.20"

Then use a query to calculate your 3-month rolling average:

SELECT
  SUM(position) / 3 AS avg_monthly_electric
FROM
  CLOSE ON 2026-01-31
WHERE
  account ~ 'Expenses:Utilities:Electric'
  AND date > 2025-10-31

This gives you a dynamic budget that adjusts to seasonal changes and rate increases.

Separate Usage from Rate Increases

The real insight comes from tracking kWh usage separately from rate increases.

Store usage in metadata:

2026-01-15 * "Duke Energy" "January electric bill"
  Expenses:Utilities:Electric:Usage    89.20 USD  ; 892 kWh × $0.10 base rate
  Expenses:Utilities:Electric:Delivery  45.30 USD  ; Delivery fees
  Expenses:Utilities:Electric:Taxes     43.95 USD  ; Taxes + surcharges
  Assets:Checking                     -178.45 USD
  usage_kwh: 892
  rate_increase_yoy: "23%"
  note: "YoY: Usage flat, rates up 23%"

This breakdown tells you:

  • Usage: 892 kWh (same as last year)
  • Base rate: $0.10/kWh (up from $0.082 in 2025)
  • Delivery + taxes: $89.25 (up from $72 last year)

Insight: Your usage didn’t change, but rates increased 23%. You can’t conserve your way out of this - it’s a structural cost increase.

Building a Realistic 2026 Utility Budget

Based on national averages and projected increases:

Average monthly utility costs (2026):

Electricity: $156/month (up 13-18% from 2025)
Natural gas: $81/month (highly variable, seasonal)
Water/sewer: $41/month (most stable)
Internet: $75/month
Total: $353/month (essentials only)

If you include cable/streaming/phone: Total utility costs rise to $610/month.

Beancount budget template:

; 2026 Utility Budget (Realistic)
2026-01-01 budget Expenses:Utilities:Electric "Monthly budget (rolling avg)"
  Expenses:Utilities:Electric   165 USD  ; Based on 3-mo avg + 13% increase

2026-01-01 budget Expenses:Utilities:Gas "Monthly budget (seasonal)"
  Expenses:Utilities:Gas   120 USD  ; Winter months (Dec-Feb)

2026-04-01 budget Expenses:Utilities:Gas "Monthly budget (seasonal)"
  Expenses:Utilities:Gas    35 USD  ; Spring/summer/fall (Mar-Nov)

2026-01-01 budget Expenses:Utilities:Water "Monthly budget"
  Expenses:Utilities:Water   41 USD  ; Most stable utility

2026-01-01 budget Expenses:Utilities:Internet "Monthly budget"
  Expenses:Utilities:Internet   75 USD  ; Fixed cost

; Year-end projection
2026-12-31 note Expenses:Utilities "\
=== 2026 UTILITY COST SUMMARY ===

Projected annual costs:
  Electricity: $165 × 12 = $1,980
  Gas: ($120 × 3) + ($35 × 9) = $675
  Water: $41 × 12 = $492
  Internet: $75 × 12 = $900
  TOTAL: $4,047/year ($337/month avg)

2025 actual: $3,420
Increase: $627/year (18% YoY)
"

Seasonal Adjustment Strategy

Don’t budget the same amount year-round - utilities are highly seasonal:

Winter heating (Dec-Feb):

  • Electric: $180-200/month (heating in warm states)
  • Gas: $120-150/month (heating in cold states)

Summer cooling (Jun-Aug):

  • Electric: $200-250/month (AC costs)
  • Gas: $15-30/month (minimal usage)

Shoulder seasons (Mar-May, Sep-Nov):

  • Electric: $120-150/month
  • Gas: $30-50/month

Track these patterns:

; Flag seasonal spikes
2026-07-15 * "Duke Energy" "July electric bill (AC season)" #summer-spike
  Expenses:Utilities:Electric    234.50 USD
  Assets:Checking               -234.50 USD
  usage_kwh: 1173
  note: "Summer AC peak - expected spike"

Query by tag to see seasonal patterns:

SELECT YEAR(date), MONTH(date), SUM(position)
FROM CLOSE
WHERE account = 'Expenses:Utilities:Electric' AND 'summer-spike' IN tags
GROUP BY YEAR(date), MONTH(date)

The Real Question: How Much Should You Budget?

Conservative approach (avoid surprises):

  • Take your highest bill from the past 12 months
  • Add 15% (projected 2026 increase)
  • Use that as your monthly budget
  • Surplus months go into a sinking fund for winter spikes

Example:

Highest 2025 bill: $189 (July AC peak)
+ 15% increase: $189 × 1.15 = $217
Monthly budget: $220 (rounded up)

Actual Jan-May avg: $165
Surplus: $220 - $165 = $55/month × 5 months = $275 saved
Use surplus to cover July-Aug spikes ($234 + $245 = $479)

Beancount sinking fund:

; Transfer surplus to utility sinking fund
2026-05-31 * "Budget surplus to sinking fund"
  Assets:SavingsGoals:Utilities    275 USD
  Income:BudgetSurplus            -275 USD
  note: "5 months of $55 surplus → prepare for summer AC spike"

; Withdraw from sinking fund during peak months
2026-07-31 * "Utility spike covered by sinking fund"
  Expenses:Utilities:Electric      234.50 USD
  Assets:Checking                 -220.00 USD  ; Budgeted amount
  Assets:SavingsGoals:Utilities    -14.50 USD  ; Use sinking fund for overage

My 2026 Strategy

I’m switching from static budgets to dynamic, seasonally-adjusted budgets with a sinking fund:

  1. Track actual costs with metadata (kWh, rate, YoY increase)
  2. Calculate rolling 3-month averages to spot trends
  3. Budget conservatively (use highest bill + 15%)
  4. Bank the surplus in low-usage months
  5. Query regularly to see if I’m on track

This approach turns unpredictable utility spikes into manageable, tracked expenses.

Anyone else dealing with huge utility cost increases? How are you adjusting your Beancount budgets?

This is SO helpful. I’ve been wondering why my budget is always off, and now I realize it’s because I set my utility budget in 2022 and never updated it.

My current budget: $110/month for electric
My actual average (last 3 months): $168/month

That’s a $58/month gap, or $696/year in unbudgeted expenses. No wonder I feel like I’m always over budget!

Quick question: How do you handle the situation where your bill varies wildly month-to-month?

My electric bills (last 6 months):

Aug 2025: $215 (AC running non-stop)
Sep 2025: $178
Oct 2025: $142
Nov 2025: $125
Dec 2025: $151
Jan 2026: $168

The range is $90 difference between the highest and lowest months. How do I budget for that in Beancount without either:

  1. Over-budgeting every month (and feeling like I have “extra” money that I don’t)
  2. Under-budgeting peak months (and panicking when the bill arrives)

I like your sinking fund idea, but I’m not sure how to implement it practically. Do you:

  • Budget the high amount every month and transfer surplus to savings?
  • Budget the average and pull from savings during peak months?
  • Use separate budgets for peak vs. off-peak seasons?

Also, a tracking tip I discovered:

I copy/paste the usage breakdown from my online electric bill into the transaction note:

2026-01-15 * "Duke Energy" "January electric bill"
  Expenses:Utilities:Electric    168.45 USD
  Assets:Checking               -168.45 USD
  note: "Usage: 842 kWh | Rate: $0.12/kWh base + $0.08 delivery | YoY: +19%"

This lets me quickly see if my usage increased (behavioral change) or if rates increased (nothing I can do about it).

Last month my usage was actually DOWN by 5%, but my bill was UP by 19% due to rate increases. That tells me conservation won’t help - I’m just stuck paying more.

How are you handling rate increases that you can’t control?

I’ve been tracking utilities in Beancount for 8 years, and here’s what I learned: Seasonal budgets work way better than annual averages.

Instead of budgeting $150/month year-round, I set different budgets for each season:

; Winter heating season (Dec-Feb)
2025-12-01 budget Expenses:Utilities:Electric "Winter season"
  Expenses:Utilities:Electric   195 USD

; Spring/Fall mild weather (Mar-May, Sep-Nov)
2026-03-01 budget Expenses:Utilities:Electric "Shoulder season"
  Expenses:Utilities:Electric   135 USD

; Summer cooling season (Jun-Aug)
2026-06-01 budget Expenses:Utilities:Electric "Summer season"
  Expenses:Utilities:Electric   225 USD

This gives me realistic expectations for each month instead of always being surprised.

The sinking fund approach (how I actually do it):

I budget for the highest seasonal amount year-round ($225 in my case), then bank the surplus:

; Monthly budget (always the highest amount)
2026-01-01 budget Expenses:Utilities:Electric "Annual budget"
  Expenses:Utilities:Electric   225 USD

; Actual January bill (off-peak)
2026-01-15 * "Electric Company" "January bill"
  Expenses:Utilities:Electric    142.50 USD
  Assets:Checking               -142.50 USD

; Transfer surplus to sinking fund
2026-01-31 * "Budget surplus" "Utility sinking fund contribution"
  Assets:SavingsGoals:Utilities    82.50 USD  ; $225 budget - $142.50 actual
  Income:BudgetSurplus            -82.50 USD
  note: "Jan surplus → summer AC fund"

By June, I’ve accumulated $82.50 × 5 months = $412 in my utility sinking fund.

When July’s $235 bill arrives, I’m covered because I’ve been “pre-paying” it during the low-usage months.

Historical trend tracking:

I also track year-over-year comparisons in my notes:

2026-01-15 * "Electric Company" "January 2026 bill"
  Expenses:Utilities:Electric    168.45 USD
  Assets:Checking               -168.45 USD
  usage_kwh: 842
  yoy_2025: "$142.50 (Jan 2025)"
  yoy_increase: "18%"
  note: "Usage down 3%, rate up 21% → net +18% cost"

This helps me see the real problem: I can’t conserve my way out of rate increases.

In 2025, I reduced my usage by 12% through LED bulbs, unplugging devices, and adjusting the thermostat. My bill still went up 15% due to rate hikes.

At some point you realize utility costs are non-discretionary inflation - you just have to accept it and budget accordingly.

Pro tip for Beancount queries:

Run this query at year-end to see your true utility inflation:

SELECT
  YEAR(date) as year,
  SUM(CONVERT(position, 'USD')) as total_electric
FROM CLOSE
WHERE account = 'Expenses:Utilities:Electric'
GROUP BY YEAR(date)
ORDER BY year

Results:

2022: $1,485
2023: $1,628 (+9.6%)
2024: $1,789 (+9.9%)
2025: $2,047 (+14.4%)
2026: $2,350 (projected, +14.8%)

That’s a 58% increase over 4 years - way higher than the ~12% general inflation over the same period.

Once you see the numbers, you stop feeling guilty about high utility bills and just accept it as the new normal.

As a bookkeeper, I help small business clients track their utility costs, and the same strategies work for personal finances.

The biggest mistake I see: People track utilities as a single lump-sum expense.

Instead, break it down by utility type AND cost component:

; DON'T DO THIS - Too vague
2026-01-15 * "Utilities" "January bills"
  Expenses:Utilities    387.50 USD
  Assets:Checking      -387.50 USD

; DO THIS - Granular tracking
2026-01-15 * "Electric Company" "January electric"
  Expenses:Utilities:Electric:Supply      84.20 USD  ; Energy charges
  Expenses:Utilities:Electric:Delivery    52.30 USD  ; Transmission fees
  Expenses:Utilities:Electric:Taxes       31.95 USD  ; Taxes + surcharges
  Assets:Checking                       -168.45 USD

2026-01-18 * "Gas Company" "January gas"
  Expenses:Utilities:Gas:Supply          67.80 USD
  Expenses:Utilities:Gas:Delivery        28.50 USD
  Expenses:Utilities:Gas:Fees            15.20 USD
  Assets:Checking                      -111.50 USD

2026-01-20 * "Water District" "January water"
  Expenses:Utilities:Water:Usage         31.40 USD
  Expenses:Utilities:Water:Sewer         45.80 USD
  Expenses:Utilities:Water:Fees          15.35 USD
  Assets:Checking                       -92.55 USD

2026-01-05 * "ISP" "January internet"
  Expenses:Utilities:Internet            75.00 USD
  Assets:Checking                       -75.00 USD

Why this matters:

When you query by sub-account, you see which component is increasing:

SELECT account, SUM(position)
FROM CLOSE ON 2026-01-31
WHERE account ~ 'Expenses:Utilities:Electric'
GROUP BY account

Results:

Expenses:Utilities:Electric:Supply    $84.20  (usage-based)
Expenses:Utilities:Electric:Delivery  $52.30  (infrastructure fees - fixed)
Expenses:Utilities:Electric:Taxes     $31.95  (surcharges + taxes)

Insight: Your supply charges (usage) are 50% of the bill. The other 50% is non-negotiable fees and taxes.

This breakdown tells you:

  • Reducing usage saves you $0.10/kWh on supply
  • But delivery fees and taxes stay the same regardless
  • Cutting usage by 20% only reduces your total bill by ~10%

The “fixed vs. variable” split:

Track which utilities are fixed (internet, sewer base fee) vs. variable (electric usage, water usage):

; Tag fixed vs variable costs
2026-01-05 * "ISP" "January internet" #fixed-cost
  Expenses:Utilities:Internet    75.00 USD
  Assets:Checking               -75.00 USD

2026-01-15 * "Electric Company" "January electric" #variable-cost
  Expenses:Utilities:Electric    168.45 USD
  Assets:Checking               -168.45 USD

Then query to see how much of your utility budget is truly controllable:

SELECT
  'Fixed' as type, SUM(position) as total
FROM CLOSE ON 2026-01-31
WHERE account ~ 'Expenses:Utilities' AND 'fixed-cost' IN tags
UNION ALL
SELECT
  'Variable' as type, SUM(position) as total
FROM CLOSE ON 2026-01-31
WHERE account ~ 'Expenses:Utilities' AND 'variable-cost' IN tags

Results:

Fixed costs: $182.50 (internet + base fees)
Variable costs: $275.00 (usage-based)
Total: $457.50
Controllable: 60% (variable costs only)

This tells you that even if you cut your variable costs by 50% (nearly impossible), you’d only save $137.50/month because 40% of your utility costs are fixed.

Year-end reconciliation:

At year-end, I create a summary note showing total spend by utility:

2026-12-31 note Expenses:Utilities "\
=== 2026 UTILITY BREAKDOWN ===

Electric: $2,021 (avg $168/mo) - up 19% from 2025
Gas: $1,338 (avg $112/mo) - up 23% from 2025
Water/Sewer: $1,111 (avg $93/mo) - up 8% from 2025
Internet: $900 (avg $75/mo) - flat from 2025
TOTAL: $5,370 (avg $448/mo)

2025 total: $4,485
Increase: $885/year (19.7% YoY)

ACTION: Increase 2027 budget to $475/month
"

This becomes your historical record for next year’s budget planning.

The bottom line:

Granular tracking = better insights = more accurate budgets.

Don’t just record “$387 utilities” and move on. Break it down, track the trends, and you’ll understand where your money is actually going.

One thing I haven’t seen mentioned: Utility billing cycles don’t align with calendar months, which makes budgeting even trickier.

My electric bill covers:

  • January 12 - February 10 (labeled as “February bill”)
  • But the due date is February 25
  • And it appears in my checking account on February 25

So which month do I record it in Beancount?

Option 1: Record by payment date (when it hits your bank)

2026-02-25 * "Electric Company" "Bill for Jan 12 - Feb 10"
  Expenses:Utilities:Electric    178.45 USD
  Assets:Checking               -178.45 USD

Pros: Matches your bank statement exactly
Cons: February’s budget includes a bill covering mostly January usage

Option 2: Record by billing period (when you used the electricity)

2026-01-31 * "Electric Company" "Jan usage (paid Feb 25)" ^electric-jan-2026
  Expenses:Utilities:Electric    178.45 USD
  Liabilities:CreditCard:Pending 178.45 USD

2026-02-25 * "Electric Company" "Payment" ^electric-jan-2026
  Liabilities:CreditCard:Pending  178.45 USD
  Assets:Checking                -178.45 USD

Pros: Expenses match the period when you actually consumed the electricity
Cons: More complex, requires accrual accounting

I used to do Option 1 (payment date) because it’s simpler, but it always bothered me that my January budget report didn’t include my January electricity usage.

Now I use Option 2 (accrual method) and it’s way better for tracking actual consumption patterns:

; Accrue the expense in the usage month
2026-01-31 * "Electric Company" "January usage (billed Feb 12, due Feb 25)"
  Expenses:Utilities:Electric       178.45 USD
  Liabilities:Utilities:Pending     178.45 USD
  usage_period: "Jan 12 - Feb 10"
  usage_kwh: 892
  note: "Accrued expense - payment due Feb 25"

; Pay the bill when due
2026-02-25 * "Electric Company" "Payment for January usage"
  Liabilities:Utilities:Pending     178.45 USD
  Assets:Checking                  -178.45 USD
  note: "Paid Jan 12 - Feb 10 bill"

Why this matters for budgeting:

With the payment-date method, your monthly budget reports are misleading:

  • January shows $0 electric (because you haven’t paid yet)
  • February shows $178 + $165 = $343 electric (Jan + Feb usage combined)

With the accrual method, your budget reports are accurate:

  • January shows $178 electric (actual January usage)
  • February shows $165 electric (actual February usage)

This makes it way easier to spot trends and compare month-to-month.

Year-end reconciliation:

At year-end, you need to accrue your December usage (paid in January):

; December usage (bill arrives Jan 12, due Jan 25)
2026-12-31 * "Electric Company" "December usage (unpaid at year-end)"
  Expenses:Utilities:Electric       152.30 USD
  Liabilities:Utilities:Pending     152.30 USD
  usage_period: "Dec 11 - Jan 9"
  note: "Year-end accrual - payment due Jan 25, 2027"

; Payment in the new year
2027-01-25 * "Electric Company" "Payment for December 2026 usage"
  Liabilities:Utilities:Pending     152.30 USD
  Assets:Checking                  -152.30 USD
  note: "Paid Dec 11 - Jan 9 bill"

This ensures your 2026 expense reports include all electricity you actually consumed in 2026, even if you didn’t pay for it until 2027.

Is this overkill for personal finance? Maybe. But if you’re serious about understanding your utility costs and trends, accrual accounting gives you way more accurate data than cash-basis accounting.

Anyone else using accrual accounting for utilities, or am I overthinking this?