Financial Modelling Code

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

ICAEW THOUGHT LEADERSHIP

IT FACULT Y

Financial modelling code



FINANCIAL MODELLING CODE

Contents

FOREWORD 1
INTRODUCTION 2
MODEL DEFINITION AND PURPOSE 3
Understand the scope of a financial model 3
Determine the goals of your model 3
LAYOUT AND STRUCTURE 4
Plan and assess the workbook layout 4
Make navigation simple 5
Make inputs easy to find 5
USER INTERFACE AND TRANSPARENCY 6
Include user guidance 6
Avoid duplication 6
Identify and separate forecast or dummy data 7
Don’t hide things 7
CONSISTENCY 8
Use consistent formulas 8
Use consistent placement 9
CLARITY 10
Use clear formatting 10
ACKNOWLEDGEMENTS
Stephen Aldridge – Numeritas
Use clear and meaningful labels 11
Levi Bailey – White Box Financial
Use clear units 11 Rob Bayliss – Grant Thornton
Use a clear sign convention 12 Tom Brichieri-Colombi – Mazars
David Colver – Operis
Use easily understandable worksheet names 12
Roland Brook – Smith & Williamson
Use clear range names where appropriate 13 Alexander Carse – John Laing
Document VBA code clearly 13 Mike Copeman – Wolters Kluwer
Daniel Emkes – Harrow School
ERROR REDUCTION 14
Glen Feechan – needaspreadsheet.com
Review and test your models 14 Joanna Hayes – Amberside Advisors

Include checks 14 Simon Hurst – The Knowledge Base


Michael Hutchens, Modano
Include a master check 15 Alistair Hynd – RSM
Consider including restrictions 15 Adam Lacey – Filtered
Simon Livings – KPMG
CALCULATION TECHNIQUES 16
Adrian Maconick – Finsbury Solutions
Minimise calculation complexity 16 Sanjay Magecha – Financial Visibility
Build traceable references 16 Patrick O’Beirne – Systems Modelling
John Tennent – Corporate Edge
Avoid hardcoding 17 Irfan Umarji – The Royal Society
Avoid circular references 18 Paul Wakefield – Paul Wakefield
John Yeldham, Mazars
Avoid unnecessary rounding 18
Use VBA and macros sparingly 19 For a full list of supporting organisations,
please visit our Financial modelling code
TWENTY PRINCIPLES FOR GOOD SPREADSHEET PRACTICE 21 webpage.

© ICAEW 2018.

All rights reserved. If you want to reproduce or redistribute any of the material in this publication, you should first get ICAEW’s permission in
writing. ICAEW will not be liable for any reliance you place on the information in this publication. You should seek independent advice.

Trademark acknowledgements: Excel is a registered trademark of Microsoft Inc.

2
FINANCIAL MODELLING CODE

Foreword

Financial modelling is carried out by many chartered


accountants and other professionals, and drives
decision-making throughout the business world.
Models from the simple to the complex can be found
in businesses of every size and in every industry.
There are various courses, standards and guides available that
explain how to build models, each with their own ideas about
what the appearance, layout and functionality of a model should
be. While there is much consensus among these methodologies,
for both procurers and practitioners there is no universally
accepted set of agreed principles for how to carry out financial
modelling. Most existing methodologies were developed
with particular sectors or practices in mind; hence, they are
frequently detail-oriented and not accepted very widely.
ICAEW has created this Financial modelling code to provide
essential guidance to standard-setters, procurers and
modellers on good practice. The guidance is principles-
based, high-level and broadly accepted. It was formed
from a review of seven methodologies and input from
over a dozen financial modelling organisations.
I commend the work of the Excel Community in creating
this guidance, and recommend it to anyone involved
in the production or use of financial models.

Michael Izza
Chief Executive Officer, ICAEW

1
FINANCIAL MODELLING CODE

Introduction

