Financial Modeling Blog

The Whitebirch approach to Circular References

A circular reference is a chain of references that circles back to the original object. In spreadsheets it is a string of 1 or more formulas, each formula referencing the next formula, and the last one referencing the first formula. The problem is how to compute the formulas. By default, such a set of formulas is considered an error, and the values returned by all the formulas in the circular reference are error values. An alternative approach is to find a solution, such that the formulas compute a consistent set of results (to a certain precision). Not all sets of circular references will have a solution. Iterative calculation is a method that can find such solutions.

Walter Feigenson has reported that iterative calculations were introduced in an early spreadsheet program to cover up some problems converting a decimal based spreadsheet to a binary based spreadsheet. It was soon discovered that iterative calculations could also be used to solve circular references and goal seek type problems.

Price Elasticity Models and Optimization

Price elasticity refers to the property that the price of an object will influence the number of units sold. In general, higher prices mean fewer sales, and lower prices mean more sales. If you chart price and units sold, you can draw a line with a negative slope to show the relationship. The revenue can also be plotted and shows a curve. If you set the price too low or too high, you won't have much revenue, but if you price it just right, you'll do fine. Optimization is a method to find the best price to maximize profit.

Static Vs Dynamic Cubes

A cube is a multidimensional hierarchical data organization that underpins OLAP (Online Analytical Processing) and many other financial software tools. Cubes provide a fast way to analyze data and generate reports. A static cube is one in which the cube is created up front by computing all (or most) values and storing them in one static data structure. Any change or update must either recompute the cube from scratch or use sophisticated techniques to minimize the computational cost of updating the static cube.