Customer lifecycle (ergodic chain, stationary π)
A SaaS trial → active → churned chain. The engine validates the row-stochastic matrix, confirms the chain is ergodic, and computes the long-run stationary distribution π — the steady-state share of customers in each state.
For the growth / data analyst
What this shows
A SaaS customer modelled as a memoryless hop between three states — Trial, Active, Churned — each month. Every row of probabilities leaving a state sums to 1 (the row-stochastic rule), and because churned customers can re-enter via Trial (Churned -> Trial : 0.3), no state is a dead end: the chain is ergodic, every state reachable from every other.
The engine does the linear algebra. It validates the matrix, runs SCC analysis to confirm a single recurrent class with no absorbing sink, then computes the stationary distribution π — the long-run share of your customer base sitting in each state once the system settles, independent of where it started. That steady-state answer (and the per-state classification) is carried in data-*, and it is the number a churn model exists to produce, not the circles-and-arrows.