Spreadsheet financial models are ubiquitous in the business world, and decisions of all sizes
are made on the basis of their results. However, many spreadsheet users are self-taught or
have picked up bad habits along the way. Improper practice, such as a lack of review and
oversight, impacts the world economy; thus, we have created this guidance to support
best practice in the sector. Following good practice should result in a model that is robust,
understandable and less likely to contain errors.
Building on our earlier guide, the Twenty principles for good spreadsheet practice, this
Financial modelling code sets out our guidance on what we see as the universal tenets of best
practice in the field.
In preparing this Code, we compared and analysed seven organisations’ modelling standards
or methodologies, and took input from over a dozen modelling and professional services
organisations. This document describes the principles that underpin successful financial
modelling and which were agreed upon after much discussion and debate.
A list of contributors to the Code can be found at icaew.com/financialmodelling.
The Code is not intended to be a tick-box compliance tool; rather it is a framework for anyone
looking to set an organisational standard for how modelling is done. It can be used to inform
a conversation about financial modelling and the decisions made in designing a model. Any
finance professional looking to do their own modelling or any business looking to procure
financial modelling support can use the Code to steer their efforts.
This Code should be read in concert with the IT Faculty’s Twenty principles for good
spreadsheet practice a summary of which is included inside the back cover. Specific
cross-references to the Principles are identified where appropriate.
Each section of the Code addresses a particular element of constructing a model and
explains its goals. First, we consider the function of the model as a whole, and the
importance of designing its layout to optimise the user experience. Next, we highlight the
critical nature of consistency and clarity, before discussing some more specific elements of
model construction.
No one way of building a model is right for every situation. Thus, a variety of techniques are
presented in each section. Approaches that differ from those listed may be preferable in
different contexts. This is deliberate and the reader should be aware that these alternatives
may not always be mutually compatible.
In each section we present specific recommendations ( ), which include several options,
representing generally suitable and widely adopted approaches. We also provide some
examples of discouraged approaches ( ), which should be avoided unless a strong case can
be made for a specific circumstance.
With these principles, as with anything else, a degree of common sense should be applied. If
a recommended approach is followed to the extreme, it can create a negative outcome.
ICAEW’s Corporate Finance Faculty has also produced a longer and more detailed
publication, entitled Best Practice Guideline: Financial Modelling, which conforms to this Code
and explains how to carry out financial modelling in a corporate finance transaction context.

2
FINANCIAL MODELLING CODE

Model definition and purpose

In this section we define the model as referred to in this Code, and outline the essential aims
and key features of a good model.

UNDERSTAND THE SCOPE OF A FINANCIAL MODEL PRINCIPLE #5

Before starting,
Definition Financial model
satisfy yourself that
A time-based set of financial calculations within a spreadsheet workbook which aims to a spreadsheet is the
create a financial forecast based on one or more input set of variables. appropriate tool for
the job.

To ensure that the model will meet the user’s needs, it is imperative that the user first
understands the nature of a financial model. Although this guidance applies to financial
models built in spreadsheet packages such as Microsoft Excel, many of its lessons are
appropriate for other kinds of spreadsheets, or models built in other software.

Identify if a spreadsheet is the right solution, or if another medium should


be used.

DETERMINE THE GOALS OF YOUR MODEL PRINCIPLE #8

All models should have a clear purpose and defined output. It should be evident to all users Design for longevity.
what can and cannot be derived from its use. The model should also remain serviceable
indefinitely as it may need to be updated by multiple users over an extended period of time.
Gaining insight into the range of possible outcomes also makes it possible to ascertain the
risk and potential of the financial forecast. The aim of the builder should be to provide ‘an
engine’ through which alternative scenarios and sensitivities can be passed.

Design the model carefully before constructing it, taking into consideration the
various possible outcomes.

Build flexibly in a single spreadsheet to enable efficient development and


evaluation, and to avoid version control risks presented by multiple workbooks.

Ensure the model’s longevity.


For example, choose a structure and formulas that would allow the user to
extend the review period simply by copy-pasting.

3
FINANCIAL MODELLING CODE

Layout and structure

The way a model is laid out directly affects how easy it is to comprehend, and how likely the
user is to use it correctly and efficiently. Good structure can save users time in understanding
the model, freeing them to spend more time on the decisions the model is built to support.

PLAN AND ASSESS THE WORKBOOK LAYOUT PRINCIPLE #10

Models should be laid out in such a way that users can understand the flow of logic, and Separate and clearly
modify it as appropriate. Specifically, models should consist of clear and logical sections identify inputs, workings
arranged in an orderly fashion, and should be structured so users can easily find the and outputs.
components that are relevant to them. Logic should also flow consistently from inputs to
calculations to outputs. This consistency will help users understand the logic flows of
similar items.

