Taxonomy
The same live decision tree as/playbook, annotated with how many
logged cases actually reached each node. 99 nodes · 94 edges.
187 cases logged in window: last 7d (2026-10-06 → now)
· 187 not yet classified in this window (last_label is NULL — shown nowhere on the tree, only here).
Executed actions only (proposed/rejected/failed/superseded/cancelled/unresolved
don't count as real outcomes) — from pending_actions, filtered to the same store + date window
as the tree below, on execution date (falls back to creation date for legacy rows with no execution
timestamp on file). Currencies are never summed together or converted — no trustworthy FX rate is available
here, so a wrong blended number would be worse than three separate ones.
Approximation: ASKS_REFUND has three real sub-paths depending on case facts not stored per case (refund reason known? shipped yet?). Every ASKS_REFUND case here is attributed to the "we have not asked why yet" starting context — exact for a case's first-ever ASKS_REFUND message, approximate for one reached deeper into a thread. Every other node's count is an exact tally of 0 classified cases in the current window walking cs_policy.decide()'s real ladder for their label.
fires from ANY rung
fires from ANY rung
applies AFTER any money action
applies for ANY label
message187
→ 1 of 17 labels0
15 labels0
2 labels0