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

Post on 26-Dec-2015

216 views 1 download

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

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