Choose a structure that is appropriate for the circumstances.


For example, a model could either contain a single input worksheet, or multiple
worksheets if it were deemed necessary to split between time-based and
non-time-based inputs.

Segregate inputs (assumptions), calculations and outputs (results), either by using


separate worksheets, or demarcated sections on the same worksheet.

Use caution when mixing inputs with outputs, as this can inhibit understanding of
the model’s conclusions.

Split calculations into functional sections.


For example, use separate calculation worksheets such as timing, construction,
operations, financing and tax.

Include one or more dashboards summarising important outputs that answer the
questions the model was built for.
Dashboards, if used, may include key inputs; although this contradicts the
generally advocated practice of keeping inputs together, it is acceptable if the
input is very clearly identified.

Use identically structured worksheets for each business unit, and highlight any
required differences for the user.

Set up your model to read like a book: with logic flowing from top to bottom
within each worksheet, and from left to right both within each worksheet and
across sheets within a workbook.

Display time periods horizontally.

If a model must be spread across multiple workbooks, make it clear and obvious
which values are linked to and from other workbooks.
For example, host all such links in a ‘landing page’ contained in the model.

Avoid referencing cells in one workbook from another (this includes any
reference, including formulas, defined names and charts).

4
FINANCIAL MODELLING CODE

MAKE NAVIGATION SIMPLE

Users should be able to navigate easily around a model. Good workbook layout can
support navigation.

Include an intuitive directory and navigation system, including such elements as


a table of contents, a diagram of the model’s logic flow and clickable hyperlinks.

Use frozen panes to help orient the user and keep key labelling in view.

MAKE INPUTS EASY TO FIND

Users should be able to find and manipulate inputs in the model with minimal effort. The
model should also prevent incompatible assumptions from being entered inadvertently
where inputs are related to one another. For example, if an allocation table should sum
to 100%, the final number in the allocation should be computed from the sum of other
allocations. While many of the following recommendations suggest segregated input
worksheets or sections, these are not necessarily composed exclusively of inputs – a
common example is a dashboard worksheet, which may both contain inputs and present
results.

Place each item in the section where it intuitively belongs.


For example, group together all inputs relating to a loan.

Distinguish input cells from other cell types using a defined cell fill colour and/
or a cell border, not just a defined font colour.

Put all inputs on designated input worksheets.

Create labelled sections for inputs.

Don’t identify input cells solely by text-based tag or label.

5
FINANCIAL MODELLING CODE

User interface and transparency

A model is not a static object, but one which the end user will interact with and manipulate.
Creating a model that is easy to use and understand is not simple, but can be done with
appropriate care and attention.

INCLUDE USER GUIDANCE PRINCIPLE #7

Although models should be built to require minimal external explanation, appropriate Include an ‘About’ or
guidance to help facilitate understanding and proper use should be included. This should ‘Welcome’ worksheet
also include any key assumptions made in calculations (eg, ‘all cash flows occur at the end of to document the
the appropriate period’). spreadsheet.

Include in the model a worksheet dedicated to being a user guide.

Embed a separate user guide document in the workbook.

Add contextual user guidance throughout the model where appropriate.

Don’t store documentation in a separate file or email that may become separated
from the model itself.

AVOID DUPLICATION PRINCIPLE #15

Creating multiple input locations can lead to a user mistakenly not updating the input Perform a calculation
everywhere it is required. Likewise, if a calculation has been performed once already, then once and then refer back
referring to the original calculation cell instead of recalculating reduces complexity and the to that calculation.
possibility of error.

Create a unique location for each input value, and structure all calculations that
need the value to refer to that single input location, either directly or through an
appropriate sequence of references.

6
FINANCIAL MODELLING CODE

IDENTIFY AND SEPARATE FORECAST OR DUMMY DATA

Models are frequently built to operate on a ‘rolling basis’, with forecast or budget numbers
steadily replaced by actuals. If this is done haphazardly, forecast numbers can easily be left in
place by accident. Similarly, models are sometimes built with made-up dummy data to help
test calculations before the actual data is available. Accidentally leaving fictitious data in the
final model can cause serious errors.

Create separate entry areas for forecast and actual numbers, with formulas that
select which data is currently in use.

