Most angry customers stay. Find the ones who won't.
Paste a message and see who is about to leave, how fast to reply, and what it is about. Everything runs on your device.
Ctrl or ⌘ + Enter to run. Nothing is uploaded.
Results appear here.
Rank a whole inbox
Upload a CSV with a text column, or try the demo set. It is scored in your browser.
Measured on held-out messages the model never saw.
If you can only reply to some
Share of customers who really were leaving that you reach.
Churn intent vs simple rules
Spotting the people about to leave.
The sarcasm test
“Great job, another outage. Impressive.” Praise, or not?
All four tasks
Same held-out set, same split.
The browser engine and the Python model agree on — of held-out predictions, across all four tasks.
Read this before you trust a number
- The data is synthetic. 3,600 messages written from templates modelled on public South African telecom complaint themes. Not scraped from Hellopeter, X or any customer. Real accuracy will be lower.
- Labels are generated, not human-annotated. That is why precision and recall can be reported, and why a pilot on real labelled messages is the first next step.
- Leakage is controlled. The split is made on unique normalised text, so no message appears in both training and testing.
- Provider comparisons are not findings. Provider was assigned at random, so differences between operators are noise.
- English-dominant. A few code-switched examples only; isiZulu, isiXhosa and Afrikaans coverage is minimal.
- It triages; it does not judge. It ranks who a human should reply to first.
Built by Tshepiso Freddy Thosago · CAPACITI × Clickatell AI Bootcamp, Week 3 · source and notebook