Taxonomy
The same live decision tree as/playbook, annotated with how many
logged cases actually reached each node. 99 nodes · 94 edges.
2284 cases logged in window: all time
· 1127 not yet classified in this window (last_label is NULL — shown nowhere on the tree, only here) · 485 identified as non-support mail (SPAM_OUTREACH) and EXCLUDED above — toggle below to include — a floor, not a total: some spam is still misclassified as OFF_SCRIPT or unclassified.
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 1157 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
message2,284
→ 1 of 17 labels1,157
15 labels1,157
2 labels0