Sie sind auf Seite 1von 14

An Introduction to Business Financial Modeling

Created by Giff Constable for training at Neo Innovation, Inc.

AGENDA
Part 1
Excel Basics
Modeling best practices
Basics
Useful functions
Mac keyboard shortcuts

Part 2
Modeling Exercise: Uber
Research the business and its stats
Design your model and determine key drivers
Implement and share

STRENGTHS OF FINANCIAL MODELING (AND CAUTIONS)


Why do we create financial models?
better understand your assumptions and goals
gain insight into your business' pressure points and failure points
better understand your scaling cost structures
examine the realism of milestones and cash needs
helps you prioritize key metrics, and gives you targets to work against
gets the team on the same page regarding operating goals
sets hopes / expectations for your investors and team
CYA: creates a document everyone can sign off on, reducing revisionist memories later
Cautions
no plan survives the market. A model should be created, but not taken literally
a model is best done as a living document, because no plan survives the market
too complex is as dangerous as too simple; a complex model does not mean a more accurate one
garbage in = garbage out, i.e. if your assumptions are wrong, the most elegant model in the world will fail
if something seems too rosy, ask yourself hard questions
Cross-check your assumptions and data inputs (for example: check your customer growth against the total market size)

Copyright Giff Constable 2015

300053738.xlsx

1 of 14

Copyright Giff Constable 2015

Modeling Best Practices


BEFORE YOU BEGIN
STRUCTURING YOUR MODEL
COLOR CODING
NAMED RANGES

BEFORE YOU BEGIN


Before you dive into a complex model, sketch out the basic unit economics of your business
List out the core drivers of your business:
How are you acquiring customers and what are the associated costs?
Do you have some sort of viral or word of mouth engine?
What is the primary way you are making your revenue?
What are the costs associated with the business: people, ops and infrastructure, services, marketing, customer support, etc.
Is there any cyclicality to the business that you should take into account?
Are there trigger points where something will change dramatically?
Research and gather data to inform your assumptions
Useful sources for research:
Your investors/advisors who have seen similar businesses
Articles on the Internet where a company might have shared some metrics
Public company documents (S1, 10K)
Your peers
Talks given at industry conferences
Think through the audience and the purpose
Do you need one model that allows you to toggle scenarios, or do you need separate ones for internal vs external viewing?
Do you need to create a simplified summary for your audience or do they want to dive into the complexity?

STRUCTURING YOUR MODEL

Always start from scratch, even if you steal from other models, so that you can think through things from the ground up
Keep your model clean so that you and others can understand it
Group assumptions as much as possible
Implement your model vertically, not horizontally (i.e. make your viewer scroll vertically)
Add a summary tab with data/charts with the key results
Turn off grid lines
Color code
Use range names, and document them
Add a version notes tab for complex models
Give tabs a concise but understandable name
Repeat the tab title in cell A1
Be careful with comments, data, confidentiality for anything that might be shared outside the company

COLOR CODING

Formulas should be BLACK


Inputs should be BLUE
Links to other workbooks should be GREEN
Named range documentation should be RED and italics

NAMED RANGES

Use names for commonly referenced inputs


Use names for key input tables
Document your names next to the ranges
Named ranges can only be letters and underscore

Example
Salary Multiple

Customer Support
Sales - Junior

1.35 colorcoding_salarymultiple
Base Salary Fully Loaded
50,000
67,500
75,000
101,250

Example
Employee Type
Customer Support
Sales - Junior
Sales - Senior
Marketing Director

Base
Bonus
50,000
2,000
75,000
2,000
200,000
10,000
100,000
5,000
namedrange_employee table

Exercise
CREATE A NAME FOR THE HIGHLIGHTED AREA
Monthly Costs
Telephone
80
Internet
110
Utilities
220
Rent
750
<--- THEN DOCUMENT THE NAME HERE

300053738.xlsx

2 of 14

Copyright Giff Constable 2015

TIP! You can pull names into your formulas easily using F5 (Go To)

300053738.xlsx

3 of 14

Copyright Giff Constable 2015

Basics
CREATING A FORMULA
INSERTING / DELETING A ROW OR COLUMN
FILLING DOWN / ACROSS
FORMULA ANCHORING
PASTE SPECIAL
GOTO

CREATING A FORMULA

Examples

begin a formula with the = sign

ADD UP THE NUMBER OF PEARS


Apples
Jane
Dick
TOTAL

Pears
4
5
9

3
7

