Department setup
Every value here is editable — distributions open a percentile editor, single values are typed directly. Changes save instantly.
Equation try-it variables
Simulation
Run once for a quick preview, or run the full engine across parallel workers. Both always add to the current session's sample count as long as settings haven't changed since it started.
NPV distribution across runs
Monthly cashflow discounted to today; bar & line height ∝ √|amount| — hover for line items
Coach & client timeline representative run — closest to median NPV
A "+N" at the center of a client's bar marks referrals they generated (total across their tenure); italic means at least one of those referred clients was redirected to a different coach (their own was at capacity) — that's why it may not appear on this same row. A "×" before a client's join date (in its tooltip) marks a coach-generated (direct) lead.
Monthly event log
from the representative run, aboveDebug log every cashflow, new client, new coach, and referral — one row each, from the representative run
Comma-separated: Day, Who, By Whom, What, How Much. Paste directly into Excel or a text editor to filter/sort.
C# simulation code a single, self-contained .cs file that reproduces this simulation's Monte Carlo run
Generated fresh from your current Setup settings. Needs only the .NET SDK, no extra packages -- run via dotnet run in a new console project (drop this file in, replacing Program.cs), dotnet-script, or any online C# compiler. Number and distribution modes are reproduced exactly. Equation-mode fields are converted to real C# by simple text substitution (Math.exp/min/max/round/floor/ceil, and JS's ===/!==) -- not parsed or evaluated, so ordinary arithmetic, comparisons, and ternary ?: come through as-is. Anything else (Math.pow, Math.sqrt, Math.random, ...) is left as a placeholder that deliberately won't compile, with the original JS shown right above it as a //JS: comment for you to translate by hand.
Sensitivity Analysis
Sweep one parameter from a "before" state to an "after" state across evenly-spaced steps, running a full batch at each step, then automatically compare all of them.
Parameter to sweep
Runs a full sweep on every checked variable in one pass. To keep this from exhausting local storage, only the output metrics, NPV distribution, and sensitivity chart are kept per variable — not full simulation detail, so results land in SA Reports rather than Simulation Results.
| Variable | Current | Before | After |
|---|
Simulation Reports
Every run is saved automatically. Load one back up, export it, or select two or more to build a comparison report.
| Name | Saved ↓ | Time since run | Samples | Horizon | Median NPV | Mean NPV | P(profit) |
|---|
Comparison report
The baseline is always shown in black — switch which run is baseline from its chip below without reordering columns. Runs saved at different discount rates are recomputed live at whichever rate you set, using each run's saved undiscounted cashflows.
Compare Reports
Saved comparison reports. Load one back up to revisit it, or delete it.
SA Reports
One row per variable batch-swept from the Sensitivity Analysis tab. Each row is self-contained — output metrics, NPV distribution, and the sensitivity chart, without full simulation detail.
Solver
Pick a target metric and value, choose which Setup variables it's allowed to move, and let it search for a combination that hits the target while minimizing total effort.
Target
Check which variables the solver may adjust. Leave a bound blank for unbounded on that side. Distributions are moved as a single scaler on their whole curve (1.0 = unchanged). Difficulty is relative cost: a variable at difficulty 2 costs twice as much per % moved as one at difficulty 1. Cost rises fast the further any one variable is pushed, so the solver spreads the required change across several cheaper variables rather than maxing out just one.
| Variable | Current | Lower bound | Upper bound | Difficulty /10% change |
|---|
Settings
Whole-app data management.
Export everything
Downloads one JSON file containing your current settings, every saved simulation, and every saved comparison report.
Import everything
Replaces everything currently stored with the contents of a previously exported file.
Delete everything
Permanently clears settings (back to defaults), all saved simulations, and all saved reports. Asks for confirmation twice.
Delete reports only
Clears Simulation Results, Compare Reports, and SA Reports to free up storage space — leaves your Setup settings untouched. Asks for confirmation twice.