Product · Engine
How a decision is compiled and simulated
StoneIR compares the options of a business decision on a team's own figures. Each figure is justified before the run, each option runs on the same simulated worlds, and the result carries its precision.
Steps
Describe, give your figures, simulate, decide
- 1 · Describe
- the decision and the options you are weighing; keeping things as they are can be one of them
- 2 · Give your figures
- for each option, a low case and a high case of monthly net result; the gap between the two is your doubt
- 3 · Simulate
- the options run on the same simulated worlds
- 4 · Decide
- the winning option, the bad, median and good case of each, and how sure the engine is
Example
Hire a salesperson, or stay solo
The chart runs both options from the same starting MRR over the same horizon. The parameters are illustrative.
Data table
| Month | Option | P5 | P25 | P50 | P75 | P95 |
|---|---|---|---|---|---|---|
| 0 | Hire a salesperson | 8.0 | 8.0 | 8.0 | 8.0 | 8.0 |
| 0 | Stay solo | 8.0 | 8.0 | 8.0 | 8.0 | 8.0 |
| 1 | Hire a salesperson | 6.2 | 7.6 | 8.6 | 9.8 | 11.9 |
| 1 | Stay solo | 6.7 | 7.7 | 8.5 | 9.3 | 10.6 |
| 2 | Hire a salesperson | 5.8 | 7.7 | 9.3 | 11.2 | 14.9 |
| 2 | Stay solo | 6.4 | 7.9 | 8.9 | 10.2 | 12.4 |
| 3 | Hire a salesperson | 5.7 | 7.9 | 10.0 | 12.7 | 17.7 |
| 3 | Stay solo | 6.3 | 8.0 | 9.4 | 11.2 | 14.0 |
| 4 | Hire a salesperson | 5.7 | 8.2 | 10.8 | 14.2 | 20.4 |
| 4 | Stay solo | 6.4 | 8.2 | 10.0 | 12.1 | 15.6 |
| 5 | Hire a salesperson | 5.7 | 8.5 | 11.6 | 15.9 | 23.8 |
| 5 | Stay solo | 6.4 | 8.5 | 10.5 | 13.1 | 17.4 |
| 6 | Hire a salesperson | 5.7 | 8.9 | 12.5 | 17.7 | 27.5 |
| 6 | Stay solo | 6.4 | 8.8 | 11.1 | 14.2 | 19.3 |
| 7 | Hire a salesperson | 5.6 | 9.5 | 13.5 | 19.2 | 32.4 |
| 7 | Stay solo | 6.4 | 9.2 | 11.8 | 15.0 | 21.7 |
| 8 | Hire a salesperson | 5.8 | 10.0 | 14.6 | 21.3 | 36.8 |
| 8 | Stay solo | 6.5 | 9.5 | 12.4 | 16.2 | 23.8 |
| 9 | Hire a salesperson | 5.9 | 10.5 | 15.7 | 23.6 | 42.2 |
| 9 | Stay solo | 6.6 | 9.9 | 13.1 | 17.5 | 26.2 |
| 10 | Hire a salesperson | 5.9 | 11.1 | 16.9 | 25.9 | 48.4 |
| 10 | Stay solo | 6.7 | 10.3 | 13.9 | 18.7 | 29.0 |
| 11 | Hire a salesperson | 6.1 | 11.8 | 18.3 | 28.3 | 54.8 |
| 11 | Stay solo | 6.8 | 10.8 | 14.7 | 20.0 | 31.7 |
| 12 | Hire a salesperson | 6.4 | 12.3 | 19.7 | 31.5 | 60.7 |
| 12 | Stay solo | 7.0 | 11.2 | 15.5 | 21.6 | 34.2 |
Language
A closed language of assignments
A StoneIR decision is a short list of assignments, evaluated over simulated worlds and months. The line that defines cash, the monthly net flow, is mandatory.
- Line 1
units = logit_choice(wtp, price, sens, alpha) * traffic- Line 2
clients = stock_flow(units, churn)- Line 3
cash = clients * (price - unit_cost) - fixed_cost - where(t == 0, investment, 0)
An expression is built from arithmetic, one comparison at a time, names and calls to a listed function. Attribute access, subscripts, lambdas and imports are refused with FORBIDDEN_SYNTAX. A name that is neither a declared figure, an option parameter nor a computed variable is refused with UNKNOWN_NAME.
Functions
28 language functions a program can call
The list holds elementary arithmetic and business mechanics: customer stock and flow, cohort survival, a buyer facing a price, adoption, queues and contagion.
exp, log, sqrt, abs, minimum, maximum, clip, where, floor, ceil, stock_flow, bass, logit_choice, erlang_c, mean_wait, abandon_below, scale_above, cumsum_t, sum_t, lag_t, ltv, poisson_pmf, sir_new, p_up_before_down, sbg_survival, sbg_churn, sbg_ltv, sbg_stock
The workspace of The Cairn offers 16 business functions, such as cash runway, a price change or a hire, grouped by area of the company.
Laws
28 laws for an uncertain figure
16 laws describe a single value, such as a range, a most likely value or a heavy tail. 12 describe a monthly path, such as a random walk, regimes, jumps or your own series resampled by blocks. A law outside the list is refused with LAW_UNKNOWN.
Justification
What justifies a number before the run
A validator walks the numeric leaves of the decision and asks each for one justification. A figure without one is refused by name, including a figure that looks reasonable. A number written inside the program is refused with LITERAL_NUMBER, apart from small structural constants.
- A quote
- the figure is copied from what the client wrote, times a declared conversion such as a percentage.
- A dated source
- a field of an entry in the source store, dated no later than the decision.
- A declared default
- a product default of the frame of the decision, such as the horizon, stated to the client.
- A grid
- an option parameter on a declared grid around another justified figure; a winner at the edge is flagged.
- A logical bound
- zero or one as the bound of a share, or as the switch that tells two options apart.
A missing figure is declared as unknown and stays a question to the client. Figures come from you, and results from the simulation. StoneIR reports count zero language model calls.
Dates
A decision dated, and replayed as computed
A decision can carry its date. A series point dated after it is refused, so a past result replays as it was computed.
Limits
A result depends on the ranges you declare
A range that is too narrow hides your doubt, and a range that is too wide leaves no winner. The spread of your figures is separate from predictive accuracy. How we process your data is in the privacy policy.