Identify dummy data clearly with formatting or labelling.

Don’t overwrite forecast data with actuals on a rolling basis.

DON’T HIDE THINGS

All aspects of a model should be visible and easily accessible. Hidden rows are easily missed,
can be confusing and are easy to change or delete inadvertently. An exception to this rule is
the hiding of empty columns to the right and below the used range, which can be done to aid
workbook navigation.

Group and collapse rows and columns that the user may wish to exclude to
aid readability.

Don’t hide intermediate calculations or areas of technical or supporting detail.

Don’t hide items using white text colour or a non-displaying text format.

Don’t use hidden worksheets.

7
FINANCIAL MODELLING CODE

Consistency

Financial models are frequently complicated. Ensuring consistency can reduce complexity
by tying sections of the model together into chunks, which makes the end user experience
smoother. Components that perform similar tasks should be as similar as possible. This
applies at all levels, including but not limited to formula selection, sets of calculations, and
input and output sections.

USE CONSISTENT FORMULAS PRINCIPLE #12

Be consistent in the
Definition Cell anchoring use of formulas.
Creating formulas with references that do not move when copied and pasted to other cells.
Accomplished with $ markers and/or named ranges in most spreadsheet packages.

Keeping adjacent formulas identical makes it easier to review a model, and reduces the
chance that an error will occur through copy-pasting over an inconsistent formula. This
simplifies the review process as each block of formulas only needs to be inspected once.

Make formulas strictly consistent across formula blocks, so the formula can be
copied and pasted across the block.

Use cell anchoring to create any variations that may be required.

Wherever possible, keep formulas consistent across any secondary dimensions,


such as groups of products and timelines.
Very occasionally the first cell in a timeline may be different, but only where strict
consistency would reduce clarity, and when clearly marked.

Make any inconsistent formulas, if used for a good reason, immediately apparent
to anyone looking at the area (eg, by using prominent formatting or notes).

8
FINANCIAL MODELLING CODE

USE CONSISTENT PLACEMENT PRINCIPLE #11

If multiple timelines exist in a model it must be clear which timeline relates to each value Be consistent in structure.
in a model. A single column should only contain values relating to a given time period
and be used consistently to represent that time period across any relevant worksheets sharing
that timeline.

Include only one timeline on each worksheet.

Display the primary timeline in a frozen pane, and place any secondary or tertiary
timelines near each of the values to which they relate so they can be viewed
together without scrolling.

Present any distinction clearly when multiple timelines are included in one axis
(eg, a change of periodicity from monthly periods to semi-annual periods), and
keep formulas consistent along that axis.

Ensure that secondary dimensions in core model sections appear in a consistent


order and level of detail.
For example, if the model individually considers a number of business units,
order them consistently and fix their definitions.

Don’t create timelines at different levels of detail on each worksheet, or ones that
do not line up across worksheets.

Don’t use ‘variegated’ timelines in the calculation worksheets, where the timeline
series calculations are interrupted by periodic subtotals.

9
FINANCIAL MODELLING CODE

Clarity

Financial models must communicate complex financial information to its user. Prioritising
clarity can help avoid confusion and keep the model as unambiguous as possible.

USE CLEAR FORMATTING

Formatting should be clear and consistent. It should be easy to understand the purpose of
each value in a model. Appropriate number formats help the user separate different kinds of
data from one another.
Similarly, rounding values in the model for presentation keeps the data neat and easy to read.
The most common mistake in this area is to show too many decimal places, which can both
distract users from more important information and overstate the level of precision achieved.
It is sometimes reasonable to compromise on formatting for technical reasons. For instance,
significant amounts of conditional formatting can cause performance issues, and so should
generally be used sparingly.
Formatting for formatting’s sake is unnecessary and formats do not automatically
communicate their meanings to the user. When formatting carries a meaning that a user must
understand to use the model safely, this meaning must be explained clearly in an obvious
location within the model.

Use Excel Styles to apply consistent formatting.

Use meaningful number formats.


For example, values that represent dates should appear visually as dates, and
percentages as percentages.

Ensure that the number of significant figures displayed is appropriate to the


calculation being performed.

Use conditional formatting to highlight anomalies and values of interest.

Apply conditional formatting in modest quantities and use simple conditional


