Monte Carlo Business Case Analysis using pandas

This package provides some tools and examples to analyse high-impact business decisions, and dodge many of the problems of using spreadsheets.

Background

Pandas is increasingly becoming a standard tool in scientific computing. Could it also have a role in the CFO's office? CFOs regularly need to analyse the impact of different projects or business cases, and they almost universally do this using spreadsheets. Spreadsheets have many advantages - they have a low barrier to entry and are easy for most people to understand. However as they get more complicated, disadvantages start to appear; in particular, they can be inflexible and highly error-prone.

The application here is made more interesting and useful by being 'Monte Carlo' analysis. Traditional business case analysis takes single point estimates of sales, costs and prices, and calculates a single profit forecast. Everybody knows the profit will not turn out to be exactly equal to the forecast. But it is not clear what the range of profits might be, or how likely a loss is. 'Monte Carlo' analysis solves this problem by allowing ranges or distributions on the assumptions; the forecast is then a range of outcomes.

Package structure

Slides and an ipython notebook are included in the talks directory. The talk, titled "Monte Carlo Business Case Analysis using pandas", was presented at the Science and Data mini-conference for PyCon Australia (1 Aug 2014), as well as the Sydney Python group on 5 June 2014. It is an introduction to both Monte Carlo Business Case Analysis and pandas. You can find it online at racingtadpole.com/blog/business-case-python-pandas. The slides have been prepared using the html5 presentation engine Shower.

See the examples directory for a more detailed example, including testing your model.

Other implementations

Pandas is not the only way to do this. For another approach, I have also explored using R - see this post for some examples, and see the book "Business Case Analysis with R" by Robert D. Brown, 2013. Or if you want to free yourself from using simulations and deal directly with mathematical distributions, you could even use Mathematica...