Loading Actuals…
actuals
Sign-in unavailable
{{ doorUnavailableBody }}
Actuals
Reading your account. Nothing is drawn until we know whose dashboard this is — showing you something first and swapping it out afterwards would be a lie told for a second and a half.
actuals {{ subjectLine }}
{{ ribbonKicker }} {{ ribbonBody }}
actuals
Actuals
{{ shellWaitBody }}
{{ setupKicker }}

{{ setupTitle }}

{{ setupLead }}

Your account could not be read
{{ runsErrorBody }}
Report not loaded

{{ errorTitle }}

{{ errorDetail }}

{{ l.text }}

A report that does not validate is not rendered at all. A half-drawn dashboard is a wrong dashboard, and we would rather show you this.

{{ theaterKicker }}

{{ theaterTitle }}

{{ theaterMeta }}

{{ theaterFraming }}

This run stopped
{{ theaterError }}
{{ theaterFailedAdvice }}
{{ retryErr }}
Open guided setup →
Stages
{{ st.label }} {{ st.statusLabel }}
{{ st.blurb }}
{{ st.note }}
What the engine has established
{{ t.label }}
{{ t.value }}
{{ t.note }}
{{ b.label }} {{ b.value }}
{{ b.note }}
Queues seen so far
{{ c.name }}
{{ queueChipsNote }}
{{ theaterReassurance }}

Connect your data

Nothing is read until you hand us something to read. Give us an export and the engine follows every claimed resolution through to whatever happened next.

Path one · right here
{{ dropzoneTitle }}
{{ dropzoneBody }}
or drop it in this box
Path two · we do it
Hand us a read-only Zendesk token
Ten minutes of setup, the DPA, and your cost figures. We pull the export ourselves and you never touch a file.
Raw export data
{{ dataPromptName }} is source data, not a finished report. The engine reads it, follows every claimed resolution, and produces the report.
{{ dataPromptErr }}

What happens next

{{ st.n }}
{{ st.title }}
{{ st.body }}

Every run on this account

{{ runsStatus }}
{{ r.state }} {{ r.label }} {{ r.date }} {{ r.provenance }} · on screen
{{ r.note }}
{{ r.facts }}
No scans have run on this account yet. Nothing is read until you hand us a source and queue one — the box above is the shortest way.
The example is a calibrated simulation, labelled as one wherever it appears. It is never loaded for you — you have to ask for it, and the ribbon at the top of the page says so for as long as it is up.
{{ subStatusLabel }} {{ subTestMark }}
{{ subOffer }}
Audit report

{{ tenant }}

{{ periodLine }}
Claimed by {{ vendorName }}
{{ claimedPct }}
{{ claimedNote }}
Durable · {{ windowLabel }}
{{ durablePct }}
{{ durableCaption }}
Human baseline
{{ humanPct }}
same queues, same period, measured identically
Exposure · annual
{{ exposureRange }}
excess repeat contacts and fees paid on resolutions that did not hold

Queues

Return rate is the share of AI-closed work where the same customer came back with the same issue inside {{ windowLabel }}. The human column is the same measurement on work your own people closed.

Contact reason Tier Tickets AI returns Human Excess / yr Recommendation
{{ q.contact_reason }}
{{ q.note }}
{{ q.tier }} {{ q.tickets }} {{ q.ai }} {{ q.human }} {{ q.excess }} {{ q.pull_back }}
{{ totCountLabel }} {{ totAi }} {{ totHuman }} {{ totExcess }} {{ pullBackSummary }}
Routing recommendation
{{ routingTitle }}
Export pull-back plan
{{ b.title }}
{{ b.names }}
{{ b.body }}

Method

  1. {{ m.text }}
{{ provenanceNote }}

Limitations

{{ l.name }}
{{ l.body }}
Evidence

Every match, and what it rests on.

The appendix is the product. If a match is wrong, flag it — flagged rows leave the durable count and assemble into a corrections file you can hand to anyone, including us.

{{ flagCount }}
Queue
Verdict
{{ e.claim_ticket_id }} {{ e.arrow }} {{ e.return_label }}
{{ c.kind }} {{ c.value }}
{{ e.queue }}{{ e.channel }}{{ e.gapLabel }}
{{ e.verdictLabel }}

{{ e.rationale }}

{{ evidenceFooter }}
Monitor · weekly runs

Eight weeks of durable rate.

A one-off audit tells you where you stood. This tells you whether the routing changes held. Every point is a full re-read, not a sample.

Latest run
{{ latestDurable }}
{{ latestDelta }}
No history in this report
Trends need at least two runs.
This report carries no history[], so there is nothing to chart. The first run sets the baseline; from the second onward the durable rate and excess cost appear here, per queue.
Durable rate · {{ windowLabel }} {{ durableScaleLabel }}
{{ t.value }}
{{ t.label }}
Excess cost · annualised {{ costScaleLabel }}
{{ t.value }}
{{ t.label }}

