Just Grade Metrics — AI Call Quality Assurance
Built for a client · live SaaS · justgrademetrics.com
Delivered — measured against production, isolation tested by cross-tenant reads
The problem
Contact centres record every call, then score one or two per cent of them by hand.
The sample is too small to be representative, scoring drifts between reviewers, and when an agent disputes a mark there is rarely anything to point at.
How it runs
-
Upload and queue
01 / 05
A recording is chunked and handed to a PostgreSQL job queue with claim, retry and dead-letter semantics — each stage a row.
-
Transcribe
02 / 05
Each chunk is transcribed and the transcript assembled with speakers attributed: exactly from dual-channel audio, inferred from mono.
-
Grade
03 / 05
The call is graded against the tenant’s own scorecard, and every score must quote the transcript.
-
Check the quote
04 / 05
A validator confirms each quote appears verbatim; if it does not, the call is held back and routed to a person.
quote not found → human review
-
Publish by role
05 / 05
Scores appear on four role-based surfaces; an agent sees their own calls and can contest a grade — never a colleague’s.
The guards, and what each one prevents
HoverTap a card to read what it prevents.
- No evidence, no score
A QA score a supervisor cannot trace to something someone actually said is worthless in a dispute. The check holds back roughly a third of real uploads — that is it working.
- Uncertainty shrinks the score
When speaker attribution on a mono recording is not confident, criteria that depend on who spoke are marked not applicable rather than guessed.
- PostgreSQL enforces isolation
Row-level security on 31 tables, so an agent querying a colleague’s call is refused by the database, not filtered by the interface — tested by attempting cross-tenant reads.
- The model’s key is never on the web server
All model access lives in edge functions, so compromising the web server exposes no spend-capable credential.
- A published scorecard is frozen, prompt included
A score disputed months later can be answered with the exact instructions that were in force at the time.
- A human override keeps the original
Both scores are retained. The gap between them is the only measure of whether the model can be trusted.
Limits, stated plainly
- Just Grade Metrics is a client’s product, built under contract from the first commit. The engineering is mine; the product is not.
- About a third of uploads go to a person rather than straight to a score. Budget for reviewers, not full automation on day one.
- Mono recordings are weaker than dual-channel: speaker attribution is inferred, and criteria that depend on who spoke may come back not applicable.
Built with
- Next.js
- Supabase
- PostgreSQL
- TypeScript
- OpenAI