I need to confess something uncomfortable: my spending data revealed I’m a hypocrite.
For the past three years, I’ve been tracking every transaction in Beancount, obsessively optimizing my path to FIRE. I considered myself a “conscious consumer”—someone who cares about sustainability, supports local businesses, and prioritizes experiences over stuff. But I’d never actually measured whether my money matched my mouth.
Last month, I built a simple Beancount query to audit my values alignment. The results were humbling.
The Uncomfortable Truth
Despite telling myself I “mostly shop local” and “avoid Amazon,” my transaction data told a different story:
- 60% of purchases were from big-box retailers and Amazon
- Only 23% of food spending went to local restaurants or farmers markets
- 73% of discretionary spending went to material goods vs experiences
- Less than 5% of purchases were from B-Corps or certified sustainable companies
The cognitive dissonance was painful. I believed I was living my values. The numbers said otherwise.
The Audit Process
Here’s how I structured my values audit using Beancount metadata:
Step 1: Define Value Categories
I identified four personal values that should drive spending decisions:
- Environment: Sustainable, low-waste, eco-friendly
- Community: Local businesses, small vendors, direct relationships
- Health: Whole foods, quality ingredients, wellness
- Experience: Travel, learning, activities vs material goods
Step 2: Add Metadata Tags
I went back through six months of transactions and added metadata tags:
2026-01-15 * "Whole Foods Market" "Weekly groceries"
values: "local, sustainable, health"
Expenses:Groceries 127.34 USD
Liabilities:CreditCard
2026-01-15 * "Amazon" "Phone accessories"
values: "convenience"
Expenses:Electronics 34.99 USD
Liabilities:CreditCard
Yes, it took a Saturday afternoon. No, I didn’t enjoy confronting my Amazon habit.
Step 3: Build Analysis Queries
I created custom Beancount queries to calculate my “values alignment score”:
SELECT
account,
COUNT(*) as transactions,
SUM(COST(position)) as total_spent,
ANY_META('values') as values_tags
WHERE
account ~ 'Expenses:'
AND year = 2025
GROUP BY account, values_tags
ORDER BY total_spent DESC
This showed me spending by value category. The results were eye-opening.
The Intervention
I didn’t want this to be a one-time audit. I wanted ongoing accountability. So I implemented a monthly “Values Dashboard” in Fava:
- Monthly Values Score: Percentage of spending aligned with stated values
- Category Breakdown: Which expense categories drift furthest from values
- Trend Tracking: Am I improving or backsliding?
- Top Offenders: Merchants where I spend most with lowest values alignment
I set a goal: move from 40% values-aligned spending to 70%+ within six months.
Six Months Later
I’m now six months into this experiment. Current values alignment: 72%.
What Changed:
- Amazon purchases down 81%: From $2,300/quarter to $430/quarter
- Local food spending up 140%: Farmers market became weekly ritual
- Experience spending up 200%: Prioritized concert tickets, hiking trips, cooking classes over gadgets
- Community impact: Built relationships with local shop owners, discovered new favorite spots
What Didn’t Change (And That’s OK):
- Still use Amazon for items truly unavailable locally (specialty tech gear)
- Still shop at Costco for bulk staples (but reduced frequency)
- Still prioritize cost for commodity items where values don’t differentiate
The Surprising Benefits
Beyond feeling better about my spending, I discovered unexpected advantages:
- Better purchasing decisions: The friction of considering values prevented impulse buys
- Deeper satisfaction: Buying from real people at local shops felt better than click-and-ship
- Natural spending reduction: Values-aligned purchases tend to be more intentional, reducing total spending
- Community connections: Regular interactions with local merchants built real relationships
- Data for optimization: Just like tracking macros or expenses, tracking values enables improvement
The Framework (For Anyone Wanting to Try)
Start Simple (Week 1):
- Pick ONE value that matters to you
- Add a simple tag to new transactions:
#localor#sustainablein the payee field - Just observe for a month
Go Deeper (Month 2):
- Add structured metadata to transactions
- Create basic queries to calculate % values-aligned
- Identify your biggest misalignment areas
Optimize (Month 3+):
- Set specific values alignment targets
- Track monthly progress
- Adjust spending habits based on data
- Celebrate improvements, stay honest about backsliding
The Real Lesson
The point isn’t perfection. I’m not trying to be 100% values-aligned (that’s probably impossible anyway). The point is awareness.
Before this audit, I had a story I told myself about my spending. After the audit, I had data. The data didn’t match the story.
Now I have a dashboard that holds me accountable. Every month, I see whether I’m living my values or just claiming to.
That’s the power of plain text accounting. It’s not just tracking dollars—it’s tracking integrity.
For anyone interested: I’m happy to share my metadata schema and queries. Would love to hear if others have done similar values audits, or if this resonates with anyone else’s experience.
Has anyone else discovered uncomfortable truths when analyzing their Beancount data? What did you do about it?