27
SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

Embed Size (px)

Citation preview

Page 1: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING?

David ColverEusprig 2004

Page 2: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 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

Page 3: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 4: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

4

GROWTH

Modelling

Training

Audit

PFI Advisory

1980 1990 2000

Oil and gasMining

UtilitiesProperty

PFIPPP

Page 5: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 6: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 7: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 8: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 9: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

9

SCENARIO MANAGEMENT

ONE WORKBOOK PER SCENARIO

Base case

Low case

High case

Disaster case

Page 10: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 11: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 12: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 13: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 14: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 15: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 16: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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.

Page 17: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 18: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 19: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 20: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 21: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 22: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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?

Page 23: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

23

OPERATORSLESS OBVIOUS

Range operators:

Between :

Union ,

Intersection _

OBVIOUS

+

-

*

/

INTERMEDIATE

%

^

&

Do you add spurious operators to your formulae?

Page 24: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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

Page 25: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

25

SIZE DRIVES STRUCTURE

Low

Low High

High

Model complexity

Developmentcost

A

B

Page 26: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

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.)

Page 27: SPREADSHEET GOOD PRACTICE: IS THERE ANY SUCH THING? David Colver Eusprig 2004

27

ANYTHING NEW?

Eusprig 2002