Dave Ramsey talks about sinking funds. If you pay $1200 year for car insurance, you set aside $100/month. It’s a budget line. It avoids the surprised. Do the same with every expense that’s not a regular expense. Do the same for Christmas, birthdays, vacation, etc.
The budgeting he advocates is a zero based budget. You tell every dollar where it goes.