Posted on June 25, 2013 @ 05:41:00 AM by Paul Meagher
In a previous blog on profit distributions, I suggested that we could forecast profit distributions for a line-of-business rather than make point estimates of how much the line-of-business might make over a specified period of time. A forecasted profit distribution can be viewed as arising from probabilistic factors that jointly produce the range of possible profit outcomes.
In order to compute profits, we need to estimate the revenue term in the profit equation (profits = revenue - costs). In today's blog, I want to focus on revenue modelling because it can provide insight into how our profit distribution forecasts might arise and also because revenue modelling
is a useful and interesting intellectual exercise.
To make a revenue model for a line-of-business that can be used to account for some of the variability in a profit distribution, we need to specify the primary factors that generate revenue and how they might interact to produce the expected range of possible revenue outcomes. We can go into more or less detail on what these primary factors are and how they interact, but initially we should be content to deal with just two or three factors until we master that level of model complexity.
Lobster Fishing Revenue Model
To illustrate what a revenue model for a line-of-business might look like, I will take the example of lobster fishing which I am somewhat familiar with because my in-laws are fisherman (they fish lobster and crabs and grow oysters). I will construct a revenue model that might account for this season's revenue from the lobster fishing line-of-business.
A season of lobster fishing has a start date and an end date, in this case from May 1 to June 30, 2013. Between these dates, fishermen can set traps for lobsters and keep those that fall within conservation guidelines. The lobsters are not fished every day; usually you leave the traps for a day and come back the second day to harvest your traps (fyi, they harvest their crab traps on off days until they complete their crab quota). The harvest you obtain from your traps is called your "catch" and the season can be viewed as consisting of the number and sizes of catches you made over the season, and the prices you obtained for your various catches. So the two primary factors we will use to characterize a catch is the size of the catch in pounds (lbs) and the price per lb that was received for that catch. We can compute the revenue for a season of fishing by adding up the revenue per catch for all their catches in that season.
What I want to do in this week's blogging is construct a simple probabilistic revenue model for lobster fishing and then explore a set of refinements I might make in order to make it a more realistic revenue model. This might inspire in you to construct a simple revenue model for your own line-of-business and to consider what additional factors you might want to take into account to make it more realistic.
Revenue Model Implementation
You can implement a revenue model using whatever programming language you are comfortable with. In the example below
I use PHP because I have developed a Probability Distributions Library (https://github.com/mrdealflow/PDL) that I find useful for injecting uncertainty into the model. I inject uncertainty by assuming that the catch size is normally distributed with a mean catch size
of 500 lbs and a standard deviation of 150 lbs. This means that as my program iterates through all the catches it
generates a possible catch size by sampling from a normal distribution of values with a mean of 500 lbs and a standard
deviation of 150 lbs. This results in catch sizes that vary quite a bit from catch to catch. I also inject uncertainty
into the revenue model by assuming that the price per lb for live lobster is $3.50 per lbs with a standard deviation of
25 cents from catch to catch. So as we iterate through each catch we sample from a catch size distribution and a
price per lb distribution and multiply the sampled values together to compute the revenue generated for that catch. The
revenue generated for each catch is primarily a function of the catch size random variable and the price per lb
random variable. Here is what the model looks like:
And here is the output that the lobster_fishing.php revenue model generates:
Catch # |
Price/LB |
Weight(LB) |
Revenue |
1 |
$3.92 |
667 |
$2614.64 |
2 |
$3.58 |
566 |
$2026.28 |
3 |
$3.34 |
511 |
$1706.74 |
4 |
$3.75 |
620 |
$2325.00 |
5 |
$3.68 |
441 |
$1622.88 |
6 |
$3.10 |
439 |
$1360.90 |
7 |
$3.15 |
508 |
$1600.20 |
8 |
$3.62 |
476 |
$1723.12 |
9 |
$3.47 |
441 |
$1530.27 |
10 |
$3.64 |
503 |
$1830.92 |
11 |
$3.58 |
145 |
$519.10 |
12 |
$3.25 |
423 |
$1374.75 |
13 |
$3.29 |
825 |
$2714.25 |
14 |
$3.23 |
520 |
$1679.60 |
15 |
$3.40 |
340 |
$1156.00 |
16 |
$3.96 |
284 |
$1124.64 |
17 |
$3.16 |
454 |
$1434.64 |
18 |
$3.17 |
541 |
$1714.97 |
19 |
$3.47 |
668 |
$2317.96 |
20 |
$3.51 |
469 |
$1646.19 |
21 |
$3.72 |
367 |
$1365.24 |
22 |
$3.74 |
580 |
$2169.20 |
23 |
$3.49 |
579 |
$2020.71 |
24 |
$3.72 |
488 |
$1815.36 |
25 |
$3.41 |
691 |
$2356.31 |
26 |
$3.36 |
450 |
$1512.00 |
27 |
$3.71 |
617 |
$2289.07 |
28 |
$3.75 |
646 |
$2422.50 |
|
Totals |
14259 |
$49973.44 |
Some Refinements
In my next two blogs I'll be exploring a couple of refinements to this revenue model that are designed to make the revenue model more realistic and also to give you more modelling ideas you might use to construct more realistic revenue models for your own
lines-of-business.
|