formatting rules.
For example, when a worksheet is used as a data storage table, it may be
sensible to minimise formatting within the table to reduce the file size

Include a formatting key in the model to explain the meaning of styles and/
or formats.

Don’t add formats ad hoc as the model is worked on.

Don’t leave all cells in the Excel default format.

10
FINANCIAL MODELLING CODE

USE CLEAR AND MEANINGFUL LABELS

Labels are essential to ensure the end user’s understanding of what is presented, and should
be applied to all data, calculations and outputs.

Ensure that all data, calculations and outputs are labelled visibly, with the labels
placed nearby.

Label each row to the left in a frozen pane that remains visible as the user scrolls
around the workbook.

Use a ‘tree’ to structure multiple label layers, with subsequent columns used for
each layer.

Maintain a balance between label length and precision.

USE CLEAR UNITS

For every value in a model, it should be clear what units of measurement are employed so
the user can easily comprehend the information presented. This includes but is not limited to
currency (including whether in real or nominal terms), factors (tens, hundreds, thousands and
millions), percentage rates (including whether they are annual or matching model periods),
and other units such as tonnes, litres, etc.
Units should be precise enough to mitigate the risk of mixing scales, such as inadvertently
multiplying a price per tonne by a value measured in thousands of tonnes.

Label each value or set of values with the unit that applies to them.
For example, include units for each item in suitable places as determined by
context, such as part of the data label or in a dedicated units range.

Use a specified base unit, and label all values that use alternative units.

11
FINANCIAL MODELLING CODE

USE A CLEAR SIGN CONVENTION

The meaning of a positive or negative value sign for each value in a model must be made clear.

Specify and use a simple and comprehensive sign convention, and label any
inconsistencies.
For example, a model can identify assets, revenues and cash inflows as positive,
and liabilities, expenses and cash outflows as negative; or it could apply a
‘normally positive’ rule, where all inputs are positive by default.

Use the same conventions throughout the model, even in different parts.

Label each row with its convention next to the values.

Don’t use pure accounting convention (ie, positive for debits and negative
for credits).

USE EASILY UNDERSTANDABLE WORKSHEET NAMES

Many models extend over a large number of worksheets. Using simple and understandable
worksheet names will help users navigate between worksheets and understand formulas that
contain cross-sheet references.

Use clear and concise names for each worksheet, as opposed to non-descriptive
names like Sheet1, Sheet2, etc.

Use abbreviated names for each worksheet with a clear explanation in an obvious
location within the model.

Colour-code or label worksheets according to their functional purpose in the


model, or business unit.
For example, include yellow fill and/or an I_ prefix for input worksheets.

Don’t use mathematical operators in worksheet names, as these can cause issues
with formula comprehension.

12
FINANCIAL MODELLING CODE

USE CLEAR RANGE NAMES WHERE APPROPRIATE

Range names can be useful to define areas of data for use in calculations; however, some
model developers look to minimise the use of range names in formulas. Either approach
can be effective; however, if range names are used they should be meaningful and easy
to differentiate.

Use range names with care, and make them clear and meaningful.
For example, call a senior debt interest rate input cell SnrIntRate1, not SNR1.

Use defined names for Visual Basic for Applications (VBA) cell and range
references to avoid damaging the integrity of the code when adding or removing
cells later on.

Use consistent range names for related items.

DOCUMENT VBA CODE CLEARLY

Elsewhere in this document, we advocate using VBA and similar program code sparingly. VBA
code, when used, requires a higher level of technical knowledge to follow and understand
than general spreadsheet content. It is easy for coding to become a black box, leaving users
unable to verify or modify how the code works. Hence, it is important for all VBA code to be
well documented, and such documentation kept up-to-date.

Name VBA elements such as cell ranges, variables and functions clearly and
meaningfully to aid a reviewer’s comprehension.
For example, use ‘LoanRepayPeriod’ instead of ‘LRP’ or ‘Var1’.

Place a description of each procedure in a consistent location near the top of


each procedure.

Use in-line comments to explain and label the code directly alongside the
code itself.

Don’t use user-defined functions within the cells of the workbook.

13
FINANCIAL MODELLING CODE

Error reduction

Errors are clearly undesirable in any financial model. Yet, mistakes are natural and
unavoidable. In this section we look at key ways to prevent errors or reduce their likelihood,
and to detect them when they occur.

