The Ninety-Eight Per Cent That Had to Show Its Working
A client’s contract manager reads “98% within target” in the quarterly pack and asks to see the working: every ticket, every timestamp, the rule each one was held to, every pause, and proof nobody nudged a priority to bring a late one inside. What the helpdesk records, what nobody can quietly change, and where the trail needs help.
The email arrives on the second Tuesday of the month, three days after the quarterly service review. The client’s contract manager has read the pack. The headline says the desk resolved 98% of tickets within target, and she would like to see how. Specifically: every ticket in the quarter with its opening, first-reply and resolution times; which service-level rule each ticket was held to; every pause on the clock and why; every reassignment and escalation; every ticket that was reopened; and written confirmation that nobody changed a timestamp, a priority or a category after the fact to bring a late ticket inside target. She would like it by Friday, because the service credit calculation depends on it.
Nothing in that list is unreasonable. A service-level figure is a claim about hundreds of individual promises, and the only way to test a claim like that is to go back to the promises. What turns the answer from awkward to routine is whether the desk’s system kept the evidence as a by-product of doing the work, or whether someone now has to reconstruct it from memory, inboxes and a spreadsheet that was last touched in August.
This post walks through that request line by line against what AWRA’s helpdesk actually records. If you want the basics first — why response and resolution are separate promises, and why a pause is what makes them fair — start with SLAs That Mean Something and Two Clocks, One Promise. Here the question is narrower and harder: when the figure is challenged, what makes it evidence rather than a number on a dashboard?
First, which ninety-eight per cent?
Before anyone exports a single ticket, settle the definition, because the system offers two figures that measure different things and a reviewer who receives the wrong one will find a discrepancy within the hour.
| Helpdesk dashboard | SLA & CSAT report | |
|---|---|---|
| Which tickets | Resolved and closed tickets only | Every ticket opened in the date range you choose |
| Which period | All time — the dashboard has no date filter | The range you set, by the date each ticket was opened |
| Which promise | Resolution only | First response and resolution, counted separately |
| What counts as a miss | Resolved after its due time | Answered or resolved after its due time, or still open past it |
| Cancelled tickets | Left out | Counted, and a cancelled ticket past its due time counts as a miss |
| Shape | One percentage | One row per category, with CSV and PDF export |
The dashboard figure is a health gauge for the people running the desk. The report is the one to put in a contract pack, because it is bounded by a period, it names its definition, and it counts tickets that have not finished yet — a quarter in which twenty overdue tickets are still open has not been 98% within target, however good the resolved ones look. If last quarter’s pack quoted the dashboard, say so in your reply and restate the figure from the report. Correcting your own definition before the client finds the difference is the cheapest credibility you will ever buy.
Cancelled is where a figure quietly improves
On the dashboard, a ticket that was cancelled simply leaves the calculation, so cancelling an overdue ticket removes a miss. The report keeps it. Whichever figure you quote, list the quarter’s cancelled tickets separately with who cancelled each one — a reviewer will ask, and the answer is much better volunteered than extracted.
What every ticket carries without anyone typing it
The useful property of a helpdesk record is that most of what a reviewer wants is written by the system at the moment it happens, not entered by an agent afterwards.
- Opened. Stamped when the ticket is created, whether it came from the app, the public form, email or WhatsApp, and given a sequential reference.
- First reply. Stamped by the first reply the requester can see. An internal note does not stop the clock, because the requester has still heard nothing — the reasoning is in Making the First Real Reply the One That Counts.
- Resolved and closed. Stamped when the status moves, by the system rather than by a field on a form.
- Both due times. Calculated from the moment the ticket was opened, on the category’s own clock — real hours or working hours.
- The rule it was held to, shown on the ticket as, for example, “Urgent · Network category”, together with the promised minutes for response and resolution. Those minutes are kept on the ticket itself, so if the targets are tightened next quarter, this quarter’s tickets still show the promise they were actually made under.
- Reopens. Each time a resolved or closed ticket goes back into the queue, its reopen count rises and its resolution stamp is cleared.
- The conversation, every reply and note with its author and time, including the system notes left by escalation rules.
Every change made through the web screens is also written to the audit log: who acted, when, from which address, through which screen, and on which ticket. Audit entries cannot be deleted from anywhere in the product, and each is signed over the one before it, so an edited or missing entry shows up when the chain is verified — the argument for that is in An Audit Trail Nobody Can Delete.
What nobody can quietly change
The contract manager’s last request — confirm nobody moved anything — is really a question about which edits are possible at all. Here is the honest inventory, read from the code rather than from the brochure.
-
Timestamps are not form fields
No screen and no API endpoint accepts an opening, first-reply, resolution or due time. The edit form takes a subject, priority, category, department and tags. The times are written by the system as the work happens, and there is nowhere to type over them.
-
A reopen keeps the original promise
Reopening a ticket clears its resolution stamp but leaves its due time where it was. When it is resolved again, it is measured against the promise made when it was first opened — a ticket closed on time, reopened by an unhappy customer and fixed a week later counts as late.
-
A pause cannot rescue a ticket that was already late
Waiting on the requester stops the resolution clock and gives back exactly the time that was left when it stopped. A ticket already past due when the agent asked their question gets nothing back, so moving it into waiting does not erase a miss.
-
Priority on a finished ticket is fixed for the figure
Changing the priority of a resolved or closed ticket recalculates nothing. Re-dating a finished ticket would rewrite whether it met its target, so the recalculation runs only while the ticket is live.
-
Escalation only raises priority
An escalation rule can make a ticket more urgent, never less, and every one that fires leaves a system note on the ticket saying what triggered it and what it did, plus an audit entry.
-
The conversation is append-only
The helpdesk screens offer no way to edit or delete a reply or a note once posted, so the thread a reviewer reads is the thread the requester lived through.
A service-level figure is only as strong as the weakest edit someone could have made to the tickets underneath it. The question is not whether anyone did — it is whether you can show they could not, or show when they did.
Where the trail is thin, and how to cover it this quarter
Four things deserve candour, because the contract manager will find them if you do not, and each one has a practical workaround for this Friday as well as a proper fix.
Lowering the priority of a live ticket moves its due time. When the priority changes on an open ticket, both due times are recalculated from the moment it was opened, under the new rule. Usually this is triage doing its job — an “urgent” that turns out to be a password reset should be held to the password-reset promise. But it is also, mechanically, the move that turns an overdue urgent ticket into an on-time normal one. The audit log records that the ticket was edited, by whom and when; it records the edit, not the before and after values. For this quarter, pull every helpdesk edit entry in the period and compare it against the tickets whose current priority is lower than their opening one would suggest — a short list, in practice, and one worth explaining before you are asked.
Recategorising a finished ticket re-dates it. The finished-ticket lock described above covers priority. A change of category runs the full rule again, including the due times, whether or not the ticket is still open. If anyone tidied up categories on old tickets during the quarter, those tickets’ due times now reflect the new category. The audit log shows each of those edits with its date; any edit to a ticket after its resolution time is worth listing in the pack with its reason.
Pauses are recorded as they happen, not kept as a history. While a ticket is waiting on the requester, it carries the moment the pause began, and the status itself is the reason. Once the requester replies — which resumes the clock automatically, whether they answer in the portal or by email — the due time moves and the pause start is cleared. To list every pause for a ticket, read the conversation alongside the audit log’s status-change entries for it. That is reconstruction rather than retrieval, and for a large quarter it is the slowest part of the job.
Changes made in the mobile app reach the ticket but not yet the audit log. A status change or reassignment from the app updates the ticket, notifies the right people and stamps the right times — but the audit entry that the web screen would write is not written. Escalation rules record themselves either way. If your agents work mostly from phones, tell the reviewer which channel the desk uses, and treat the audit log as covering web activity only for this period.
Where each piece of evidence lives today
| The reviewer asks for | On the ticket | In the audit log | In an export |
|---|---|---|---|
| Opened, first-reply and resolution times | Yes | Partly — configurable by you | Yes |
| The rule and the promised minutes | Yes | No | No |
| Due times | Yes | No | No |
| Each pause and its reason | Partly — configurable by you | Partly — configurable by you | No |
| Escalations and what they did | Yes | Yes | No |
| Manual reassignments | Partly — configurable by you | Partly — configurable by you | No |
| Reopens | Yes | Partly — configurable by you | Yes |
| Edits to priority or category | Partly — configurable by you | Partly — configurable by you | No |
Built and maintained Configurable by you, not maintained by us Not built
Part means the fact is recorded but not in the form the reviewer asked for — the current value without its history, or who and when without the before and after.
Building the pack by Friday
Here is the order that gets a defensible answer out of the system with the least hand-work.
The SLA evidence pack
- State the definition in one sentence: which tickets, which period, which promise, and what counts as a miss.
- Run Reports → Helpdesk → SLA & CSAT for the quarter and export it as PDF for the pack and CSV for your own checking.
- Build a per-ticket list in the report builder from the Support Tickets dataset — reference, priority, status, opened, first responded, resolved, closed and reopen count — filtered to the quarter.
- For the misses, the near-misses and any sample the reviewer picks, add the due times and the rule from each ticket page, where they sit beside the timestamps.
- Export the audit log for the quarter filtered to the Helpdesk module, verify the chain from the same screen, and keep both the file and the verification result.
- From that export, list every edit to a ticket made after its resolution time, and every priority change on a ticket that was overdue at the time, each with a sentence of explanation.
- List cancelled tickets separately with who cancelled them and why.
- Say which channels the agents used, so the reviewer knows what the audit log covers.
Exporting the audit log needs the settings-management permission, which is broader than most reviewers should hold; the reasoning and the workaround are in The Auditor Who Has to Be an Administrator. For a client review, export it yourself and hand over the file along with the verification result, rather than granting access.
Questions a contract manager will ask about your SLA figure
Which tickets are in the denominator?
Weak answer
All the resolved ones.
What a defensible one looks like
Every ticket opened in the period, including ones still open and ones cancelled, with the cancelled ones listed by name.
Which promise was each ticket held to?
Weak answer
Our standard SLA.
What a defensible one looks like
A named rule per ticket and the promised minutes as they stood when the ticket was dated, not today’s targets applied backwards.
When the clock paused, who paused it and why?
Weak answer
We pause when waiting on the customer.
What a defensible one looks like
The status change, its time and its author for each pause, and the reply that asked the requester the question.
Could anyone have moved a due time?
Weak answer
No.
What a defensible one looks like
Due times are calculated, never typed; here is every edit that could recalculate one during the period, and why each was made.
What happens to a ticket that is reopened?
Weak answer
It starts again.
What a defensible one looks like
It keeps its original promise, so a late second resolution counts as a miss.
Our take
A service-level figure becomes evidence when three things are true: the times underneath it were written by the system rather than typed, the promise each ticket was held to is kept on the ticket, and every edit that could have moved a due time is on a record nobody can trim. AWRA’s helpdesk gives you the first two outright and most of the third. The honest pack names its definition, lists the edits and cancellations before being asked, and says plainly which channel the audit log covers. A client who receives that rarely asks a second question.
What AWRA OpsHub does today
- System-stamped times for opening, first reply, resolution and closure, with no form or API field that accepts them.
- Due times calculated from opening on each category’s clock, real hours or working hours, with the rule and the promised minutes kept on every ticket.
- Target changes that apply forward only, so a quarter’s tickets keep the promise they were made under.
- A reopen that keeps the original promise, measured against the first due time, with a reopen count on the ticket.
- A pause that gives back only the time left, and gives none to a ticket already overdue.
- Priority recalculation only on live tickets, and escalation rules that only raise priority, each leaving a system note and an audit entry.
- An append-only conversation and a permanent, chained audit log of every web change to a ticket, exportable and verifiable.
- The SLA & CSAT report by period and category, with CSV and PDF export, and a per-ticket list from the report builder.
More we can add to your workspace
- A before-and-after history on every ticket for priority, category, status and assignee, shown on the ticket and carried in each audit entry.
- A pause log per ticket, listing each pause with its start, end, author, reason and the time it gave back.
- The finished-ticket lock extended to category changes, so recategorising a resolved ticket keeps its due times.
- Audit entries for every ticket action taken in the mobile app, matching the web screens.
- A per-ticket SLA evidence export with due times, rule, promised minutes, paused time and met or missed on each row.
- A required reason when a priority is lowered on an overdue ticket, written to the ticket and the audit log.
Where we point you to a specialist
- We do not decide whether a pause was justified under your contract. Whether waiting on a customer’s reply stops the clock is a term you agreed with them; the system records the pause, and the contract decides whether it counts.
- We do not certify your service-level figure to a client. The evidence is yours to present and theirs to accept.
The history, the pause log and the evidence export are one build seen from three sides: the record of what changed, the record of when the clock stopped, and the file a reviewer receives.
Anything above that you need, we can build for you
Everything listed above as something we can add describes what ships in the standard product today — it is a starting point, not a limit on what AWRA OpsHub can do for your organisation. Kenya's eTIMS integration and its maintained payroll engine are both in the product because clients needed them and commissioned them; neither appeared by itself, and the same door is open for whatever you just read about. One qualification so this is worth what it claims: a small number of things on this blog we deliberately leave to a specialist rather than build — a statutory ledger we will not sign our name to, a rule that would decide a tax question for you, a clinical or member-funds record that belongs in a regulated system — and where that is true the post says so in those words. Everything else is a scope, a timeline and a price.
The operational work, which is what most commissions actually are
An extra approval stage in a chain that does not match the standard one, a custom field set on employees or assets that only your sector needs, an expiry that has to block an order rather than send an email, a report your board asks for in a shape nothing produces, or a scanner or weighbridge feeding the goods-in door. These are the commissions we are asked for most often and the smallest ones we quote — and unlike a revenue-authority pipeline, none of them waits on a regulator.
The module-shaped additions, which are the ones readers ask for most often
A price list with real discount authority, a customer-facing quotation that expires, a bill of materials or recipe costing, a staff advance that is issued, acquitted and chased, a member or unit ledger, a matching rule that holds a payment. Each of these is a build rather than a setting, and each has been quoted before — a bigger piece of work than a custom field, with a written spec and a date instead of a roadmap slide.
The report, document or pack nothing currently produces
The board pack in the shape your board actually asks for, a donor or funder layout, an invoice or receipt template carrying what your regulator or your customer expects, a dataset the report builder cannot reach yet. Usually the fastest thing on this list to deliver, because the data is already in the system.
Systems, rails and hardware you already run
The accounting package, CRM, online store, core banking or custom database you intend to keep — connected through our API so a fact is entered once and appears everywhere it is needed. Plus the physical edge: a scanner, a scale, a weighbridge or a till peripheral feeding the door it belongs to.
How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product. Nothing here waits on a regulator or a published specification, which is why operational builds are the ones we quote fastest. Tell us the requirement that would otherwise rule us out — that is a better first conversation than a demo.
Tell us what your operation needsSee how the SLA engine dates every ticket
Rules by category and priority, real-hour or working-hour clocks, pauses that give back only the time left, and breach and escalation alerts on every ticket.
Explore the SLA engineFrequently asked questions
Can an agent edit a ticket’s response or resolution time to meet an SLA?
No. Opening, first-reply, resolution and closure times are written by the system when the event happens, and neither the edit form nor the API accepts them. Due times are calculated from the moment the ticket was opened under the rule it was held to.
Does changing a ticket’s priority change its SLA due date?
On an open ticket, yes: both due times are recalculated from the opening time under the rule for the new priority. An edit made from the web screens is written to the audit log with who made it and when, though not the old and new values. On a resolved or closed ticket a priority change recalculates nothing, so it cannot alter whether the ticket met its target.
Does reopening a ticket reset the SLA clock?
No. A reopen clears the resolution time and adds one to the reopen count, but the due time stays where it was. When the ticket is resolved again it is measured against its original promise.
How are SLA pauses recorded?
Moving a ticket to waiting on the requester stops the resolution clock and records when the pause began. When the requester replies, the clock resumes automatically with exactly the time that was left. A ticket that was already overdue when it was paused gets no time back.
Why do the helpdesk dashboard and the SLA report show different compliance figures?
They measure different things. The dashboard counts resolved and closed tickets across all time against their resolution target. The SLA and CSAT report counts every ticket opened in a chosen period, by category, for both first response and resolution, and includes tickets still open past their due time. Use the report for a contract review.
What should I give a client who disputes our SLA figure?
The SLA and CSAT report for the period with its definition stated, a per-ticket list with timestamps, the due times and rule for the tickets they sample, the verified audit log export for the helpdesk, and separate lists of cancelled tickets and of edits made to tickets after they were resolved.