Answer 1
Answer 2

10
10

INSERTING / DELETING A ROW OR COLUMN


Insert a row: Ctrl + spacebar, then Ctrl + i
Insert a row: Shift + spacebar, then Ctrl + i
Delete a row: Ctrl + spacebar, then Ctrl + hyphen
Delete a row: Shift + spacebar, then Ctrl + hyphen

FILLING DOWN / ACROSS

Exercise

Fill down: Ctrl + D


Fill right: Ctrl + R
You can also copy a cell and paste it across a range

FILL ACROSS TO SHOW TOTAL COSTS FOR ALL 3 MONTHS


Cost Per Customer
8.00
April

May

June

Customers
Total Costs

10
80

Answer

80

72

15

120

Exercise
FILL DOWN TO MAKE LIST A IDENTICAL TO B
LIST A
LIST B
1
1
2
3
4

FORMULA ANCHORING

Exercise

$ symbols in your formulas allow you to easily fill in a range


if the $ is before the letter, you anchor on the column
if the $ is before the number you anchor on the column
Command-T is the keyboard shortcut to toggle anchors

FILL IN THE REVENUE LIST USING CTRL-R AND ANCHORING


Revenue per Customer
10.00
April
Customers
Total Revenue
Answer

May

June

10

100

90

15

150

PASTE SPECIAL

This is one of the most useful features in Excel


Paste Special allows you to control what you are pasting, whether formatting, values without formulas, or formulas without formatting
You can also use "transpose" to paste vertical data into a horizontal format
You can even run operations on the data as you paste
The keyboard shortcut is COMMAND + CONTROL + V

