Scorecards & SOPs

Your framework, not ours

The AI grades to your scorecard and your written procedure. Nothing here asks you to adopt somebody else's definition of a good call.

scorecard · collections-inbound100%
Recording disclosure25%ZTP
Identity verification20%Fatal
Problem acknowledged15%Non-Fatal
Correct resolution offered20%Fatal
Closing & next steps12%Non-Fatal
Tone & pace8%Non-Fatal
3
severities: Non-Fatal, Fatal and ZTP. The fatal override runs on our side, not on the model remembering.
01
Structure

Groups, sub-parameters, weights

A scorecard is a set of groups, each holding the sub-parameters you actually score. Every one carries a weight, so the number that comes out reflects what your business cares about rather than an even split across whatever happened to be listed.

Weights conventionally sum to 100 so the score reads as a percentage, and the builder checks that for you before you commit a set that quietly totals 94.

You can run a different scorecard per campaign , which is the difference between a BPO being able to use one platform for eight clients and not.

qa-parameter.schema.ts

02
Severity

Some failures should not be averaged away

If an agent gives incorrect financial information, it does not matter that the greeting was warm and the call was efficient. A weighted average that absorbs that into a respectable-looking 82% is how QA scores stop being useful to anybody.

So parameters carry a type. Non-Fatal contributes its weight. Fatal forces the whole call to zero when it fails. ZTP marks the absolutes: the disclosures and consents with no acceptable threshold at all.

The override runs on our side after the model returns, rather than being an instruction the model is asked to remember. A rule that matters this much should not depend on a prompt being followed.

ai.service.ts · applied server-side after scoring

scoring · fatal override
Weighted average84
Identity verification (Fatal)31
Overall0

A Fatal parameter below 50 forces the call to zero. Applied on the server after scoring, not left to the model to remember.

03
SOPs

Graded against your process, not generic best practice

Most teams have written procedures. Far fewer have QA that grades against them, so scoring drifts toward generic call-handling advice, and agents get marked down for following the process they were told to follow.

Upload your SOPs once and attach one to an audit or a whole campaign. The procedure goes into the scoring prompt alongside the scorecard, so “did the agent do the right thing” is answered against your definition of the right thing.

The SOP is resolved on the server from an id: the browser never supplies prompt text, which would be an open injection channel into every audit your workspace runs.

sopId → SopService.getPromptText → scoring prompt

collections-sop.md → audit prompt

## Before discussing the account

1. State your name and the company you represent.

2. Read the recording disclosure in full.

3. Verify identity using two data points.

## If the customer disputes the balance

4. Do not restate the amount. Log the dispute and transfer.

Limits

Where scorecards stop

CriterionQXAI
Custom parameters, groups and weightsYesYesYours to define, with no fixed taxonomy.
Fatal / Non-Fatal / ZTP severityYesYesFatal override applied server-side.
A different scorecard per campaignYesYes
Starter templatesYesYesIncluding an eight-group standard call-centre set.
Your SOP in the scoring promptYesYesPer audit or per campaign.
Scorecard version historyNoNoEditing a set changes it. There is no revision log, so a score from last quarter cannot be traced to the scorecard as it stood then.
Import an existing scorecard fileVia the builderVia the builderThe browser tool exports an importable set, but there is no upload-your-spreadsheet path.
SOPs as PDF or WordText onlyText onlyThe file is stored, but only readable text reaches the prompt. A PDF will upload and then be ignored. Use Markdown or plain text.

Build your scorecard now

No account needed. Set your parameters and weights in the browser, then export a set you can import.