I built the model layer for goal-oriented budgeting in Pezeta today. This is the implementation of the goal system I’ve been designing over the past week.
I’ve laid the foundation for four distinct goal types:
- Someday Goals – For big purchases. Save until you hit your target amount, then stop allocating.
- Monthly Goals – For recurring commitments. Allocate a fixed amount every month, like subscriptions or regular savings habits.
- Deadline Goals – For time-bound expenses. Spread the target amount evenly across the remaining months until your due date.
- Reserve Goals – For emergency funds. Maintain a buffer of N months of average expenses based on your actual spending patterns.
I still need to test all of this thoroughly, but the models are in place and the calculations are working. What I like about this approach is how it will turn vague financial intentions into concrete monthly actions. Want to save $5,000 for a vacation by next December? The system can calculate exactly how much to set aside each month. Need three months of expenses in your emergency fund? It’ll figure out what that means based on your actual spending patterns. The system tracks progress over time, adjusts recommendations based on current balances, and integrates smoothly with the existing budget structure.
Next up is building the UI layer. The foundation is solid, but there’s still work to do before I can actually use these goal features in my own budgeting workflow.