GO TO
Go To (F5) is incredibly useful. Here are three use cases:
Use it to jump to a named range without having to hunt/scroll around your model
Use it to look up and insert the name of a cell/range into your formulas, so you can type less (and don't have to remember exact spelling)
EXAMPLE
23

a_goto_example
<-- select the cell, type = to start a formula, and then hit F5. Choose "a_goto_example" from the list

Another great use case of Go To is to help color code your model


1.
2.
3.
4.

300053738.xlsx

HIT F5 AND CLICK SPECIAL


SELECT CONSTANTS AND UNCHECK EVERYTHING BUT "NUMBERS"
THIS WILL SELECT ALL HARD-CODED NUMBERS IN THE SHEET (NOT FORMULAS)
COLOR THE TEXT BLUE

4 of 14

Copyright Giff Constable 2015

300053738.xlsx

5 of 14

Copyright Giff Constable 2015

Key Functions
ROUND
IF
IF + ISERROR
VLOOKUP
HLOOKUP
COMBINING VLOOKUP & HLOOKUP
INDEX / MATCH
SUMPRODUCT
DATE AND TEXT FUNCTIONS

ROUND

allows you to round numbers to a specified number of decimals


ROUND() will round to nearest number
ROUNDUP() always rounds numbers up
ROUNDDOWN() always rounds numbers down
= ROUND ( number , number of digits )
ROUND THE NUMBERS TO 10
9.75
10.75
9.25

ANSWER
10
10
10

IF
IF statements are logical tests that allow you to compare two elements and return an answer depending on whether the test came out true or false.
You can compare numbers or text, whether pointing to a cell or a value written directly into the formula
= IF ( condition, result if true, result if false )
Target Margin

20%
Actuals
April
May
June
July

21%
19%
25%
18%

Above Target?
YES
NO
YES
<--- ENTER THE "IF" FORMULA TO SHOW WHETHER ACTUAL IS ABOVE OR BELOW TARGET

IF FUNCTIONS + ISERROR
Clean up error alerts in your model with ISERROR function
FIX REVENUE PER CUSTOMER ERROR
Revenue
100
Customers
0
Rev per Customer
#DIV/0! <---- this is ugly! let's get rid of it
Rev per Customer
Answer

VLOOKUP
Allows you to look up key data from a COLUMN of data
Vlookup works for vertical lookups, hlookup for horizontal
=VLOOKUP ( reference cell, target range, column number, FALSE )
1
Employee Type
Customer Support
Sales - Junior
Sales - Senior
Marketing Director

2
3
Base
Bonus
50,000
2,000
75,000
2,000
200,000
10,000
100,000
5,000
vlookup_employeetable

LOOK UP THE BASE SALARY


Base Salary
Sales - Senior
Answer

200,000

HLOOKUP
Allows you to look up key data from a ROW of data
=HLOOKUP ( reference cell, target range, row number, FALSE )
1
2 Sales

April

May
1,025

June
1,123

965

PULL THE RIGHT SALES FIGURE FOR THE MONTH


Month
April
Sales
<-- once you have the formula, try changing April to May
Answer

1,025

COMBINING VLOOKUP & HLOOKUP


Combine both to do more sophisticated lookups
Use hlookup to pull up the correct column, which means you need to add column numbers to your table

1
Sales
Cost of Sales
Operating Cost

April
2

May
3
1,025
410
600

June
4
1,123
435
597

965
395
610
vlookup_revtable

PULL THE RIGHT SALES FIGURE FOR THE MONTH


Month
May
Sales
Cost of Sales
Operating Cost
Answer
Sales
Cost of Sales
Operating Cost

1,123
435
597

INDEX / MATCH
Index and Match are two functions that together also give you lookup capabilities

300053738.xlsx

6 of 14

Copyright Giff Constable 2015

This is an alternative to VLOOKUP that doesn't require the lookup column to be the first column
= INDEX ( RANGE WHERE THE RESULT IS, ( MATCH ( LOOKUP-ITEM , LOOKUP-RANGE, 0 ) )
Color
Red
Green
Yellow

Weight per bag Cost / Pound


5
2
18
4
12
3

Fruit
Apples
Pears
Bananas

Pears

USE INDEX and MATCH TO LOOKUP THE COST/POUND OF THE KIND OF FRUIT
Bags to Buy
Cost / Pound
Total Cost
12
0
Answer
4

SUMPRODUCT
Sumproduct was designed to multiple items in a data and sum up the products
= SUMPRODUCT ( RANGE , RANGE )
CALCULATE THE TOTAL REVENUE
Customers
Revenue Per
25
30
15

5
10
6

Total Revenue
Answer

515

What makes it really powerful is turning it into a filtering add/count tool


For a multi-filtered count, you can do something like:
= SUMPRODUCT ( ( RANGE1 = CRITERIA1 ) * ( RANGE2 = CRITERIA2 ) * 1 )
For a multi-filtered sum, you can do something like:
= SUMPRODUCT ( ( RANGE1 = CRITERIA1 ) * ( RANGE2 = CRITERIA2 ) * RANGE3 )

SALES PIPELINE TABLE


Office
Value
Stage
SF
50,000 Proposal
SF
210,000 Scoping
NY
45,000 Negotiation
SG
105,000 Negotiation
NY
350,000 Scoping
SF
100,000 Proposal
NY
85,000 Proposal
SG
256,000 Scoping
SG
641,000 Negotiation
NY
402,000 Scoping
SF
389,000 Proposal
SG
35,000 Scoping
NY
90,000 Negotiation
sumproduct_office
sumproduct_stage
sumproduct_value

FILL IN THE BELOW TABLES USING SUMPRODUCT


TOTAL VALUE IN PIPELINE
Scoping
Proposal
Negotiation
NY
SF
SG

NY
SF
SG

ANSWER
Scoping
752,000
210,000
291,000

Proposal
Negotiation
85,000
135,000
539,000
0
0
746,000

COUNT OF DEALS IN PIPELINE


Scoping
Proposal
Negotiation
NY
SF
SG

NY
SF
SG

ANSWER
Scoping
2
1
2

Proposal
1
3
0

Negotiation
2
0
2

DATE & TEXT FUNCTIONS


There are many useful functions for manipulating dates, text, and formatting
This formula, which uses a number of date functions, makes it easy to do a list of months
=DATE(YEAR( reference cell ),MONTH( reference cell )+1,DAY( reference cell ))
Example:
Feb-14
Jan-14

Mar-14

Apr-14

= TEXT ( value, format_text ) lets you convert a value to text and format it
This is very useful when you want calculated data to be included in a comment
Rep
John Smith

Sales
1200

Month
Apr-15

Example:
In April, John Smith sold $1,200 copies

<-- look within the cell to see how the formula is constructed
formatting both a date and a number

OFFSET
OFFSET lets you reference a cell or range that is a number of rows and/or columns from a cell or range
It isn't often needed, but very powerful when needed (for example, doing a cohort model)
CUSTOMER CHURN
Months as Customer
1
2
3
4

Cohort % Lost
50%
20%
5%
3%
offset_churntable

April

May

New Customers
Churn Analysis
Month In
1
2
3
4
Lost Customers
Total Customers

100

April

June
150

May
0
0
0
0
0
100

July
160

June
50
0
0
0
50
200

185

July
75
20
0
0
95
265

80
30
5
0
115
335

EXPLANATION
The formula above is very complex, but we can break it into pieces to understand it
=ROUND(IF(ISNUMBER(OFFSET(D$219,0,-$C223)*VLOOKUP($C223,offset_churntable,2,FALSE)),OFFSET(D$219,0,-$C223)*VLOOKUP($C223,offset_churntable,2,FALSE),0),0)
The core is the OFFSET formula which goes up to the row showing New Customers, and offsets back to the original month the cohort joined

300053738.xlsx

7 of 14

Copyright Giff Constable 2015

OFFSET(D$219,0,-$C223)
The original number of customers is then multiplied by the churn rate for the month the cohort is in (looked up from the assumption table)
* VLOOKUP($C223,offset_churntable,2,FALSE)
In order to prevent errors when we fill the formula across and down, we need to make sure the anchoring is correct
and use some additional formulas
first we check to make sure the result of the offset is an actual number (because some cells will offset off of the table)
IF ( ISNUMBER ...
lastly we round the result to an integer because we don't want partial customers
= ROUND ( ...

300053738.xlsx

8 of 14

Copyright Giff Constable 2015

Working with Data


TEXT TO COLUMNS
UNIQUE VALUES
VALIDATION
INPUT DROPDOWNS
DATA TABLE
CONDITIONAL FORMATTING

Text to Columns
text to columns lets you parse out lines of data into discrete pieces of data, either based on width or a separator
CONVERT THE BELOW DATA INTO SEPARATE COLUMNS OF DATA, USING THE SEMI-COLON AS THE DELIMITER
AND SET THE DESTINATION CELL TO D8
apples;84;$4;red
bananas;125;$2;yellow
pears;56;$3.50;green
RESULT SHOULD LOOK LIKE THIS
apples;84;$4;red
bananas;125;$2;yellow
pears;56;$3.50;green

apples
bananas
pears

84
125
56

$4
$2
$3.50

red
yellow
green

UNIQUE VALUES
When you have a long list of data, it is often useful to pull out the unique items and strip out duplicates;
To trigger, go to DATA > ADVANCED FILTER
CITIES
Washington DC
Paris
London
Paris
New York
Singapore
Beijing
Beijing
Paris
New York
Washington DC
Singapore
London
Paris
Washington DC
Paris
New York

1.
2.
3.
4.

EXAMPLE SCREENSHOT

SELECT THE LIST TO THE LEFT


GO TO DATA > ADVANCED FILTER
CHOOSE COPY TO ANOTHER LOCATION
CHECK "UNIQUE RECORDS ONLY"

ANSWER
CITIES
Washington DC
Paris
London
New York
Singapore
Beijing

VALIDATION
Validation lets you control inputs into your model, and give users error messages if something is wrong
To trigger, go to DATA > VALIDATION
SET THE BELOW CELL TO ONLY ACCEPT A DATE BETWEEN THE START/END DATES
AND ADD AN ERROR MESSAGE
Start Date
End Date

1/1/2015
3/31/2015

EXAMPLE
3/20/2015

INPUT DROPDOWNS

Validation also lets you create dropdowns when you want to limit the inputs from a user
You can combine validation dropdowns with lookups or IF functions to toggle scenarios in your model
Choose "List" as your type of validation
To keep the model clean for an end user, you can have your dropdown reference data on another sheet, for example an assumptions tab
EXAMPLE
Assumptions Section

Inputs
Best Case
Middle Case
Worst Case

Customer
Adjustment
150%
100%
50%

Revenue /
Customer
$15
$10
$5
inputdropdowns_scenarios

Model Section
SCENARIO

Best Case

Forecast
April
Customers
Adjusted Customers
Total Revenue

50
75
$1,125

<--- CHANGE INPUT HERE AND SEE MODEL BELOW CHANGE

May

June

75
113
$1,695

100
150 <-- NOTE THE USE OF THE ROUND FUNCTION TO PREVENT PARTIAL CUSTOMERS
$2,250 <-- THE REVENUE PER CUSTOMER CHANGES

DATA TABLE
Use Data Tables to run scenarios that run two variables through your model

300053738.xlsx

9 of 14

Copyright Giff Constable 2015

EXAMPLE
LET'S EXAMINE WHAT COULD TRIGGER QUARTERLY LOSS VS PROFIT
Assumptions
New customers per month
Monthly churn
Revenue per customer
Cost to acquire new customer
Operating cost per customer

50
40%
10
3
5

Quarterly Forecast
New Customers
Lost Customers
Total Customers

April
50
0
50

May
50
20
30

June
50
12
38

Q1
150
32

Monthly Revenue
CAC Cost
Operating Cost
Operating Profit
Operating Margin

500
150
250
100
20%

300
150
150
0
0%

380
150
190
40
11%

1180
450
590
140
12%

Data Table Example


Quarterly Operating Margin
Revenue Per
Customer
12%
$6
$8
$10
$12
$14

$3

Cost to Acquire Customer


$5
$7

$9

EXERCISE: CREATE A COPY OF THE ABOVE TABLE


Revenue Per
Customer

Cost to Acquire Customer

INSTRUCTIONS TO DUPLICATE
The top left cell must be your "output" cell
Set up your inputs and label them
Quarterly Operating Margin
Revenue Per
Customer
0%
$6
$8
$10
$12
$14

$3

Cost to Acquire Customer


$5
$7

$9

Then select the entire area (not including the labels)


Revenue Per
Customer
0%
$6
$8
$10
$12
$14

$3

Cost to Acquire Customer


$5
$7

$9

Go to DATA > DATA TABLE...


The ROW INPUT CELL is the model input with the variable that have across the top
The COLUMN INPUT is the model input with the variable that you have down the left side
Assumptions
New customers per month
Monthly churn
Revenue per customer
Cost to acquire new customer
Operating cost per customer

50
40%
10 <-- point the COLUMN INPUT to this cell (not here but above in the model)
3 <-- point the ROW INPUT to this cell (not here but above in the model)
5

CONDITIONAL FORMATTING
Conditional formatting (under the Format menu) lets you automatically format cells based on conditions
You can create multi-colored heat maps to help make data easier to parse
This is useful for data tables to highlight certain results
EXAMPLE: highlight the results that are less than zero or over our minimum goal
Minimum Goal:

20%
Quarterly Operating Margin

Revenue Per
Customer

Monthly Churn
50%
75%

25%
$8
$10
$12
$14
$16

300053738.xlsx

85%

-47%

10 of 14

Copyright Giff Constable 2015

EXAMPLE: highlight every other row


Automatically highlighting alterate rows
Choose "classic" and enter the formula
=MOD(ROW(),2)=1
Then custom format, and change fill color

300053738.xlsx

1
2
3
4
5
6

11 of 14

Copyright Giff Constable 2015

Mac Keyboard Shortcuts


If you want to be productive in Excel, you MUST learn the commonly used keyboard shortcuts
below is a list of useful ones
GOAL
Define a name

SHORTCUT
Ctrl + L

Enter edit mode on a cell

Ctrl + U

Toggle cell anchoring

Command + T

Format as percentage
Format as number with commas

Ctrl + Shift + % (% = 5)
Ctrl + Shift + ! (! = 1)

Add an outline border around a cell


Add a border at top
Add a border at bottom
Remove outline borders

Command
Command
Command
Command

Select entire column


Select entire row

Ctrl + spacebar
Shift + spacebar

Insert a row
Insert a row

Ctrl + spacebar, then Ctrl + i


Shift + spacebar, then Ctrl + i

Delete a row
Delete a row

Ctrl + spacebar, then Ctrl + hyphen


Shift + spacebar, then Ctrl + hyphen

Fill down
Fill right

Ctrl + D
Ctrl + R

Switch between open workbooks

Ctrl tab

Paste Special

Ctrl + Command + V

Increase font size


Decrease font size

Command + Shift + >


Command + Shift + <

Next worksheet
Previous worksheet

Ctrl + pagedown
Ctrl + pageup

Auto-sum

Command + Shift + T

Goto / insert name / find special

F5

See more:

300053738.xlsx

+
+
+
+

Option
Option
Option
Option

+
+
+
+

0
up arrow
down arrow
hyphen

https://support.office.com/en-nz/article/Excel-keyboard-shortcuts-ef213435-a57e-4ce1-bac6-2b39f16cb121

12 of 14

Copyright Giff Constable 2015

Version Notes
Date

7-Mar-15 Created initial draft: Intro, modeling best practices, basics, useful function
8-Mar-15 added conditional formatting
16-Mar-15 fixed answers for filling-down on Basics tab; answers for ROUND

es, basics, useful functions, working with data, keyboard shortcuts

wers for ROUND

Das könnte Ihnen auch gefallen