Class Notes

Designing and Developing Good Spreadsheet Models

 

By now, you've had some hands-on experience with spreadsheets. You've worked with spreadsheets as part of a course requirement, and possibly on your job, too. Keep in mind, however, designing and building a good model requires more than just throwing together some labels and formulas. This is particularly true when you develop models not just for your own use, but for use by your colleagues and managers.

You need to make sure your spreadsheet exhibits the characteristics common to good models. To help ensure that your spreadsheets exhibit those characteristics, it's a good idea to follow a structured process as you design and build your models.

Characteristics of Good Models

Designing and Building Good Models

 

Characteristics of Good Models

As you've figured out by now, spreadsheets vary widely in terms of their functions and complexity. Some models are very basic, with just a few simple formulas. Others are quite complex – they may include a variety of complicated formulas and functions. All models, regardless of their size or complexity, should include the following characteristics:

Accuracy

Clarity

Flexibility

Efficiency

Documentation

 

Accuracy

The most important characteristic of any model is accuracy. In fact, an inaccurate model is worse than no model at all. Always test your models for accuracy before you use them or distribute them to other users. It's a good idea to use several sets of test data, just to make sure your model works properly regardless of the data being used.

 

Clarity

"Clarity" refers to the layout and organization of the model. Is it organized so that others can follow it, or will users (besides you, of course) be totally bewildered when they try to interpret the data? When you design the layout of your model, identify and highlight the information that will be of most interest to the end users of the model. Make sure the model is organized so that users can easily identify where they should enter data, and where they can expect to find calculated results.

 

Flexibility

Good models are flexible. That is, they're designed to accommodate not just today's situation, but situations that may occur down the road as well. Models should be designed so that they are easy revise. After all, one of the primary benefits of spreadsheets is the ability to conduct "what if" analysis. Why other to build the model at all if it won't lend itself to changing conditions?

One way to ensure that your model is flexible is to include an assumption set to hold input variables. An assumption is simply an educated guess – your best estimate of a particular value. For example, let's say your company is coming out with a new line of bobbleheads, and you're preparing a five-year financial forecast for the product line. You don't really know how many bobbleheads you'll sell over the next five years, nor do you know what the selling price will be. Production costs are a guess (albeit an educated one) at this point, as are the other expenses related to the product. Still, you need to have some idea of whether or not the product line will be profitable. To build the model, you'll need to develop an assumption set that represents your best guess for the values of the variables included in the forecast.

Assumptions should be included in their own section of the model; that way, they're easy to change when the underlying conditions of the model change. When you write formulas, you should use the cell references of the cells in the assumption set rather than the values themselves. When the variables change, you don't need to search through the entire model to find all occurrences of the variable. You just need to change the value in the assumption set, and all formulas that refer to that value will automatically be updated. For an example of how this might look in Excel, take a look at a sample financial forecast for Betty's Bobbleheads.

 

Efficiency

When you build your models, your goal is to work smarter instead of harder. That is, develop your model so that you can make the most efficient use of the spreadsheet tools available to you. Use functions instead of formulas whenever possible. Make appropriate use of absolute and relative cell references; this way, you can copy formulas when necessary instead of retyping them each time. The goal is to minimize your keystrokes. This makes the development process go much more quickly, and helps improve the accuracy of your model.

 

Documentation

Thorough documentation – both internal and external – is an absolute necessity! Internal documentation includes titles, column and row headings, cell notes, and so on. Keep in mind that other users may not be familiar with your abbreviations and "lingo"; make sure to explain special terms and abbreviations used in your model.

