Crafte Sessions analysis 2026 09 29 2026 10 29
sessions_analysis-2026-09-29-2026-10-29.csv · 2,246 rows · 15 columns · definition v3 saved 2026-10-29 14:08
Segments v28 built 2026-10-30 09:20 on feature set v7
What to do
From these segments' numbers. Setting buttons fill in the Build segments tab (then Build segments); merge buttons change the table below (then Save labels, no refit).- Fine as isUnknowns: 1.3% of snapshots
A small unknown share means nearly everyone fits a segment, while the odd ones aren't forced in.
- Fine as isordered: use S5, S2, S3, S6 as the targets on Outcomes
S5, S2, S3, S6 hold 85% of ordered in 31% of the snapshots (2.7× the overall rate). Leaving out S1 (63% of snapshots) would also leave out 6% of ordered: that's the trade-off of the reduction.
Outcome concentration
Share of each segment's snapshots whose entity eventually had the outcome. Lift = rate ÷ overall rate.- S5 has the highest rate: 15% for ordered, 3.9× the overall 3.8%.
- Rate: share of a segment's snapshots whose entity eventually had the outcome. Everyone together: 3.8% for ordered.
- Lift = rate ÷ overall rate. S5 has 15% for ordered, so 3.9× the average; above 1 is better than average.
- Captured: the segment's share of all the outcomes (each Captured column adds to 100%). Compare it with Share: S1 is 63% of snapshots and holds 5.8% of ordered, so it dilutes it.
- Segments that capture much more than their share are the ones to take to Outcomes as targets.
| Segment | Snapshots | Share | ordered | ||
|---|---|---|---|---|---|
| Rate | Lift | Captured | |||
| S1 | 1,425 | 63.4% | 0.4% | 0.1× | 6% |
| S2 | 378 | 16.8% | 9.8% | 2.6× | 43% |
| S3 | 188 | 8.4% | 9.6% | 2.5× | 21% |
| S5 (S5, S7, S8 merged) | 107 | 4.8% | 15.0% | 3.9× | 19% |
| S4 | 88 | 3.9% | 3.4% | 0.9× | 3% |
| S6 | 31 | 1.4% | 6.5% | 1.7× | 2% |
| Unknown: between segments | 6 | 0.3% | 0.0% | 0.0× | 0% |
| Unknown: fits no segment | 23 | 1.0% | 21.7% | 5.7× | 6% |
| Everyone | 2,246 | 100% | 3.8% | ||
How each segment differs
Average of each input, in standard deviations from everyone. Red higher, blue lower.landingPage=/product/474-port-and-prune-pudding-800g-log-in-cloth separates the segments most: from -0.1 sd in S2 to +8.1 sd in S6.- Each column is a segment and each row an input. A cell is how far the segment's average sits from everyone's, in standard deviations: +1 is clearly higher than typical (red), −1 clearly lower (blue), and near 0 is typical. Below, "slightly" means under 0.6 and "much" means over 1.5.
landingPage=/product/474-port-and-prune-pudding-800g-log-in-clothseparates the segments most: from -0.1 sd in S2 to +8.1 sd in S6.- S1 (1,425 snapshots): slightly more often landingPage is / (+0.4).
- S2 (378 snapshots): higher pages (+1.2); more often landingPage is other (+0.6); higher minutes (+1.0).
- S3 (188 snapshots): much longer-standing (returning) (+2.6); much more visits so far (+2.6).
- S5 (107 snapshots): much less often source is Facebook (-3.6); much more often landingPage is /product/75-christmas-cake-boxed (+2.0); slightly more often device is desktop (+0.4).
- S4 (88 snapshots): much more often landingPage is /product/79-chocolate-fruit-cake-500g-boxed (+4.9).
- S6 (31 snapshots): much more often landingPage is /product/474-port-and-prune-pudding-800g-log-in-cloth (+8.1).
- Read a segment down its column to describe it; read across a row to see which segments differ on that input.
| S1 | S2 | S3 | S5 | S4 | S6 | Between | Novel | |
|---|---|---|---|---|---|---|---|---|
landingPage=/product/474-port-and-prune-pudding-800g-log-in-cloth | -0.1 | -0.1 | -0.1 | -0.1 | -0.1 | +8.1 | -0.1 | +0.4 |
actions[add_recommended] | -0.0 | -0.0 | -0.1 | -0.2 | -0.0 | -0.1 | -0.9 | +5.4 |
landingPage=/product/79-chocolate-fruit-cake-500g-boxed | -0.2 | -0.2 | -0.2 | -0.2 | +4.9 | -0.2 | -0.2 | -0.2 |
newVisitor | +0.1 | +0.1 | +0.1 | -0.7 | +0.1 | +0.1 | +0.1 | -4.5 |
source=Facebook | +0.2 | +0.2 | +0.2 | -3.6 | +0.2 | +0.2 | +0.3 | -2.1 |
source=Direct | -0.2 | -0.2 | -0.2 | +3.0 | -0.2 | -0.2 | -0.3 | +1.6 |
pages | -0.4 | +1.2 | +0.1 | +0.7 | +0.4 | -0.3 | -0.4 | +2.8 |
device=desktop | -0.0 | -0.1 | +0.1 | +0.4 | -0.1 | +0.0 | +2.7 | +0.3 |
tenure_days | -0.3 | -0.3 | +2.6 | +0.1 | -0.0 | +0.3 | -0.3 | +1.1 |
rows | -0.3 | -0.3 | +2.6 | +0.2 | +0.0 | +0.2 | -0.3 | +1.8 |
landingPage=/ | +0.4 | -0.2 | -0.1 | -1.2 | -2.2 | -2.2 | -2.1 | -0.5 |
actions[sub_start] | -0.0 | -0.1 | +0.1 | +0.3 | -0.1 | -0.1 | +2.1 | +1.3 |
landingPage=/product/75-christmas-cake-boxed | -0.1 | -0.1 | -0.1 | +2.0 | -0.1 | -0.1 | -0.1 | +0.4 |
device=mobile | +0.0 | +0.1 | -0.1 | -0.3 | -0.0 | +0.2 | -1.7 | -0.3 |
minutes | -0.4 | +1.0 | +0.2 | +0.6 | -0.0 | -0.3 | -0.4 | +1.7 |
actions[add_search] | -0.0 | +0.0 | -0.0 | -0.1 | -0.0 | +0.1 | -0.8 | +1.7 |
landingPage=other | -0.2 | +0.6 | +0.2 | +0.7 | -0.2 | -0.2 | -0.3 | +0.5 |
device=tablet | +0.0 | -0.0 | +0.0 | -0.0 | +0.1 | -0.3 | -0.4 | +0.1 |
Movement between segments
Where each entity's next snapshot lands, as a share of the row- Rows are where an entity's snapshot was; columns are where its next snapshot landed. Each row adds to 100%. The diagonal is staying put; anything else is a move.
- There are 232 steps from one snapshot to the next. 30% stayed in the same segment, so people often change segment between visits.
- Most common moves: S1 → S3 (87); S2 → S3 (43); S4 → S3 (5).
- S5 has the highest ordered rate (15%). Entities arriving there mostly come from S3 (3), S1 (2): that's the path worth watching.
| From ↓ to → | S1 | S2 | S3 | S5 | S4 | S6 | Between | Novel | moves |
|---|---|---|---|---|---|---|---|---|---|
| S1 | 89% | 2% | 4% | 5% | 98 | ||||
| S2 | 91% | 2% | 4% | 2% | 47 | ||||
| S3 | 94% | 6% | 52 | ||||||
| S5 | 27% | 60% | 13% | 15 | |||||
| S4 | 56% | 44% | 9 | ||||||
| S6 | 33% | 33% | 33% | 3 | |||||
| Unknown: fits no segment | 12% | 88% | 8 |
Segments over time
Share of snapshots per week- Each bar is one week: how that week's snapshots split across the segments (100% per bar). Hover a block for the count.
- From the first week (2026-10-05) to the last (2026-10-26), S2 grew the most (+13% points) and S1 shrank the most (-32% points).
- The table underneath gives each segment's ordered rate per week. A rate that holds steady is dependable; one that swings may be seasonal, or the segment may be too small. The first and last weeks are often only part weeks.
- Watch here for change: a segment growing, or its rate drifting, is the signal to rebuild the segments or rethink an action.
ordered rate by week (grey: under 20 snapshots, unreliable)
| 10-05 | 10-12 | 10-19 | 10-26 | |
|---|---|---|---|---|
| S1 | 0% | 1% | 0% | 0% |
| S2 | 11% | 15% | 6% | 8% |
| S3 | 33% | 8% | 5% | 14% |
| S5 | 20% | 23% | 9% | 6% |
| S4 | 4% | 3% | ||
| S6 | 9% | 0% | ||
| Unknown | 25% | 9% | 12% | 33% |
How good are these segments?
- Separation (silhouette): for each snapshot, how much closer it sits to its own segment than to the next nearest. 1 is perfectly apart, 0 is on the border, below 0 is closer to another segment. Above 0.25 is reasonable, above 0.5 clear. Here: 0.54, clear.
- Stability: the segmentation was refitted 3 times on different 80% samples. 1 means the same segments came out every time, 0 no better than chance. Here: 0.92, very stable.
- Least stable: S6. A segment that doesn't come back when refitted is a quirk of this fit: don't build an action on it alone.
- Confidence: the average probability with which snapshots were placed in their segment.
- The best segmentation for a decision is one that is stable and concentrates the outcome. Compare runs in the table at the bottom of the page.
| Segment | Separation | Stability | Confidence |
|---|---|---|---|
| S1 | 0.76 clear | 0.96 very stable | 100% |
| S2 | -0.09 overlapping | 0.87 very stable | 100% |
| S3 | 0.16 weak | 0.80 very stable | 100% |
| S4 | 0.61 clear | 1.00 very stable | 100% |
| S5 | 0.23 weak | 0.85 very stable | 100% |
| S6 | 0.77 clear | 0.14 unstable | 100% |
| S7 | 0.57 clear | 0.70 fairly stable | 100% |
| S8 | 0.03 overlapping | 0.71 fairly stable | 100% |
Choosing the number of segments
- The Bayesian mixture starts with your maximum number of segments and gives each a weight; segments it doesn't need end up with almost none and are dropped. It kept 8.
- If it kept the maximum, the data may hold more structure: raise the maximum and rebuild.
The Bayesian mixture started with 8 segments and kept 8; the others ended up with too little weight to matter.
The unknowns
- 29 snapshots (1.3%) are unknown: 0 too little history, 6 between segments, 23 fit no segment.
- Too little history (0, 0.0%): fewer rows so far than the minimum you set.
- Between segments (6): no segment was a clear best fit; often someone changing pattern.
- Fits no segment (23): the oddest snapshots. Worth a look: new behaviour (or fraud) tends to show up here first.
- Nearest segment says which segment each would have joined if forced.
| Kind | Snapshots | Nearest segment |
|---|---|---|
| Unknown: between segments Sits between two or more segments; often mid-transition. | 6 | S1 (6) |
| Unknown: fits no segment Doesn't resemble any segment. Worth a look: new patterns and fraud often start here. | 23 | S8 (10), S2 (9), S3 (1) |
Boundary rules
How to recognise each segment- Read each line as IF these conditions THEN this segment, using the inputs in their own units (minutes, page counts).
- Covers is the share of the segment the rule finds; correct is how many of the snapshots it finds really are in that segment.
- Together the rules agree with the model 94% of the time: good enough to use as a description.
S1 1 rule covering 96% of the segment
- pages ≤ 1.5 and landingPage = / and rows ≤ 1.5 · covers 96% of the segment, 99% correct
S2 1 rule covering 87% of the segment
- pages > 1.5 and rows ≤ 1.5 and source = Facebook · covers 87% of the segment, 90% correct
S3 1 rule covering 100% of the segment
- rows > 1.5 and landingPage is not /product/79-chocolate-fruit-cake-500g-boxed and source = Facebook · covers 100% of the segment, 93% correct
S4 2 rules covering 100% of the segment
- landingPage = /product/79-chocolate-fruit-cake-500g-boxed and rows ≤ 1.5 · covers 88% of the segment, 100% correct
- landingPage = /product/79-chocolate-fruit-cake-500g-boxed and rows > 1.5 · covers 12% of the segment, 100% correct
S5 2 rules covering 100% of the segment
- source is not Facebook and rows ≤ 1.5 and minutes ≤ 120 · covers 94% of the segment, 99% correct
- source is not Facebook and rows ≤ 1.5 and minutes > 120 · covers 6% of the segment, 80% correct
S6 2 rules covering 100% of the segment
- landingPage = /product/474-port-and-prune-pudding-800g-log-in-cloth and rows ≤ 1.5 · covers 77% of the segment, 100% correct
- landingPage = /product/474-port-and-prune-pudding-800g-log-in-cloth and rows > 1.5 · covers 23% of the segment, 100% correct
S7 1 rule covering 100% of the segment
- landingPage = /product/75-christmas-cake-boxed · covers 100% of the segment, 100% correct
S8 no clean rule: this segment overlaps others on these features
Compare runs
Find the best segmentation- Each row is one segmentation run. Click the version to open it; the highlighted row is the one shown above.
- Separation and Stability describe the whole segmentation: are the segments distinct, and do they come back when refitted?
- The last four columns are about ordered: Targets are the segments at 1.5× the overall rate or more; Captured is the share of all ordered they hold (and the share of snapshots they are); Lift is how concentrated they are; Target stability is whether those particular segments come back when refitted.
- Read Captured and Lift together: a high lift on a sliver of the outcome is less useful than a slightly lower lift that holds most of it. pick marks the best mix: captured × lift, with full credit only when the targets' stability is 0.5 or more. ★ marks the best value in each column.
- Change one thing per run (the group handling, the number of segments, the shape or the feature set) so you can see what made the difference. Runs built before this table existed show '-'.
| Run | Features | Groups | Shape | Segments | Unknown | Separation | Stability | Targets | Captured | Lift | Target stability |
|---|---|---|---|---|---|---|---|---|---|---|---|
| v28 10-30 09:20 |
v7 | device evened out | Diagonal | 8 | 1.3% | 0.54 | 0.92 ★ | S2, S3, S5, S6 | 81% in 30% | 2.7× | 0.66 ★ |
| v27 10-29 17:17 |
v6 | device evened out | Diagonal | 8 | 1.3% | 0.54 | 0.92 ★ | S2, S3, S5, S6 | 81% in 30% | 2.7× | 0.66 ★ |
| v26 10-29 16:29 |
v6 | - | Diagonal | 5 | 1.0% | 0.45 | 0.59 | S3, S4 | 19% in 5% | 3.4× ★ | 0.21 |
| v25 10-29 16:28 |
v6 | device evened out | Diagonal | 5 | 1.0% | 0.49 | 0.41 | S2, S3 | 83% in 31% ★ | 2.7× | 0.39 |
| v24 10-29 16:27 |
v6 | device separately | Diagonal | 15 | 1.0% | 0.66 ★ | 0.54 | S5, S6, S7 | 31% in 10% | 3.1× | 0.62 |
| v23 10-29 16:26 |
v6 | device ignored | Full | 5 | 0.7% ★ | 0.63 | 0.37 | S2, S3 | 41% in 18% | 2.2× | 0.42 |
| v22 10-29 16:26 |
v6 | - | Full | 5 | 1.0% | 0.44 | 0.60 | S3, S4 | 19% in 6% | 3.4× | 0.21 |
| v21 10-29 16:26 |
v6 | device separately | Full | 15 | 1.0% | 0.65 | 0.51 | S5, S6 | 27% in 9% | 3.0× | 0.57 |
| v20 pick 10-29 16:24 |
v6 | device evened out | Full | 5 | 1.0% | 0.50 | 0.27 | S2, S4 | 83% in 25% ★ | 3.3× | 0.52 |
| v19 10-29 16:22 |
v6 | - | Full | 5 | 1.0% | - | - | - | - | - | - |
| v18 10-29 16:20 |
v6 | - | Full | 5 | 1.0% | - | - | - | - | - | - |
| v17 10-29 16:20 |
v6 | - | Full | 5 | 1.0% | - | - | - | - | - | - |
| v16 10-29 16:19 |
v6 | - | Full | 5 | 1.0% | - | - | - | - | - | - |
| v15 10-29 14:10 |
v6 | - | Full | 5 | 1.0% | - | - | - | - | - | - |
| v14 10-29 14:09 |
v6 | - | Diagonal | 4 | 1.0% | - | - | - | - | - | - |
| v13 10-29 14:08 |
v6 | - | Diagonal | 9 | 1.1% | - | - | - | - | - | - |
| v12 10-29 14:08 |
v6 | - | Diagonal | 7 | 1.0% | - | - | - | - | - | - |
| v11 10-29 14:01 |
v5 | - | Diagonal | 7 | 1.0% | - | - | - | - | - | - |
| v10 10-29 13:10 |
v4 | - | Diagonal | 7 | 1.0% | - | - | - | - | - | - |
| v9 10-29 13:10 |
v4 | - | Diagonal | 7 | 89.8% | - | - | - | - | - | - |
| v8 10-29 13:10 |
v4 | - | Diagonal | 10 | 1.0% | - | - | - | - | - | - |
| v7 10-29 13:09 |
v4 | - | Diagonal | 7 | 1.0% | - | - | - | - | - | - |
| v6 10-29 12:51 |
v3 | - | Diagonal | 7 | 1.0% | - | - | - | - | - | - |
| v5 10-29 12:51 |
v3 | - | Diagonal | 10 | 1.0% | - | - | - | - | - | - |
| v4 10-29 12:50 |
v2 | - | Diagonal | 4 | 1.0% | - | - | - | - | - | - |
Search results
49 setups · 2026-10-29 16:56 · judged on orderedBest: Bayesian Gaussian mixture · Diagonal · device evened out (8 segments). Its target segments (S2, S4, S5) hold 77% of ordered in 20% of the training snapshots, 3.8× the overall rate, and come back at 0.82 stability when refitted.
Close behind and steadier overall: K-means · source ignored (stability 1.00 against 0.77, score 2.54 against 2.90).
- Every setup was fitted on the same 1,611 training snapshots (1,410 people); the 30% of people held out for testing weren't used, so Outcomes can still test the winner honestly.
- Score = share of ordered captured × lift, with full credit only when the target segments' stability is 0.5 or more. Setups with over 25% unknown are halved.
- Stability is for the whole segmentation, Target stability just for the target segments. A setup with a slightly lower score but much higher stability can be the safer choice.
- Build on full data makes the real segmentation with that setup on everyone. It then appears below as a normal run: name the segments, compare, take it to Outcomes, and export it.
| # | Setup | Segments | Unknown | Separation | Stability | Captured | Lift | Target stability | Score | |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Bayesian Gaussian mixture · Diagonal · device evened out | 8 | 1.1% | 0.59 | 0.77 | 77% in 20% | 3.8× | 0.82 | 2.90 | |
| 2 | Bayesian Gaussian mixture · Full · device evened out | 8 | 1.1% | 0.60 | 0.69 | 84% in 28% | 3.1× | 0.65 | 2.57 | |
| 3 | K-means · source ignored | 8 | 1.1% | 0.73 | 1.00 | 64% in 16% | 4.0× | 0.99 | 2.54 | |
| 4 | Gaussian mixture · Diagonal · device ignored | 7 | 1.1% | 0.69 | 0.97 | 84% in 28% | 3.0× | 0.89 | 2.52 | |
| 5 | Bayesian Gaussian mixture · Full · source ignored | 8 | 1.1% | 0.71 | 0.87 | 75% in 23% | 3.2× | 0.60 | 2.45 | |
| 6 | K-means · source separately | 10 | 2.2% | 0.77 | 0.99 | 65% in 17% | 3.8× | 0.95 | 2.45 | |
| 7 | Bayesian Gaussian mixture · Diagonal · device ignored | 8 | 1.1% | 0.74 | 0.97 | 83% in 28% | 3.0× | 0.82 | 2.45 | |
| 8 | Gaussian mixture · Diagonal · source ignored | 8 | 1.1% | 0.68 | 0.95 | 71% in 21% | 3.4× | 0.74 | 2.38 | |
| 9 | Gaussian mixture · Full · device ignored | 7 | 1.1% | 0.69 | 0.97 | 81% in 28% | 2.9× | 0.84 | 2.35 | |
| 10 | Bayesian Gaussian mixture · Full · device ignored | 8 | 1.1% | 0.75 | 0.97 | 80% in 28% | 2.9× | 0.78 | 2.30 | |
| 11 | Gaussian mixture · Diagonal · device evened out | 8 | 1.1% | 0.53 | 0.73 | 43% in 9% | 5.1× | 0.70 | 2.21 | |
| 12 | Bayesian Gaussian mixture · Full · source separately | 10 | 2.2% | 0.73 | 0.95 | 74% in 25% | 3.0× | 0.71 | 2.20 |