Arun Patra
Tue Mar 24 2026
Why the Math Behind Your Analytics Funnel Actually Matters
Absorbing Markov chains give us closed-form answers to questions current analytics tools can't answer at all — which states are structurally critical, how long journeys take, and what happens when a step is removed.
Analytics tools are good at counting. They're bad at explaining structure.
Most funnel analytics works like this: count users who entered each step, divide by the step before, report a percentage. That's useful. It's also incomplete in ways that matter.
The formal alternative — modeling user journeys as absorbing Markov chains — produces answers to questions current tools can't answer at all. Which states are structurally critical? What's the expected number of steps before a user converts or churns? If you removed a step from the journey, how much would overall conversion drop?
This post explains the mathematics, what it produces, and why it matters for product analytics.
Get posts like this in your inbox.
User Journeys as Absorbing Markov Chains
A Markov chain is a system where transitions between states depend only on the current state, not the full history. User journeys have this property approximately — at the level of semantic states (not raw events), journey transitions are reasonably estimated from the current position.
An absorbing Markov chain has two types of states:
- Transient states — states users can visit and re-visit:
sign_up,feature_used,import_data,invite_teammate - Absorbing states — states users enter and never leave:
converted,dropped_off
Every user journey in a well-defined product eventually reaches an absorbing state. The model enforces this by construction.
Transition probabilities are estimated from observed journey data over a fixed analysis window. The resulting matrix is row-stochastic: each row sums to 1, representing all the ways a user in state can transition.
The Fundamental Matrix
From the transition matrix, we split out (transient → transient transitions) and (transient → absorbing transitions).
The fundamental matrix is:
gives the expected number of times the chain visits transient state when starting from transient state before reaching an absorbing state.
This is not a statistic you can compute from a standard funnel. It requires the full transition structure.
also gives us expected journey length: the sum of row of is the expected number of steps before absorption from state . For the example funnel in the paper, a user starting at sign_up takes a mean of ~2.07 steps before converting or dropping off.
Absorption Probabilities
The absorption probability matrix is:
is the probability of conversion when starting from transient state . This is the mathematical definition of "how likely is a user to convert if they're currently at this step."
For the four-state example funnel (sign_up → feature_used → import_data → invite_teammate):
| Starting state | P(converted) | P(dropped) |
|---|---|---|
| sign_up | ~0.16 | ~0.84 |
| feature_used | ~0.28 | ~0.72 |
| import_data | ~0.58 | ~0.42 |
| invite_teammate | 0.71 | 0.29 |
The simulation script (markov_journey_model.py) computes these values exactly from the transition matrix. You can run it yourself and verify.
A note on terminology: most analytics tools report — the fraction of users who ever visited and then converted. This is related to but different from . For sequential funnels with low re-visitation they're closely aligned; in the presence of loops they diverge. The paper discusses both.
Removal Effects: Which States Are Structurally Critical?
The removal effect of state with respect to terminal outcome is the decrease in overall conversion rate when is removed from the journey graph. Removal is modeled by: (i) deleting all edges into and out of from the transition graph, (ii) re-normalizing transition probabilities from predecessor states of , and (iii) recomputing the absorption probability matrix under the modified graph:
where denotes the removal effect, is the starting state of the journey, and is the absorption probability matrix after the removal procedure above.
A high removal effect indicates that the state lies on the dominant conversion paths in the graph. Note that this is not a causal effect — it's a structural property of the observed graph. Identifying causal drivers requires controlled experimentation.
In product terms: if this state disappeared from the product tomorrow, how much would overall conversion drop?
For the example funnel (values are decreases in when the state is removed):
| State | Removal effect |
|---|---|
| import_data | 0.14 (highest) |
| feature_used | 0.12 |
| invite_teammate | 0.08 |
import_data has the highest removal effect. It's the most structurally critical state — as the sole gateway to invite_teammate (the highest-converting transient state), removing it eliminates the dominant conversion path. This is what makes it an activation driver — not just a step users pass through, but a load-bearing element of the journey structure.
The companion script removal_effect.py computes these rankings. The output matches Figure 4 in the paper.
Why Most Analytics Tools Don't Compute This
Removal effects require modeling the full transition matrix and solving a matrix equation. They can't be computed from step-by-step conversion rates alone.
Standard funnel analytics gives you:
- Conversion rate at each step (aggregate)
- Drop-off rate at each step (aggregate)
Absorbing Markov chain analytics gives you:
- Conversion probability from any state (structural)
- Expected steps to absorption from any state
- Removal effect of each state — which states are architecturally critical
- Behavior under loops and re-visitation
The difference isn't incremental. It's the difference between a snapshot and a model.
Run the Simulations Yourself
The full code is open source. Clone the repository and run:
python simulations/markov_journey_model.py
python simulations/removal_effect.pyThe output reproduces the figures and tables from the paper. The transition matrix is defined at the top of each script — modify it to match your own product's journey data.
These techniques are the mathematical foundation of the Behavioral Intelligence Platform — the formal architecture Journium is built on.
Read the full architecture paper →
Enjoyed this post?
Get the latest insights and announcements from Journium delivered straight to your inbox.
We respect your privacy. You can unsubscribe at any time.