REVIEW AND TEST YOUR MODELS PRINCIPLE #18

Models are often large and complex. Even an expert builder can make errors of logic, typos Rigorously test the
and so on. Hence, it is important that a model be subjected to an appropriate level of testing workbook.
and review.

Consider carefully the possibility and impact of model errors and design, and
implement a review and testing regime consistent with the risk presented.

Create expectations as to how a model’s results should vary with changes in


inputs, apply these input changes to the model and compare the outputs with
the expectations.

Operate a system of peer review (eg, by a colleague or even a professional audit)


if the model’s impact is particularly significant.

INCLUDE CHECKS PRINCIPLE #19

Build in checks, controls


Definition Check and alerts from the outset
A visible indicator that an input or output falls outside of expected parameters or does not and during the course of
produce the expected result. spreadsheet design.

Checks are intended to make it clear and obvious to the user when there is a failure in the
tested logic. Models can also include other checks that indicate business issues with the
model’s outputs – such as breach of covenants or making losses – but which aren’t indicative
of an error in the model’s function. Sometimes called alerts, these kinds of checks are also
beneficial and the approaches below can be applied equally to them.

Consider checks in the construction of every section of a model.

Include an equality check for each set of values that are calculated separately but
ought to be equal, such as a balance worksheet check or an alert that a required
input has been left blank.

Include a tolerance in checks to allow for very small acceptable variations, such as
Excel rounding errors.

Apply conditional formatting to checks in order to catch the user’s attention.

14
FINANCIAL MODELLING CODE

INCLUDE A MASTER CHECK

A master check tests whether any checks in the model are in breach and alerts the user if
any are.

Build a dedicated check summary section (this may be a standalone worksheet or


a section within a worksheet).

Display the result of the master check in the frozen pane on all worksheets so that
it is clearly visible in all areas of the model.

CONSIDER INCLUDING RESTRICTIONS PRINCIPLE #20

Protect parts of the


Definition Restriction workbook that are not
A mechanism that controls the entry of inputs to prevent invalid or inconsistent data from supposed to be changed
being entered. by users.

Allowing inputs to be varied without limit might increase model flexibility, but it also increases
the potential for incorrect, internally inconsistent or unreasonable inputs to be chosen by
accident or through a misunderstanding. Placing controls on possible inputs can help a user
use the model appropriately.

Use data validation to reduce the chance of invalid data being entered, either as a
control or with dropdown menus.

Create additional checks and alert messages that warn the user if inappropriate
data has been entered.

Include contextual guidance that instructs the user about appropriate input data
alongside the location of the input.

Protect sensitive worksheets or ranges with a password.

Don’t use data validation excessively as this makes the model harder to use.

Don’t use data validation with a generic error message and no guidance as to
what data is permitted.

15
FINANCIAL MODELLING CODE

Calculation techniques

Financial models necessarily include many formulas and other calculations. Those calculations
should, like the model itself, be error-resistant and comprehensible. This section outlines the
key principles to keep in mind when building calculations.

MINIMISE CALCULATION COMPLEXITY PRINCIPLE #13

Models are often large files and can be slow to calculate. Similarly, cells with dense Keep formulas short
computations are difficult to review and more likely to contain errors. Where possible, and simple.
formulas should be built to optimise file size and calculation speed, and should be simple
to read, comprehend and review.
Complexity should be minimised appropriately to the circumstances. While hard rules are
sometimes used by modellers, (eg, ‘no more than five operands in any cell’, ‘no line breaks’ or
‘no formulas longer than your thumb’), some computations are easier to follow when these
rules are broken.

Break complex calculations into multiple stages.

Split multi-stage calculations across multiple rows.

Carry out timing and logic calculations separately from the data that they relate to,
usually using the following ‘flags’: ‘1’ / ‘0’ or ‘TRUE’/’FALSE’.

Carry out calculations that scale a value (eg, scaling a monthly figure to match a
quarterly timeline) separately from the calculation of the base value.

Don’t leave calculations set to manual as users may not realise that outputs are
not live.

BUILD TRACEABLE REFERENCES


References should be included in a way that helps users understand formula logic. Reviewing
a formula is considerably easier when the inputs to the formula can be inspected without
moving away from the formula cell itself. It is generally preferable for each occurrence to refer
directly to the ultimate precedent.

