The client
A lender whose customers mostly meet it on the phone
A consumer lender and retail bank running a large contact centre in two languages. Loan, repayment and service questions all come through it, so the quality of those calls is the quality of the bank, as most customers experience it.
It is also where regulated conversations happen. A missed disclosure on a loan call is a compliance problem, not just a service one.
The challenge
A QA team that could only hear a sliver of the calls
Quality assurance meant reviewers listening to recordings and scoring them by hand. At contact-centre volumes, that covers a small sample. Everything else — the script breaches, the frustrated customers, the agent who needed help — went unheard.
Before
Scores also depended on who did the listening, and coaching depended on which calls happened to be picked. Agents could not tell a fair review from an unlucky one.
Constraints
What we had to design around
- LanguageCustomers call in either of two languages. Transcription had to hold up in both, on real contact-centre audio, or every score built on top of it would be wrong.
- VolumeScoring every call means scoring at peak hour too. The system had to keep up with a high-load contact centre in real time and after the call, not fall behind and catch up overnight.
- OwnershipThe QA team already knew what a good call sounds like. Their scorecards, required phrases and criteria had to stay theirs to change — not criteria frozen into a model.
- RegulationA lender’s calls carry personal and payment data. The system had to meet ISO, GDPR and PCI DSS requirements, keep an audit trail on every score, and run on-premise or in the cloud.
- FitScores are only useful where people already work. Results had to reach the CRM, the data warehouse and workforce management, not sit in a new tool nobody opens.
Our approach
Transcribe everything, then let agents do the listening
A better sample would still be a sample. The only way to see every compliance gap is to score every call, and the only way to afford that is to stop needing a person to listen first.
So we built from the audio up. A speech engine that works in both languages comes first, because every score sits on its transcript. Separate agents then judge separate things — how the call felt, whether the script was followed — against criteria the QA team sets. A supervisor agent pulls it together into something a team lead can coach from.
The solution
Five layers, from a recording to a coaching note
- Speech engine — Speech-to-text models for both languages, live and post-call, at 80%+ accuracy. Speaker separation tells the agent from the customer, and acoustic features are kept alongside the words.
- Quality analysis agent — Reads emotion and sentiment through the call and measures conversation flow and dynamics, so a call that went wrong is visible even when the script was followed.
- Compliance scoring agent — Checks script adherence and required phrases against the QA team’s own templates and criteria. The same scorecard is applied the same way to every call, which removes reviewer-to-reviewer variation.
- Supervisor agent — Built on Agno, an audio-processing controller runs the analysis loop and a supervisor agent turns the results into a QA report with coaching recommendations for the agent and their team lead.
- Integration and analytics — REST APIs and MCP servers push scores into the CRM, data warehouse and workforce management systems. Real-time dashboards show KPIs, trends, anomalies and the calls that need a person.

Responsible by design
Four rules for scoring people’s conversations
Configure
The QA team owns the scorecard.
Criteria, templates and required phrases are settings, not code. When a script changes, QA changes the scorecard the same day.
Evidence
Every score leaves an audit trail.
Each score and compliance violation is logged with the transcript behind it, so a reviewer can check the reasoning rather than trust a number.
Coach
Scores exist to improve calls, not to rank people.
The supervisor agent writes coaching recommendations, not just a number. Team leads get the pattern across an agent’s calls, not one bad afternoon.
Protect
Call data is treated as regulated data.
ISO, GDPR and PCI DSS controls, an audit trail on every score and violation, and a choice of on-premise or cloud deployment.
The third rule shapes the rest. Scoring every call could easily become surveillance. Built around coaching, it becomes the fairest review an agent has had — every call counts, not the unlucky one.
Results
What changed for the contact centre
- 100% of calls scored automatically, replacing a manual QA sample of 2–3% — every customer interaction now gets the same scorecard.
- 70% less QA processing time — reviewers spend their hours on the calls the system flags, not listening for them.
- 90% improvement in compliance coverage, with script and phrase checks and an audit trail on every call.
- 80%+ speech-to-text accuracy in both languages, live and post-call, with speaker separation.
- Automated coaching recommendations for every agent, built from all of their calls — and more consistent service quality for customers as a result.
QA stopped being a lottery of which calls got heard and became a full picture of how the contact centre actually sounds.
Beyond the numbers
What else changes
Every call becomes data the rest of the bank can use. Scores, sentiment and compliance flags land in the data warehouse next to the customer record, so trends — a product that keeps causing complaints, a script line customers trip over — show up in analytics instead of anecdotes.
And because the scorecard is configuration, a new product or a new regulation is a change to criteria, not a new project.
If your QA team hears a fraction of your calls
The first question is what a good call means to you. That is answerable from your current scorecard and a sample of recordings, before anything gets built.