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:
- Track actual costs with metadata (kWh, rate, YoY increase)
- Calculate rolling 3-month averages to spot trends
- Budget conservatively (use highest bill + 15%)
- Bank the surplus in low-usage months
- 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?