Year-Over-Year Spending Change
Compare spending by category between this year and last year, with percentage change to spot trends.
=(this_year - last_year) / last_year How It Works
Year-over-year (YoY) change compares the same category or time period across two years. The percentage change formula shows whether spending went up or down and by how much - useful for catching lifestyle creep or confirming that cost-cutting efforts are working.
Syntax
=(this_year_amount - last_year_amount) / last_year_amount
Format result as percentage. Positive means spending increased, negative means it decreased.
Example
Annual Spending Comparison:
| Category | 2024 | 2025 | Change | % Change |
|---|---|---|---|---|
| Groceries | $5,400 | $6,120 | +$720 | +13.3% |
| Dining Out | $3,600 | $2,880 | -$720 | -20.0% |
| Utilities | $2,400 | $2,520 | +$120 | +5.0% |
| Transport | $4,200 | $4,200 | $0 | 0.0% |
| Subscriptions | $960 | $1,440 | +$480 | +50.0% |
Formula (Groceries): =(C2-B2)/B2 = 13.3%
Groceries rose 13.3% while dining out fell 20% - possibly a shift from restaurants to cooking at home.
Setting Up a YoY Tracker
| A | B | C | D | E |
|---|---|---|---|---|
| Category | 2024 | 2025 | $ Change | % Change |
| Groceries | 5400 | 6120 | =C2-B2 | =D2/B2 |
| Dining Out | 3600 | 2880 | =C3-B3 | =D3/B3 |
| Utilities | 2400 | 2520 | =C4-B4 | =D4/B4 |
| Total | =SUM(B2:B4) | =SUM(C2:C4) | =C5-B5 | =D5/B5 |
Format column E as percentage. Use conditional formatting to highlight increases in red and decreases in green.
Variations
Month-by-Month YoY Comparison
Compare individual months across years:
=(Jan_2025 - Jan_2024) / Jan_2024
This catches seasonal patterns that annual totals might hide.
YoY with SUMIF
Pull yearly totals dynamically from a transaction log:
=SUMIFS(Amounts, Categories, "Groceries", Dates, ">="&DATE(2025,1,1), Dates, "<"&DATE(2026,1,1))
Then compare the two SUMIFS results with the percentage change formula.
Handling Zero in the Base Year
If last year’s spending was zero (new category), the formula divides by zero. Handle it:
=IF(B2=0, "New", (C2-B2)/B2)
Multi-Year Trend
Track 3+ years with compound annual growth rate:
=(C2/A2)^(1/2)-1
Where A2 is the oldest year and C2 is the newest, with 2 years between them.
Pro Tips
-
Inflation context - a 3-4% increase may simply reflect inflation rather than actual spending growth
-
Use absolute values for context - a 50% increase on $100 is $50, but a 5% increase on $5,000 is $250 - the dollar amount matters too
-
Compare totals and categories - total spending might be flat while individual categories shift significantly
-
Spot lifestyle creep - consistent 10-15% annual increases across discretionary categories can signal gradual lifestyle inflation
-
Conditional formatting - color-code the % change column to make trends visible at a glance
Common Errors
- Dividing by zero: If last year had no spending in a category, wrap in an IF check
- Comparing different time ranges: Make sure both years cover the same months - partial year data skews the comparison
- Ignoring one-time expenses: A single large purchase (appliance, medical bill) can distort the YoY picture - consider excluding or noting outliers
- Wrong sign interpretation: Positive % = spending went up, negative % = spending went down