Depending on the model, external documentation may include several different components.

  • Overall description of the model. Explain the goal of the spreadsheet, and give an overview of how it is organized. Highlight the key features of the model – what makes this model worth using?

  • People involved. Who developed the model? Who is responsible for updating and distributing the model? Who receives the updates and uses the model?

  • Software version used. Make sure to identify the software version used to create the model. Since software upgrades sometimes include a change in file format, users with older versions of the software may not be able to read files created with the new software.

  •  Assumption set. Explain how you came up with your assumption set values. Are they based on historical data? Did your manager tell you to use them? Did you just pull them out of thin air (not advised, but hey – it's been known to happen!)?

  • Key formulas. Explain any key formulas in your model. If the formula is particularly complicated, break it down so the other users know how it works.

  • Internal controls. Explain the internal controls built into the model. Internal controls include features such as data validation, cell protection, workbook protection, and so on. You'll learn how to implement several types of internal controls as the quarter progresses; as you include the controls in your models, make sure to let other users know they exist.

  • Worksheet sections. Describe the different sections in the model. If the model consists of multiple worksheets, make sure to explain the purpose for each sheet.

  • Printouts. In some cases, it's a good idea to generate a printout of the entire model. You'll probably need at least two printouts: one that shows the calculated results, and one that shows the formulas.

  • Chronological list of changes. Keep a detailed list of all changes. Make sure to include the following minimal information:

    • who made the change

    • a description of the change

    • the date the change was made

    • who tested the change

    • when the revised model was distributed to other users

    Depending on how the model is used, you may think of other information to include as well.

In some cases, the necessary documentation can be included as the first sheet in the workbook. In other cases, you'll need to provide a written report. Regardless of the format, thorough documentation is a critical component of a good model!

 

Designing and Building Good Models

Naturally, models that incorporate the characteristics listed above don't just magically appear – those kinds of models require extensive thought and planning. It's a good idea to follow a structured process as you plan and develop your models. While a structured planning and development process won't guarantee a perfect model, it's certainly a step in the right direction.

We'll break our planning and development process down into these steps:

  1. Define the problem/identify your objectives

  2. Define the data requirements

  3. Identify the data relationships

  4. Draw a map

  5. Build the model

  6. Test the model

  7. Write the external documentation

  8. Use the model

 

Defining the Problem/Identifying Your Objectives

The first step in our spreadsheet development process is to define the problem or identify the objectives for the model. The problem definition or objectives specification statement should be clear and concise – usually no more than one or two sentences (although this may vary, depending on the model). Take the time to write the problem definition down on paper, and keep it front of you while you work – you'll stay much more focused on the problem at hand, and won't be quite as likely to stray from the original purpose of the model.

 

Defining the Data Requirements

When you define the data requirements, you simply make a list of the data you need to solve the problem you identified in the first stage of the development process. I usually break this into a few different sections – data I have, data I still need to gather, and results that will be calculated. If you need to get some of your data from someone else, this is a good time to ask for it. Otherwise, you could find yourself in a bit of a bind when you actually sit down to build the model.

 

Identifying the Data Relationships

Data relationships are "word" formulas that identify how the data will work together. For example, in our Betty's Bobbleheads model, the word formula for revenues might look like this:

Revenues = selling price per until * units sold

Notice that the formula doesn't include any numbers. We aren't really interested in the specific values at this point; we just want to figure out how everything will work together. In addition to helping us make sure we understand the logic behind our formulas, data relationships help point out data that we may have missed when we defined the data requirements earlier in the development process.

 

Drawing a Map

A map is a pencil-and-paper sketch of the model. Maps can take a variety of forms. Some maps are very detailed, while others are just "big-picture" sketches. The idea is to try to get a "picture" of how you plan to organize the model. Where will you put the assumption set? Where will the calculated results be located? Will you include a chart? If so, where?

 

Building the Model

Ahhh – the moment we've been waiting for! It's time to actually build the model. If you did a good job with the data relationships and the map, this part of the process should be a breeze. When you build your model, keep these tips in mind.

  • Be generous with internal documentation. Make sure your column and row headings are clear, and that other users will be able to understand them. Clearly identify the sections of the spreadsheet. For example, identify sections of the model in which data should be entered. Otherwise, an enthusiastic user may just replace all of your formulas with constants (unless, of course, you protect the cells – we'll look at that later this quarter)! Use cell notes when appropriate (we'll look at that later, too).

  • Follow good practices when writing formulas. Use absolute and relative cell references appropriately. Copy formulas when you can – this saves time and minimizes the chance for errors. Use functions instead of formulas whenever possible. In general, try to minimize your keystrokes as much a possible. Every time you type, you introduce the chance for a new error. The less typing you do, the more accurate your model will be.

  • Never use constants in your formulas! Remember, formulas should include only cell references and operators!

  • Break formulas down into small parts. Instead of writing one complex formula, break it down into smaller parts. Short formulas are much easier to trouble-shoot than large, rambling ones.

  • Use appropriate formatting. If a cell represents currency, format it accordingly. Use text alignment to your advantage – make sure headings are properly aligned over the data they represent. Use borders and shading to highlight key areas of the model. Be consistent in terms of the number of decimal places you show. Some data needs to be shown at a very high level of precision, while in other cases it's OK to show the data in thousands. Regardless, make sure you're consistent in the model – don't confuse other users by switching formats mid-stream.

 

Testing the Model

Testing is critical. As mentioned previously, an inaccurate model is worse than no model at all. The first line of defense is to do a reality check – does the data make sense? For example, if you add up a column of 3-digit numbers and end up with a 2-digit result, something went wrong! Most models, though, require more than just a reality check. You should perform the calculations by hand, or use some other verified results to compare against your model. Depending on the model, you may need to use several different sets of test data (very large numbers, very small numbers, and something in the middle) to check your model. In addition to accuracy, you should also check for formatting problems. When you use large numbers, are the columns wide enough to hold the results, or do you end up with those annoying pound signs in the cell? Keep in mind that the test data should represent a reasonable range. For example, if your model will most likely hold data in the thousands, don't test with data in the billions – test with data in the high thousands.

 

Writing the External Documentation

It's actually a good idea to write your external documentation while you develop that model; that way, everything is fresh in your memory. As mentioned earlier, external documentation can sometimes be included as the first sheet in the workbook. In other cases, you may need to write a separate report. Regardless, make sure the documentation includes everything a user needs to know about the model. Keep in mind that there's a good chance someone else will eventually take "ownership" of the model. (After all, we all want to be promoted out of our current job at some point, right??) So, make sure you provide sufficient documentation for the new owner.

 

Using the Model

Keep in mind that models are rarely static –  they tend to be dynamic, which means you'll probably end up revising or updating the model at some point. Remember to keep a log of all changes, and remember to test the model thoroughly after each revision; a seemingly minor change can sometimes wreak havoc where you least expect it!

 

 

 

 

 

 Home | Contacting Me | Courses | FAQs | General Info | Resources | Site Guide

© 2000-2005, Margaret Cheatham. All rights reserved.
Updated 04-Jan-2005