Schematex
markov·Kemeny & Snell, Finite Markov Chains·saas, analytics·complexity 2/3·since v0.8.0

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

Open in Playground →
markov·§
↘ preview
100%
Markov chain — Customer lifecycle 3 states, 8 transitions. Classification: 3 recurrent, 0 transient, 0 absorbing. Stationary π: { Trial=0.197, Active=0.492, Churned=0.311 }. Customer lifecycle 0.4 0.5 0.1 0.8 0.05 0.15 0.7 0.3 Trial π=0.197 Active π=0.492 Churned π=0.311
UTF-8 · LF · 10 lines · 261 chars✓ parsed·3.8 ms·5.3 KB SVG

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.

Markov chain syntax