AI & Automation · Managed Services · Custom Build · Ongoing
Noticing a Client Is Unhappy Before They Tell You
Davinci's own service-quality scoring
The challenge
By the time a client tells you they are unhappy, they have usually been unhappy for a while. The evidence was there all along in how their tickets were written — but nobody reads a quarter of ticket comments looking for tone. Separately, pitching a response correctly depends on knowing whether you are writing to someone comfortable with technology or someone who is not, and technicians were guessing.
Where we came in
Scores like these are worthless if you cannot trust them, so most of the work went into the validation rather than the scoring. Outputs are clamped to valid ranges, labels outside the permitted set are rejected rather than coerced, and every score carries a confidence. We also run the model ourselves on our own worker, because sending every customer comment to a third-party API is a different privacy conversation than we want to have.
What we did
- Scored each end-user comment for sentiment and for technical proficiency as it arrives
- Ran the models on our own PyTorch and Transformers worker rather than sending customer text to an external API
- Rejected invalid labels outright and clamped scores to valid ranges instead of accepting whatever came back
- Attached a confidence value to every score so weak signals can be treated as weak
- Rolled per-comment scores up into a per-client and per-technician state, so a trend is visible rather than a single reading
- Backfilled historical tickets so the trend had history behind it from the start
- Covered the scoring logic with unit tests for clamping, invalid input and serialisation
Where it landed
- Declining client sentiment is visible as a trend rather than discovered at renewal
- Responses can be pitched to the recipient's actual comfort with technology
- Customer comment text is scored on infrastructure we control rather than sent to a third-party service
Technologies
- PyTorch
- Hugging Face Transformers
- Self-Hosted ML Worker
- Schema Validation
- Celery
One of Davinci’s own platforms, built and maintained in-house and in production use running our business. Included so our engineering work can be shown directly rather than described — it is not client delivery.
Back to all projects