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

Introducing Monthly Budget Editor

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 Editor Window

Monthly Budget Editor is an extension for the Moneydance Personal Finance app to help you easily enter monthly budget amounts for a year to keep track of how well you are meeting your monthly spending goals. The extension includes the ability to initialize a new budget from the prior year's budget or actual spending as well as extensive pop up menu support to easily enter or update values for each spending category and month.

Monthly Budget Editor is a companion to to my Monthly Budget Report which correctly handles negative budget amounts (More about that later). I have also created Monthly Budget Bars another companion that creates a Summary Page widget which also works properly with negative budget amounts. This extension like the others, fully supports mixed currencies.

Known Limitations

  • Only monthly budgets can be used with this extension. The budget must have been created in the Moneydance user interface as there is no way at present to create a new one in the Monthly Budget Editor.
  • Only calendar year budgets are supported. If there is enough interest I may consider adding fiscal year support but that will complicate the code quite a bit.
  • I originally planned to have a screen to select the categories to budget but I found I really didn't need one. If you don't want to enter budget data for a category just leave the amounts set to 0. Categories that are hidden or inactive will not be presented for budgeting.
  • Categories with children are assumed to be roll-up categories and they cannot be edited. The totals that appear in these cells are not written to the Moneydance budget. See the Philosophy section below.
  • This extension works best if your computer has at least a 1280 x 720 minimum display resolution.

Using Monthly Budget Editor

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

  2. In Moneydance, go to Tools > Budget Manager and create a new monthly budget. Enter a name for the budget and select Monthly for the Period then click Create. Although not strictly necessary, it's always best to start off with a new empty budget before using this extension otherwise unexpected results could occur.

Create a new budget

  1. Select Extensions > Monthly Budget Editor to open the budget editor window. When selected, Use the category currency for values will show each category in the currency selected for that category. When you edit values they will be entered in the category currency. If not selected, any categories set to use a different currency will be converted to the base currency before being displayed. You will also then enter the budget values in the base currency.

  2. Be sure the desired budget and year are selected at the top of the window. Also set the Use the category currency for values checkbox as desired.

Budget Editor Settings

If Use the category currency for values is not checked, all budget values will be entered and displayed in the base currency as shown below.

Budget Editor using base currency

If Use the category currency for values is checked, all budget values will be entered and displayed in the currency selected for each category.

Budget Editor using category currency

  1. If you want to initialize the budget with last year's budget or actual spending, now is a good time to do that. Select Initialize Budget followed by either Copy prior year's budget or Use prior year's actuals as you wish. You can also Cancel the initialization and return to the main menu.

Initialize Budget

  1. In the main window, the blue and blue-green cells are not editable as they are the roll up totals of the "children" below them. The remaining cells can be clicked on and edited to set a monthly budget amount for that month and budget category.

When entering budget values - Digit group separators can be commas, periods or spaces. However, it's not necessary to include digit group separators. Decimal points can be commas or periods. A decimal point is optional but if included it must be within the maximum number of decimal places for the currency involved. Most currencies allow either 0 or 2 decimal places. "1", "2.", "1.2" or "1.23" would be valid amounts but "1.234" would assume the period is a digit separator and the value 1234 would be saved for the budget value.

To speed up data entry, you can tab between the editable cells. You can also right click on any of the editable cells as well as the totals column on the right to bring up a popup menu for special operations you can perform on the cell.
    
Normal Popup     
    
Totals popup
    
The rollover balance selections will set the previous cell(s) to the actual spending for those months and then add or subtract and balance to the selected cell keeping the overall budget total for the category the same. This may result in a negative budget amount that will not be shown correctly in the built-in Moneydance reports and budget bars. There also may be times where you get a refund or partial refund for an expense earlier in the year. Rather than going back and updating the budget for the time of the original expense, you can enter a negative amount later in the year to cover the refund amount. You may want to consider using my companion extensions called Monthly Budget Report and Monthly Budget Bars which correctly handle negative budget amounts.

  1. After changing the budget you must click the Save button to actually update the Moneydance budget. If you click Cancel you will get one more chance to select Yes to save the changes, No to cancel the changes, or Cancel to return to the Budget Editor window.

Philosophy

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.

Submitting Issues

Submit an issue.

Acknowledgements

  • I want to thank Michael Bray who wrote an extension called Budget Generator and made the source code available online. While Monthly Budget Editor was written with a bit different approach, his code helped tremendously in understanding the Moneydance API.
  • I also want to thank Rob Camick for posting his wrapped action code that helps enable tabbing between only editable cells.