Per queue

Contact reason 8-week return rate Now Change
{{ q.name }}
{{ q.now }} {{ q.change }}
Threshold alert
Notify me if the durable rate drops below
%
{{ thresholdNote }}
Alerts go to the two addresses on the account and nowhere else. We do not alert your vendor.
Weekly digest · preview Mondays, 07:00 local
FROM Actuals <runs@actuals.co>
SUBJECT {{ digestSubject }}
Durable
{{ latestDurable }}
Excess / yr
{{ latestCost }}
{{ digestBody }}
{{ digestFooter }}
Renewal

You are paying claimed rates for actual performance.

Build rebuttal packet →
Contract on file
Vendor
{{ contractVendor }}
{{ contractProduct }}
Annual value
{{ contractAcv }}
Per resolution
{{ contractFee }}
Renews {{ renewalDateLabel }}
{{ daysToRenewal }} days out
{{ noticeNote }}
These terms are account-level and come from the contract on file, not from the report you loaded. The per-resolution figures beside them combine the two, so read them as an illustration of the maths rather than as this run's finding.
The bill against the work that held
Paid per claimed resolution
{{ perClaimed }}
{{ claimedCount }} resolutions billed
Paid per resolution that held
{{ perDurable }}
{{ durableCount }} survived {{ windowLabel }}
This year's fee that bought nothing durable
{{ feeGap }}
before the cost of handling the returns
{{ renewalArgument }}
Three asks that survive a vendor call
01
Bill on durable resolutions, measured on the {{ windowAdj }} window, not on closures. Their own logs support it.
02
Credit the four pulled-back queues for the audit period, or reprice the contract at the durable rate.
03
Report same-issue returns across threads in their own dashboard, monthly, with the same matching rules we publish.
Settings

Account

What is on screen
{{ sourceLabel }}
{{ sourceDetail }}
{{ sourceReadLine }}
Open setup
A report you open from a file is held in this browser only — it is never uploaded, and forgetting it hands the dashboard back to your account. Your own reports are streamed from the account on every load and are never written to this browser. A live connection to your systems is configured in setup, not here.
Retention
Raw tickets are deleted 90 days after your report is delivered. Matched pairs, evidence, and the report itself survive, because you need them at renewal.
Ninety days is flat for every account — there is no dial here, because there is nothing behind one yet. A different window is arranged by asking: {{ contactEmail }}.
Appearance
Report ink
The palette you pick here is the ink your report and its printed or PDF export carry. Paper and text print monochrome; the accent — deltas, verdicts, corrections — prints in your palette.
Mode
Subscription {{ subTestMark }}
{{ subStatusLabel }}
{{ subDetail }}
{{ subOffer }}
{{ subMeta }}
{{ subErrorTitle }}
{{ subErrorBody }}
{{ subFootnote }}
Delete everything
{{ deleteCopy }}
{{ deleteRemains }}
{{ deleteErrorTitle }}
{{ deleteErrorBody }}
{{ deleteMailCta }}
← Back to renewal
Ready to forward
Rebuttal packet · prepared for {{ contractVendor }}

Independent measurement of AI resolutions, {{ tenant }}

{{ preparedLine }}
Claimed
{{ claimedPct }}
Durable · {{ windowLabel }}
{{ durablePct }}
Human baseline
{{ humanPct }}
Exposure / yr
{{ exposureRange }}

What we measured

  1. {{ m.text }}

Evidence, first six of {{ evidenceTotal }}

{{ e.claim_ticket_id }} {{ e.arrow }} {{ e.return_label }}
{{ c.value }}
{{ e.rationale }}

What this means for the contract

{{ renewalArgument }} At {{ contractAcv }} a year and {{ contractFee }} per resolution, the effective price of a resolution that held is {{ perDurable }} against a billed {{ perClaimed }}. Renewal is {{ daysToRenewal }} days out; notice is due {{ noticeDateLabel }}.

Limitations we are stating for you

{{ l.name }}
{{ l.body }}
Actuals takes no money from any vendor it measures and did not contact {{ contractVendor }} in preparing this packet. Every match above can be disputed; disputed rows leave the count while they are reviewed.
← Back to report
Pull-back plan
{{ tenant }} · {{ generatedShort }}

Work top to bottom with the vendor console open. Each queue lists the change, who makes it, and what to watch in the week after. Tick as you go; the next weekly run will tell you whether it held.

{{ p.contact_reason }}
{{ p.pull_back }}
Change
{{ p.change }}
Owner
{{ p.owner }}
Watch for
{{ p.watch }}
At stake / yr
{{ p.excess }}
{{ planFooter }}
{{ footerProvenance }}
{{ t.kicker }}
{{ t.body }}
{{ l.text }}
{{ t.cta }}