Reference nearby cells (ie, cells close to those containing the formulas) so that it
is possible to see the formula, the result and the referenced cells on one screen at
the same time.

Use single-step references that create local references (‘call ups’ or ‘imports’)
within a given worksheet for other formulas that perform calculations on that
worksheet.
This makes references in the calculating formulas easier to read, and makes it
unnecessary to provide worksheet qualifiers (such as ‘Sheet1’).

16
FINANCIAL MODELLING CODE

Don’t create unnecessary chains of references, such as those that flow through
multiple locations without any calculations performed.

Don’t include cross-sheet references within calculations.

Don’t use array formulas.

AVOID HARDCODING PRINCIPLE #14

Never embed in a
Definition Hardcoding formula anything that
Fixed values embedded into a formula, such as a tax rate entered as 20% within a formula. might change or need to
be changed.
The use of hardcoding in formulas depends on context and requires judgement. It can be
acceptable in low-risk cases such as the number of months in a year or hours in a day (eg,
using a hardcoded 24 to convert between hours and days). However, hardcoding should
never be used for values that could foreseeably change during the life of the model (eg, using
24 to increment a staff count). It should also be avoided for values whose meaning would not
be completely clear to the most basic user of the model without a label. For example, while
the conversion factor between feet and metres will always be 3.28084, if this value is not
separated and labelled, its purpose would not be immediately obvious to a model user.

Include as inputs all values that could possibly change in the lifetime of the
model.

Include a worksheet containing defined values for unalterable constants whose


meaning would not be immediately obvious in a formula, such as scaling
between units.

Don’t include the fixed values used in formulas as inputs.


For example, using separate, defined inputs for the values 1 and 0 can make
models less transparent in formulas where their use and meaning would
otherwise be obvious (eg, as indicators of TRUE and FALSE in an IF test).

Don’t hardcode constants into formulas.

17
FINANCIAL MODELLING CODE

AVOID CIRCULAR REFERENCES

Definition Circular references


A formula that uses its own result as an input.

Unintentional circular references are usually a sign of an incorrectly made formula, and
spreadsheet packages will warn the user if one is made. Making use of intentional circularity
turns off these warnings, and can lead to errors going unnoticed. Circular calculations are also
opaque to review and often unnecessary.

Disable the ‘Enable iterative calculations’ setting.

Resolve circularities with logic (eg, algebraically).

Make simplifying assumptions to avoid circular logic.

Manage any cases requiring self-reference with Goal Seek or a copy-paste macro,
and include clear signposting that current values may not be live, such as with a
check or alert message.

AVOID UNNECESSARY ROUNDING


Excessive rounding during calculations can compromise accuracy unnecessarily. For most
calculated amounts, rounding is often unnecessary or misleading.

Leave figures in calculations unrounded, and only round final outputs,


documenting where rounding has taken place.

Round numbers only through presentation.


For example, choose a format that shows only two decimal places.

Don’t make ‘balancing’ calculations to ensure that lists of unrounded figures reach
a desired target.

Don’t use the ‘Precision as displayed’ setting to round figures automatically to


match their formatted presentation.

18
FINANCIAL MODELLING CODE

USE VBA AND MACROS SPARINGLY


VBA and equivalent programming code in packages other than Excel are powerful but largely
opaque tools. VBA should be seen as a weapon of last resort in designing a financial model.
It may be sensible to use VBA within the logic flow in exceptional circumstances, such as when
a calculation cannot be done otherwise, a significant time reduction can be achieved or using
VBA makes the logic clearer. VBA may also reasonably be used to automate specific repetitive
model tasks such as printing all worksheets of a large workbook, or testing different scenarios
through a formula-driven model.

Use native Excel functionality, not VBA, to perform all calculations that
affect results.

19
ICAEW THOUGHT
FINANCIAL LEADERSHIP
MODELLING CODE

ICAEW is required by its Royal Charter to advance the theory and


practice of accountancy in all its aspects and we do this through
papers published in our ICAEW Thought Leadership series.
Some papers are more practical in nature and aimed at helping
members do their work, others consider how law and standards
might develop for the future professional.

Twenty principles for good


