Upload
muriel-obrien
View
216
Download
1
Embed Size (px)
Citation preview
SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING?
David ColverEusprig 2004
2
BALANCE SHEET LENDING
BALANCE SHEET £m
Buildings 1000 Other 500 Bank debt (800)Other (100)
Shareholders’ funds 600
Corporation
Bank
Project
Adequate guide as to whether to lend
3
CASH FLOW LENDING
BALANCE SHEET £m
Buildings 0 Other 0 Bank debt 0 Other 0
Shareholders’ funds 0
Investors
SPC
Bank
Useless guide as to whether to lend
4
GROWTH
Modelling
Training
Audit
PFI Advisory
1980 1990 2000
Oil and gasMining
UtilitiesProperty
PFIPPP
5
DESIGN OUTPUT FIRST
HOW
Mock up schedules to be generated by the model
Page setup; titles; spacing
Headings, but no numbers
WHY
Can share with colleagues / manager right away
Acts as informal specification
Visible evidence of progress
Can print model neatly at any (unexpected) point in its development
Output: etc
Output: Cash flow
Output: P&L
Outputs: BS
6
BUT...
SCIENTISTSRESEARCHE
RS
No idea of answer
until they find it
SAFETYCRITICAL
Need formal specification and test plan
PROJECT FINANCE
Standard financial
statements
Each model looks quite like its predecessor
NOT ENOUGHTOO MUCH
7
LONG FORMULA
=IF(OR(COLUMN()=Input!$B$272+1, COLUMN()=Input!$B$272+2), 0, IF(Input!$B$23>0, -MAX(0, MIN(-OFFSET($A$497:$BR$497, 0, COLUMN()-2, 1, 1)-OFFSET($A$497:$BR$497, 0, COLUMN()-1, 1, 1), MAX(SUM(OFFSET($A$497:$BR$497, 0, COLUMN()-3, 1, 1):OFFSET($A$497:$BR$497, 0, COLUMN()-4, 1, 1)), (Input!$B$23 >=2)*SUM(OFFSET($A$497:$BR$497, 0, COLUMN()-3, 1, 1):OFFSET($A$497:$BR$497, 0, COLUMN()-6, 1, 1)), (Input!$B$23 >=3)*SUM(OFFSET(($A$497:$BR$497, 0, COLUMN()-3, 1, 1):OFFSET(($A$497:$BR$497, 0, COLUMN()-7, 1, 1))))), 0))
Complexity score: 60
8
Output: etc
Output: Cash flow
SEPARATE WORKINGSREASONING
Long formulae are bad
We must break them up
But, intermediate results will clutter up output
Conclusion: Separate the intermediate results from the output
RESULT
BYPRODUCT
Related items next to each other
Workings
Output: P&L
Outputs: BS
9
SCENARIO MANAGEMENT
ONE WORKBOOK PER SCENARIO
Base case
Low case
High case
Disaster case
10
SCENARIO MANAGEMENT
ONE WORKBOOK PER SCENARIO
Output: etc
Output: Cash flow
Workings
Output: P&L
Outputs: BS
MULTIPLE INPUT SHEETS
Base caseBase case
Low case
High case
Disaster case
11
Output: etc
Output: Cash flow
CONTRASTPREFERRED ALTERNATIVE
Inputs
Workings
Output: P&L
Outputs: BS
P&L
Financing
Tax
Cash flow
BS Assets
Revenue
Costs
12
UPDATING: ONE STEP
Historic Projected
2000 2001 2002 2003 2004 2005
Sales 98.4 101.2 103.0 110.0 121.0 132.0COGS (54.0) (60.0) (62.0) (70.0) (75.0) (80.0)Admin costs (10.1) (11.2) (12.5) (13.0) (14.0) (15.0)PBT 34.3 30.0 28.5 27.0 32.0 37.0Tax (13.7) (12.0) (11.4) (10.8) (12.8) (14.8)PAT 20.6 18.0 17.1 16.2 19.2 22.2
Historic Projected
2000 2001 2002 2003 2004 2005
Sales 98.4 101.2 103.0 110.0 121.0 132.0COGS (54.0) (60.0) (62.0) (70.0) (75.0) (80.0)Admin costs (10.1) (11.2) (12.5) (13.0) (14.0) (15.0)PBT 34.3 30.0 28.5 27.0 32.0 37.0Tax (13.7) (12.0) (11.4) (10.8) (12.8) (14.8)PAT 20.6 18.0 17.1 16.2 19.2 22.2
13
Historic Projected
2000 2001 2002 2003 2004 2005
Sales 98.4 101.2 103.0 110.0 121.0 132.0COGS (54.0) (60.0) (62.0) (70.0) (75.0) (80.0)Admin costs (10.1) (11.2) (12.5) (13.0) (14.0) (15.0)PBT 34.3 30.0 28.5 27.0 32.0 37.0Tax (13.7) (12.0) (11.4) (10.8) (12.8) (14.8)PAT 20.6 18.0 17.1 16.2 19.2 22.2
Historic Projected
2000 2001 2002 2003 2004 2005
Sales 98.4 101.2 103.0 110.0 121.0 132.0COGS (54.0) (60.0) (62.0) (70.0) (75.0) (80.0)Admin costs (10.1) (11.2) (12.5) (13.0) (14.0) (15.0)PBT 34.3 30.0 28.5 27.0 32.0 37.0Tax (13.7) (12.0) (11.4) (10.8) (12.8) (14.8)PAT 20.6 18.0 17.1 16.2 19.2 22.2
Historic Projected
2000 2001 2002 2003 2004 2005
Sales 98.4 101.2 103.0 110.0 121.0 132.0COGS (54.0) (60.0) (62.0) (70.0) (75.0) (80.0)Admin costs (10.1) (11.2) (12.5) (13.0) (14.0) (15.0)PBT 34.3 30.0 28.5 27.0 32.0 37.0Tax (13.7) (12.0) (11.4) (10.8) (12.8) (14.8)PAT 20.6 18.0 17.1 16.2 19.2 22.2
UPDATING: TWO STEP
14
WHAT’S MOVING?PROJECT FINANCE M&A
FORMULAE Double entrybookkeeping
Essence of the deal
• A takes over B
• A and B merge
• B does reverse takeover on A
• Newco buys A and B
DATA Lots of scenarios From (annual) accounts
MODEL LIFE Long Short
CONCLUSION Logic staticData moving
Logic movingData static
15
AUDIT TESTS
Output: etc
Output: Cash flow
Inputs
Workings
Output: P&L
Outputs: BS
PROBLEM
Separating the workings from the outputs
• wages war on long formulae
• BUT, risks misreporting calculations.
SOLUTION
• tests anything we can think of: bs balances, subtotals add up
• typically 20-25% audit overhead.
Audit
16
WHO COULD OBJECT?PROFESSIONAL AUDITORS
Extra 25% of formulae that contribute nothing to the outputs
On more than half of occasions, professional auditors ask us
• either, to remove the audit sheet from the model
• or exclude it from theirscope of work.
US
When they do check the audit tests, outside auditors sometimes find slips in the tests.
=> Misplaced confidence.
17
NAMESOTHER
Solution to problem should not be expressed in terms of its layout.
Possible to reuse bits of models
DAILY
Standard naming convention allows consultants to pick up each others’ work
Search for relevant lines is through psychologically ordered name space, not through physically ordered cell space.
Formulae more readable, especially those that link to other sheets.
Automatic column matching eliminates a whole class of error
18
WHO SAID...?
The quantity I introduced in equation 13
=
the quantity I introduced on page 2, paragraph 2
x
(what Maxwell was talking about on page 4 paragraph
12 of his treatise on Electricity and Magnetism of
1873)2
19
NAMES UNPOPULARMany organisations use Operis method, less Names.
Some clients explicitly reject names:=> Latest Operis Analysis Kit has Names Deapply command.REASONS 1: IGNORANCE
To use Names well, whole team needs to be taught Names well:
• create, apply
• alter, check, delete
• row/column matching
• global/local
REASONS 2: INVESTMENT
It takes a moment to define aname...
• valuable investment in enduring models
• not worth investment in small, transient ones
…and to check it
20
UNITSSOLUTION
(Best would be for ss cells to have notion of units.)
Compromise:
• Get into base units asap
• Use formatting to remove excess digits
• Styles are useful here.
PROBLEM
Combining quantities which have incompatible units is a common source of error.
• E and £ and $
• Thousands and millions
• Km and miles
21
WYSINWG
WHAT HAPPENS WHEN YOU TYPE?
You see 1.2 but you want to have 1.4.
You have to type 1400000
We know that the underlying number is in units; the appearance in millions is only formatting.
But does the ss user?
WHAT HAPPENSWHEN YOU COPY?
A cell contains 1200000, but is formatted to show 1.2 (ie millions).
When copied to
• Word, it comes across as 1.2
• Access, it comes across as 1200000
22
SPACES
At the last Eusprig meeting, we were urged:
Make formulae readable by putting spaces in them.
= Sheet!A5 * (B5 + B6)
How could anyone object to that?
23
OPERATORSLESS OBVIOUS
Range operators:
Between :
Union ,
Intersection _
OBVIOUS
+
-
*
/
INTERMEDIATE
%
^
&
Do you add spurious operators to your formulae?
24
SUMMARYDesign outputfirst
Serves as spec; allowsmodel to be printed forcolleagues and clients
Better than no spec at all, butsometimes less is needed,sometimes more
Separateworkings fromoutputs
Wage war on longformulae
Hard to for naive user tochange assumptions; veryhard to update with historics
Test copiously Can’t be too careful Pains auditors; overconfidence
Separate inputsfrom workings
Allows scenariomanagement
Counterproductive when it isthe logic that is moving
Use namesaccording to aconvention
Easier for colleagues toread, understand andreuse; easier for you too
Demands up front investmentthat is not always paid back
Choose baseunits and stick tothem
Remove conversion factorsfrom the heart of themodel
Who does this help, theprogrammer or the user?
Put spaces informulae
Make them readable Spaces are notwhite space in Excel
25
SIZE DRIVES STRUCTURE
Low
Low High
High
Model complexity
Developmentcost
A
B
26
GOOD PRACTICEIs there any at all that is not domain-specific? Maybe:
1 Keep it simple: Avoid overmodelling, or modelling beyond the resolution of your data
2 Have an idea of how you will know the finished article when you see it
3 Avoid long formulae
4 Where you can, double (or triple..) check results by calculating them different ways.
5 Don't use the OFFSET or INDIRECT functions
6 Do not introduce circular logic into a spreadsheet (Unless you can explain in sophisticated mathematical terms the function that describes how the results of the spreadsheet are linked to its inputs.)
27
ANYTHING NEW?
Eusprig 2002