Illustrative cost-benefit

Contact-centre automation ROI

Change containment, volume, wages, or build cost. Payback, year-1 ROI, the six scenarios, and the sensitivity tornado recompute from the same formulas as the Python model.

Try a case

Illustrative placeholders. Drag a lever and the scoreboard, payback chart, and tornado update together.

Containment
Share of lookup contacts offered to USSD that finish there.
Share of structured-transaction contacts offered to USSD that finish there.
Low and high scenarios move every containment rate by this amount, clamped to 0–1.
Voice-agent share of lookup absorbs the change so the class still sums to 1.
Volume and labour
Offered contacts in a year.
Minutes. The fully loaded wage applies to this handle time.
Monthly wage before the burden rate.
Investment
Spent in year 1. Payback and year-1 ROI use this as the investment.
Subtracted in the net annual benefit. Triage licence is separate.

Committed inputs

Bot programme, base containment

Pays back inside year 1.

Payback

8.47 months

Year-1 ROI

0.4175

41.75% of build cost.

Year-1 net cash

1,043,640.00

KES (illustrative)

Year-1 cash build-up

Cost per contact
76.5173
Operating saving versus voice
4,143,640.00
Assumed quality value
0.00
Annual licence
600,000.00
Net annual benefit
3,543,640.00
Build cost, spent in year 1
2,500,000.00
Year-1 net cash
1,043,640.00

Payback by scenario

Months to recover build cost from net annual benefit. The mark is 12 months. Select a row to read that case in the scoreboard.

Payback 12 months

Sensitivity tornado

Each bar is year-1 net cash for the bot programme at base containment when that one assumption moves by the relative swing (0.20). The other assumptions stay put. Lookup USSD offer moves against the voice-agent share of that class. Base year-1 net cash is 1,043,640.00 KES (illustrative).

  1. Voice-agent handle time

    Low input 6.4 → 188,262.40High input 9.6 → 1,899,017.60

  2. Annual contacts

    Low input 96000 → 214,912.00High input 144000 → 1,872,368.00

  3. Monthly productive hours

    Low input 112 → 1,997,320.00High input 168 → 407,853.33

  4. Voice-agent monthly wage

    Low input 64000 → 280,696.00High input 96000 → 1,806,584.00

  5. Lookup USSD containment

    Low input 0.56 → 446,648.00High input 0.84 → 1,640,632.00

  6. Bot build cost

    Low input 2000000 → 1,543,640.00High input 3000000 → 543,640.00

  7. Lookup USSD offer share

    Low input 0.64 → 455,864.00High input 0.85 (clamped) → 1,227,320.00

  8. Wage burden rate

    Low input 0.24 → 867,576.00High input 0.36 → 1,219,704.00

  9. Bot annual licence

    Low input 480000 → 1,163,640.00High input 720000 → 923,640.00

  10. Transaction USSD containment

    Low input 0.32 → 958,888.46High input 0.48 → 1,128,391.54

  11. USSD cost per session

    Low input 0.8 → 1,055,145.60High input 1.2 → 1,032,134.40

Year-1 net cash from the low input to the high input Base case

All other assumptions

The demo levers cover containment, volume, the voice-agent wage, and bot build cost. Routing shares, channel charges, triage, demand weights, and the remaining inputs are here. Each one writes the field the model reads.

What the tornado moves
Hours available for contacts. The divisor in the hourly wage.
Added to the monthly wage before dividing by productive hours.
Times sessions per contact for the USSD unit cost.
Programme and other containment
Added to the bot build cost on the triage scenarios.
Added to the bot licence on the triage scenarios.
Each tornado bar moves one assumption by this fraction, up and down.
Probability the contact finishes on this channel.
Probability the contact finishes on this channel.
Probability the contact finishes on this channel.
Probability the contact finishes on this channel.
Probability the contact finishes on this channel.
Probability the contact finishes on this channel.
Probability the contact finishes on this channel.
Other labour
Used for staffed chat. Staffed chat is not in the routing mix.
Predicted emergency contacts pay this unit cost.
Minutes.
Minutes. Telecom per-minute charge is not applied.
Minutes, times the IVR per-minute charge.
Routing shares

Each class sums to 1. Moving USSD, chat bot, or IVR sets the voice-agent share to the residual when that residual stays inside 0–1. Voice agent means the contact is served with no automation attempt.

Lookup

Offer share for this channel.
Offer share for this channel.
Offer share for this channel.
Direct to a voice agent.

Sum 1

Structured transaction

Offer share for this channel.
Offer share for this channel.
Offer share for this channel.
Direct to a voice agent.

Sum 1

Human required

Offer share for this channel.
Offer share for this channel.
Offer share for this channel.
Direct to a voice agent.

Sum 1

Channel charges
Charged on voice-agent and senior-agent handle time.
Times IVR handle time.
Added once per IVR contact.
Same input as the tornado driver.
Times the session cost.
Added to the staffed-chat wage cost.
The whole unstaffed chat-bot unit cost.
Triage assumptions

Precision and recall are assumptions. They have to be able to sit in one confusion matrix. The quality value is reported on its own and is removed in the last scenario.

Assumed share of contacts that are emergencies.
Assumed. Precision must be at least recall times prevalence.
Assumed. A zero precision makes the predicted-positive rate undefined.
Booked only on the triage scenario that includes quality value.
Subtracted in that same quality column.
Demand weights

A weight divided by the sum of the weights is the demand share. The Bitext training count stays at 1,000 for every intent and never enters the arithmetic.

Lookup

Share 0.0900. BILLING.
Share 0.0400. CONSUMPTION.
Share 0.1400. CONSUMPTION.
Share 0.0500. PAYMENT.
Share 0.0300. PAYMENT.
Share 0.0350. SERVICES.
Share 0.0150. SUBSCRIPTION.

Structured transaction

Share 0.0200. CONSUMPTION.
Share 0.1000. PAYMENT.
Share 0.0250. PAYMENT.
Share 0.0150. SERVICES.
Share 0.0200. SERVICES.
Share 0.0100. SERVICES.
Share 0.0450. SUBSCRIPTION.
Share 0.0300. SUBSCRIPTION.

Human required

Share 0.0350. BILLING.
Share 0.0200. COMPLAINTS.
Share 0.0400. COMPLAINTS.
Share 0.0800. COMPLAINTS.
Share 0.0300. CONTACT.
Share 0.0450. CONTACT.
Share 0.0150. SERVICES.
Share 0.0100. SERVICES.
Share 0.0200. SERVICES.
Share 0.0250. SUBSCRIPTION.
Share 0.0150. SUBSCRIPTION.
  1. If the Bitext category is COMPLAINTS, the class is human required.
  2. Named service, cancellation, provider-change, and dispute intents are human required.
  3. Intents that start with check_, plus invoices and payment methods, are lookup.
  4. Pay, plan change, roaming, limits, and call-management intents are structured transactions.