Budget: Research, Analysis & Design

Excel modeling is software development. Every Excel project can benefit from following the well established concept of a software development life cycle (SDLC). At right is graphical representation of one version of it. 

In the previous section we defined our projects requirements. That is part of the Planning Phase. In this section we will learn how to translate requirements into a model design. Let us remind ourselves what our project's requirements are.

Functional Requirements

Our next phase is Analysis. In this phase we start be determining what we have to work with. In some versions of the SDLC, this referred to as the Research phase. But for our purposes, we will make this part of the Analysis phase.

Research and Analysis

In this phase we look at our requirements and determine what we have to work with (inputs) as it relates to what we must produce.(outputs).

Available Information for Inputs

The two central bits of information in a budget planner are the budget year and budget items

Budget Year

Budget Items

Each budget item as attributes such as:

Required Outputs

We will want charts and tables that aggregate:

Bridging the Gap: Calculations

The missing piece between our inputs and our outputs is linking each expenditure to a specific date. In other words, scheduling our income and expenses. This will be the focus of our calculations. Things we need to calculate are:

Design

Using our research we conceptualize how we want to structure our model. We start with inputs. 

Inputs

An input in the Excel context is anything that has no precedents. They are things entered or imported. They include constants, labels, data validation tables and user entries. We can divide inputs into two categories: User Inputs and Modeler inputs.

User Inputs

User inputs are those things we want the user to change and that is most of this model's inputs. The things we want users to change are:

tblBI - Budget Items

We need users to input items and amounts into a table. Each row in the table will be an item. The user can also enter into this table each item's category, first due date, and how often it repeats. 

tblBC - Budget Categories

Users can enter the budget categories that makes sense to them. For business budgeting this is usually a general ledger account description and the account type is always Expense. The model example is setup for personal budgeting which also tracks Income

tblUI - Model Properties

This model only has one property: Start. This is the first day of the budget year.

Modeler Inputs

There are somethings the user must not change usually because they are part of our formulas, which users must also not change. Modeler inputs usually include labels, named constants, and data validation tables. 

tblRC - Recurrence Codes

In this model we will be creating calculations to schedule amounts based on how often they recur. Thus, the recurrence code that users may use must be one, and only one, of the codes that our formulas recognize. Those codes go in the Recurrence Codes table.

tblNC - Named Constants

A best practice is to name literals, also known as constants, used in formulas. This makes our formulas more readily understood. Since these are used in formulas users must not change them. In this project these names will likely be mnemonics for for values used to calculate recurrences. An example is MPY for Months Per Year. We will use MPY instead of 12 in formulas that need that value. Usually we won't know what named constants we will need until we start writing formulas. So as we have a need for a named constant, we simply add them to this table. But from experience, I know the table is almost always needed.

Calculations

In the research and analysis section we listed most of our calculations. There is one calculation we didn't consider. If we continued with what we have, we would have discovered it, eventually, and then changed our design. But because I've done this sort of thing a few times, my experience reminds me that we need some way to link our calculations to our budget items. For this we will create an ID column in both the budget item entry table and the budget schedule calculations. 

Days - This calculates the number of days between between the user's input: Start Date, and same day of the month, 12 months out:

Date - This will be our budget calendar. It will start with the user's input: Start Date, and continue for Days:

ID - This is in the budget items entry table and provides an ID for each expenditure item row. 

ID - This extends the budget item entry table's ID to the budget item schedule calculations. 

Scheduled Amount - This calculates when an expenditure will occur in the budget year. This will be a monster as this one formula, in just one cell, calculates all expenditures for all dates using any of the 8 recurrence methods.

We will determine exactly how we will calculate these things in the construction phase of our project, which is next.

Outputs

This section includes those things that have no dependent cells and are formatted and focused on providing information needed by end users - not the model. End users may make changes in this section that do not alter the model's calculations. Having done this sort of thing many times, my experience is the easiest and most flexible means of displaying actionable information to clients is via PivotTables, Pivot Charts, and Slicers. 

For this project we will need four PivotTable/PivotChart combos. They are

We will also need three slicers

Here is a graphical version of our model's design

In the next section we start construction in what our SDLC calls the Development phase. Click Next below.