Skip to content
Jerry Jones edited this page Jan 24, 2024 · 13 revisions

Introducing Monthly Budget Bars

WARNING! As of 1/1/2024 I am no longer maintaining this code. It is freely available for someone else to pick up and maintain.

Budget Bars with data

Monthly Budget Bars is an extension for the Moneydance Personal Finance app to create a summary page widget to help you track how well you are meeting your spending goals.

Note that Monthly Budget Bars will only work with budgets created with a Monthly period. These can be created in the normal Moneydance way or you can use my companion extension Monthly Budget Editor which allows for negative budget amounts along with easy entry of budget amounts in a compact spreadsheet style format. I have also created another companion extension called Monthly Budget Report which also supports negative budget amounts.

Why use Monthly Budget Bars

  • Properly handles negative budget amounts
  • Can display "virtual" income and expense roll up bars.
  • Properly handles non-budgeted and no money spent amounts and displays them properly. (No “Out of date” warnings.)
  • This extension fully supports mixed currencies.
  • Doesn’t try to calculate prorated partial month budgets

Known Limitations

  • Only monthly budgets can be used with this extension.
  • This extension works best if your computer has at least a 1280 x 720 minimum display resolution.

Using Monthly Budget Bars

  1. Install the extension per the instructions in the readme file.

  2. Make sure you have created and set up a monthly budget before continuing. The best way to do this is to use my companion extension Monthly Budget Editor.

  3. In Moneydance, select File:Preferences from the main menu bar then select the Summary Page tab. In the Available Items area find Monthly Budget Bars and click on it to select it. Next click Add above either the left or right column to add it to the Summary Page. You can re-select it and move it up or down in the column as you wish. Click OK to save the changes.

  4. After initially configuring the extension or after updating it in the future, you may need to click away from the summary page and then return to it to get the Monthly Budget Bars widget to re-initialize. On the left sidebar you can click on Reminders below Summary and then click Summary again to refresh the display.

  5. If you see the message below, you likely didn't complete step 2. You’ll probably have to close Moneydance and re-open it after creating a monthly budget to get Monthly Budget Bars to open.

Startup with no monthly budgets defined

  1. The first time you see Monthly Budget Bars it should look like the following picture. Click the Edit button to configure the widget.

New Empty Budget Bar

  1. In the edit dialog (as seen below) you will need to configure the budget bar widget to suit your needs. First, select the budget to use from the list of available monthly budgets. If Show full category names is checked, each budget bar will show a full name rather than a short name. For example, Auto:Fuel rather than just Fuel. Show all ancestors on the budget bar tooltips will enable ancestor level details in the hover tooltips. See Tooltips later in the Wiki page. When selected, Use the category currency to display values will show each category in the currency selected for that category. If not selected, any categories set to use a different currency will be converted to the base currency before being displayed. The Warning and Over Budget sliders set limits in percentages where a budget bar will display in orange (warning) or red (over budget). Finally, you can add categories from the Available Categories list to the Selected Categories list. Selected Categories will be displayed in the widget. These items can be moved up or down or removed as desired. Click Save when everything is configured as you want it.

Budget Bar Edit Window

  1. You should now see your selected budget bars displayed on the Summary Page.

Budget Bars with data

Example of budget bars with Use the category currency to display values checked:

Budget Bars with mixed currencies

Display period

Period Selection

You can select the period covered by the Monthly Budget Bars by clicking on the selector at the top left of the widget. The following selections are available:

  • Automatic - Displays budget bars that automatically capture the current year through the end of the current month. The year and months covered automatically update as time passes without any user interaction needed.
  • This Month - Includes the actual spending, total budgeted, and amount left to spend for the current month.
  • Last Month - Includes the actual spending, total budgeted, and amount left to spend for the previous month.
  • This Year - Includes the actual spending, total budgeted, and amount left to spend for the entire current year.

Tooltips

If you move the mouse cursor over a budget bar, a tooltip style popup will be displayed with details about the budget bar. If it is a category that has no children, only the category name and percent of the budget spent will be shown since the budget bar itself already shows all the detail for that category. If however, the budget bar is for a category that has children, additional information will be displayed with details about the individual children that make up the totals displayed on the budget bar. The level of information depends on whether you chose to display all ancestors or not when editing the configuration. (Note: You can go back and change this at any time by clicking the Edit button)

Hover without show all ancestors

If Show all ancestors is not selected only direct children of the category selected for the budget bar will be shown.

Hover with show all ancestors

If Show all ancestors is selected all ancestors of the category selected for the budget bar will be shown.

Since the number of categories can get to be more than can be displayed, any ancestor category with a zero budget and a zero actual spending amount will not be displayed. Unlike Monthly Budget Report and Monthly Budget Editor which treat categories with children as roll up categories that display the totals of the children below them, Monthly Budget Bars displays in the popup the details that make up the totals displayed for the budget bar, in other words, the budget bar itself is the roll up. If you add up each column in the popup - spent, remaining, or budget, the totals for each column should be the same as the values for the same items displayed by the budget bar itself. In the examples above if you add up $444 plus $310 you arrive at the $754 displayed as the Spent amount of the budget bar. However, if displaying values using the category currencies, the columns won’t add up if there are mixed currencies rolling up or if the parent category is using a different currency than the children since they are shown in different currencies. The example below shows this.

Budget Bars Foreign Test Popup

Budgeting or assigning transactions to a parent category

Whenever a category has children, I assume this category to be a roll-up (or totals) category for the children below it. Transactions should not be assigned to a parent category because the children below it provide an additional level of detail when transactions are assigned to them, otherwise, the parent wouldn’t need to have children. The parent budget is just the sum of the budgets below it, you can’t edit parent budget values in Monthly Budget Editor and you will get unexpected results if you edit these in the default Moneydance budget editor. Monthly Budget Report and Monthly Budget Bars will correctly total transactions assigned to parent categories but you really should avoid assigning transactions to a parent category.

Assigning a transaction to a parent category

Example of assigning a parent category "Salary" to a transaction.

Assigning a transaction to a parent category example 1

Example of how the tooltip text will reflect this. This will be the only time you will see the category the budget bar is displaying showing up in the detailed roll up information.

Submitting Issues

Submit an issue.