spreadsheet practice
SHARING BEST PRACTICE
A high-level set of guidelines for spreadsheet users of all
levels. Developed with input from many top experts, the Twenty
Principles are well tested as the essential tenets for reducing
spreadsheet risk.
icaew.com/excel20principles

Spreadsheet competency framework


STANDARDISING EXCEL SKILLS
‘Proficient in Microsoft Excel’ - what does it mean?
Our simple system of four levels defines a common
standard for classifying spreadsheet users and their skills,
minimising risk and optimising efficiency.
icaew.com/spreadsheetcompetency

Financial modelling code


GET MODELLING RIGHT
A new, high-level guide to best practice in the field of financial
modelling, built from seven modelling methodologies and
with input from more than twenty modelling organisations.
icaew.com/financialmodelling

icaew.com/thoughtleadership
20
FINANCIAL MODELLING CODE

Twenty principles for good


spreadsheet practice

The guidance in this document is based on ICAEW’s Twenty principles for good spreadsheet
practice (see below). The Principles are a high-level set of guidance for achieving good practice
in any spreadsheet environment.

Determine what role spreadsheets play in your business, and plan your
PRINCIPLE #1
spreadsheet standards and processes accordingly.

PRINCIPLE #2 Adopt a standard for your organisation and stick to it.

Ensure that everyone involved in the creation or use of spreadsheets has


PRINCIPLE #3
an appropriate level of knowledge and competence.

PRINCIPLE #4 Work collaboratively, share ownership, peer review.

Before starting, satisfy yourself that a spreadsheet is the appropriate tool


PRINCIPLE #5
for the job.

Identify the audience. If a spreadsheet is intended to be understood and


PRINCIPLE #6
used by others, the design should facilitate this.

PRINCIPLE #7 Include an ‘About’ or ‘Welcome’ worksheet to document the spreadsheet.

PRINCIPLE #8 Design for longevity.

PRINCIPLE #9 Focus on the required outputs.

PRINCIPLE #10 Separate and clearly identify inputs, workings and outputs.

PRINCIPLE #11 Be consistent in structure.

PRINCIPLE #12 Be consistent in the use of formulas.

PRINCIPLE #13 Keep formulas short and simple.

PRINCIPLE #14 Never embed in a formula anything that might change or need to be changed.

PRINCIPLE #15 Perform a calculation once and then refer back to that calculation.

Avoid using advanced features where simpler features could achieve the
PRINCIPLE #16
same result.

Have a system of backup and version control, which should be applied


PRINCIPLE #17
consistently within an organisation.

PRINCIPLE #18 Rigorously test the workbook.

Build in checks, controls and alerts from the outset and during the course
PRINCIPLE #19
of spreadsheet design.

PRINCIPLE #20 Protect parts of the workbook that are not supposed to be changed by users.

Refer to icaew.com/excel20principles for more details.


21
Excel is one of the most popular end-
user tools in the accountant’s portfolio.
Spreadsheets enable us to quickly and flexibly
perform analysis that otherwise would be
difficult or time-consuming; however, there
is a tendency to place undue trust in them.
ICAEW’s Excel Community provides a ‘one-
stop shop’ for accountants who want to use
Excel better and understand and minimise
spreadsheet risk.

For more information about the Excel


Community, please visit icaew.com/excel

For more information about the IT Faculty,


please visit icaew.com/itfac

There are over 1.7m chartered accountants


and students around the world − talented,
ethical and committed professionals who use
their expertise to ensure we have a successful
and sustainable future.

Over 150,000 of these are ICAEW Chartered


Accountants. We train, develop and support
each one of them so that they have the
knowledge and values to help build local
and global economies that are sustainable,
accountable and fair.

We’ve been at the heart of the accountancy


profession since we were founded in 1880
to ensure trust in business. We share our
knowledge and insight with governments,
regulators and business leaders worldwide as
we believe accountancy is a force for positive
economic change across the world.

www.charteredaccountantsworldwide.com
www.globalaccountingalliance.com

ICAEW
Chartered Accountants’ Hall
Moorgate Place
London
EC2R 6EA
UK

T +44 (0)20 7920 8100


E [email protected]
icaew.com/itfac

facebook.com/icaew
twitter.com/icaew_excel

© ICAEW 2018 TECPLN16331 10/18

You might also like