๐ The problem no spreadsheet solves well Everyone has tried it: open a fresh spreadsheet in January, log every purchase, color-code a few cellsโฆ and by the third month the file is forgotten somewhere in a random folder. I've done it myself more than once. It's not about discipline. The real issue is that a static spreadsheet doesn't answer the questions that actually matter: "did my food delivery spending go up, or was it just an unusual month?" , "how much of my budget is already locked into installments?" , "am I spending more at the beginning or end of the month?" . That's why I decided to build a dashboard in Power BI using fictional data that simulates a real financial routine โ credit card, invoices, categories, and installment payments. The goal wasn't to create something pretty for a portfolio; it was to build a tool I'd actually use. ๐ก The detail that changes everything: purchase date vs. billing month This is something almost nobody handles well in personal finance tracking. You buy something on March 28th, but it only shows up on your April statement. If you only look at purchase dates, March looks heavier than it really was. If you only look at the billing cycle, you lose context about when the spending decision was actually made. In the model I built, the transactions table carries both pieces of information: the purchase date and the billing month (derived from the due date). The dashboard calendar connects through the billing month, which is the most useful lens for understanding "how much am I actually paying this cycle" . But the purchase date remains available for behavioral analysis โ for example, figuring out which days of the week you tend to spend the most. ๐ What the dashboard actually delivers I made a point of not cramming the screen with charts. The rule was simple: every visual must answer a specific question. If it doesn't, it doesn't make the cut. Here are the main views available: Total invoice and monthly trend: how much you spent in a given month and how that compares to the historical average. This includes a month-over-month (MoM) comparison that automatically calculates the percentage change โ if your bill went up 18% from the previous month, you see it right away. Year-over-year comparison (YoY): for those with a longer history, the dashboard compares the current period against the same month from the prior year. This is the kind of view that reveals seasonal patterns โ December always hits hard, January always eases up, and so on. Category ranking: categories are ranked by total spend (highest to lowest), and each one shows its percentage share of the total. If dining out accounts for 35% of your bill, it's right there โ no math required. Median vs. total: beyond total spend, I included the transaction median. Why? Because averages lie. If you have 50 transactions at $15 and one at $1,000, the average will look inflated. The median shows the typical value of your purchases โ and that's far more useful for understanding your real spending pattern. ๐ Under the hood: how the model was built For those interested in the technical side, the semantic model follows a classic star schema: Fact table ( tb_transactions ): each row is a transaction with amount, dates, category, payment status, and installment info. Date dimension ( dim_calendario ): auto-generated in Power Query from the transaction date range. It includes month, year, day of the week, and a formatted label (like "Jan/26") with proper sort order. Category dimension ( dim_categories ): name, hierarchy, and color for each category โ which enables conditional formatting directly in the visuals. ๐ฏ How to use this for better decisions A dashboard is not decoration. If it doesn't change any of your decisions, it's just a pretty picture on the wall. Here are some practical scenarios: A category spiked: the ranking and share percentage will flag it. You catch it early and adjust before the month closes. Total spend went up: the MoM comparison shows the variation. Then you investigate: was it a one-off event (a trip, a car repair) or a recurring pattern? Stacked installments: since the model tracks installment data, you can see future commitment โ how much of next month's bill is already "locked in". Year-end approaching: the YoY view shows what you spent during the same period last year. If last December was chaotic, at least now you can prepare. ๐ฒ Explore the dashboard The dashboard is published and fully interactive. Use the period and category filters to explore the data โ all fictional, but structured like a real-world scenario. Tip: select two different months and watch the percentage variation. To go deeper, filter by a specific category and see how it behaves over time โ sometimes the budget villain isn't what you'd expect. ๐ Conclusion: the system that works is the one you actually keep using At the end of the day, the best personal finance system is the one you actually stick with. Manual spreadsheets demand too much effort for too little visual payoff. A well-modeled dashboard flips that equation: the data goes in once and you extract answers as many times as you want, from different angles, without rework. ๐ Enjoyed this content? Share it and keep following my publications. Take the opportunity to read more articles !