Home  /  Projects  /  SLA Operations Automation ← All six case studies

In plain English: A client cut its deadline from 24 hours to 3 hours while daily volume grew about 15-fold, and the department average sat at 6–8 hours for two months. I found why cases were slow, then redesigned the queue, the allocation rules, the alerts and the shift coverage — and kept the system running.

Executive Project Case Study

Stabilizing a 3-Hour SLA at 15× Volume

How I cut department-average turnaround time from 6–8 hours to a sustained 1.5–2 hours through queue visibility, rule-based allocation, shift redesign, performer enablement and workflow automation.
Khaled Medhat Mahmoud · Team Leader, Case Validation
Global Primary Source Verification Provider
Live since 1 October 2025 · Updated October 2026
READING NOTE — Results in this case study are owner-reported operating outcomes; the underlying company reports were not independently audited for this document. No artefacts leave the company’s closed environment, so every visual is a clearly labeled reconstruction, illustration or synthetic demonstration. The client is not named.
At a glance

Executive Snapshot

FieldDetail
Business problemA client tightened its per-case SLA from 24 hours to 3 hours while volume grew from about 100 cases a day to peaks above 2,000. The department average stayed at 6–8 hours for two months.
My roleSole analyst, designer, builder, tester and maintainer of the solution, as owner of the daily working sheet. Building began in August 2025; I was officially announced Team Leader, Case Validation, in October 2025.
SolutionA 30-minute self-refreshing queue, oldest-first ordering with a live time-passed clock, rule-based case allocation, automated aging-case alerts, staggered near-24-hour shift coverage, performer training and an internal knowledge base.
Methods and toolsGoogle Sheets, Google Apps Script (AI-assisted development), the existing case API, Google Chat, Google Sites, NotebookLM; data analysis of arrival patterns and performer pace.
Project statusLive since 1 October 2025; upgraded continuously since (major upgrades November–December 2025).
Verified outcomesNone independently audited. Owner-reported: department-average TAT moved from 6–8 hours to 1.5–2 hours against a 3-hour target, sustained for 12 months; no SLA penalties; client retained.
Key limitationsAll figures are owner-reported. No artefacts leave the company environment; every visual here is labeled by its true status. The client is not named.

1. Executive Summary

In August 2025, one of the company’s clients tightened its service-level agreement for education-document verification from 24 hours per case to 3 hours — at the same moment the operation was absorbing its largest-ever volume surge. Daily arrivals grew from around 100 cases to peaks above 2,000, and the team expanded from about 10 people to 70–80 performers. For two months the department-average turnaround time (TAT) stuck at 6–8 hours. Meetings produced no improvement, because the operating layer around the work — a manually updated sheet, one daytime shift, ad hoc case picking and little visibility of aging work — had not changed.

I analyzed arrival patterns and performer pace, then rebuilt that operating layer: a 30-minute automated queue refresh; oldest-first ordering with a live time-passed clock; rule-based allocation tied to a real roster of shifts, languages, leave and per-person targets; automated alerts listing every case over two hours; staggered shifts across four countries for near-24-hour coverage; and faster performer support through training and an internal knowledge base. The result, as I report it: the department average fell from 6–8 hours to 1.5–2 hours — under the 3-hour target — from the October 2025 go-live, and has held for a full year. No SLA penalties were incurred and the client relationship was retained.

Section 2

Business Context and Problem Definition

The operation verifies education documents on behalf of clients. Cases arrive through a client API, are checked by performers against specialist rules, and must be completed within a contractual turnaround time. One daily working sheet tracks every open case, its assigned performer and its elapsed time.

That sheet served three clients, but the disruption described here came from one of them: in August 2025 the client replaced its 24-hour SLA with a 3-hour SLA per case. The other two clients kept their existing 24-hour agreements and caused no problems.

The change landed at the worst possible moment for scale. The operation had grown from roughly 10 people handling about 100–120 cases a day to 70–80 performers hired across July and August 2025, at full capacity from mid-August. Monthly inflow settled at a regular 30,000–40,000 cases, with peak days above 1,500–2,000.

WHY IT MATTERED — Each late case carried a $50 contractual penalty unless the client granted an exception. Beyond the direct cost, sustained breaches risked escalation and the loss of the account. Inside the operation, the pressure showed up as constant firefighting: leads chasing cases they could not see, performers unsure what to work first, and long days that did not move the average.

For roughly two months — August and September 2025 — the department average stayed at 6–8 hours despite repeated meetings with managers and employees. Those meetings discussed targets; they did not change how work actually flowed. Closing that gap became the project.

The operating scale in numbers

24 h → 3 h
SLA per case, before → after the client change (August 2025)
6–8 h
Department-average TAT for two months after the change
1.5–2 h
Department-average TAT since go-live, sustained 12 months
10 → 70–80
People, before the surge → performers at full capacity

All figures owner-reported or approximate recollections; see Section 8 for evidence status.

Section 3

Data Discovery and Root-Cause Analysis

I started from the operating data rather than from opinions. Three questions drove the analysis: When do cases actually arrive? How fast do performers complete them? Where do the slowest cases lose their time?

Reconstructed diagram Reconstructed Case-Arrival Pattern Across a Typical Day Why one daytime shift could never meet a 3-hour SLA Main wave 13:00–24:00 Secondary wave04:00–05:00 0% 25% 50% 75% 100% 00:00 04:00 08:00 12:00 16:00 20:00 24:00 Staggered shift coverage (local time in each country): Shift 1 · 08:00–17:00 Shift 2 · 12:00–21:00 Shift 3 · 17:00–02:00 Coverage repeated across Egypt, Jordan, India and the Philippines in each country’s own time zone → near-24-hour coverage
Figure 1 · Reconstructed case-arrival pattern and staggered shift coverage. Illustrative — not exported company data.

The causes grouped into four categories, shown in Figure 2: data and visibility, allocation and prioritization, capacity and scheduling, and performer capability.

Reconstructed diagram Root-Cause Map — Why TAT Stuck at 6–8 Hours EFFECT Department TAT stuck at 6–8 h vs a 3-hour SLA for two months (Aug–Sep 2025) DATA & VISIBILITY Sheet updated manually every 1–2+ hours Cases arrived on the sheet already 1 h+ old No view of what was about to breach ALLOCATION & PRIORITIZATION Performers picked cases ad hoc New cases worked before urgent older ones No fair rules at 70–80-person scale CAPACITY & SCHEDULING Single shift starting at 08:05 Arrivals peak 13:00–24:00 and 04:00–05:00 Quiet mornings, overwhelmed later shifts PERFORMER CAPABILITY Inefficient system methods Questions waiting for a lead’s answer No accessible knowledge base
Figure 2 · Root-cause map. Reconstructed from the author’s analysis — illustrative, not an exported company artefact.

Contributing factors and their evidence basis

FactorCategoryHow it was establishedStatus
Manual sheet updates ran 1–2+ hours behindData & visibilityObserved lag before automationConfirmed
Cases reached the sheet already an hour or more oldData & visibilityObserved in sheet historyConfirmed
No consolidated view of cases approaching two hoursData & visibilityObserved; no such view existedConfirmed
Performers picked cases ad hoc; new work jumped urgent workAllocationObserved behavior on the sheetConfirmed
No rules for fair allocation at 70–80-person scaleAllocationObserved; allocation was manualConfirmed
One shift from 08:05 vs arrivals peaking 13:00–24:00CapacityArrival analysis (reconstructed)Supported
Mornings overstaffed, later shifts understaffedCapacityObserved once shift data was comparedConfirmed
Inefficient system methodsPerformer capabilityDeep analysis of slow performersConfirmed
Questions waiting for a lead’s answerPerformer capabilityObserved; no self-service reference existedConfirmed

I used structured cause-and-effect analysis rather than a formal DMAIC project, and no Six Sigma belt is claimed. Causes are called confirmed only where the operating record supports that.

Section 4

Solution Design and AI-Directed Development

MY ROLE AND THE AI BOUNDARY — I defined the requirements, business rules and decision logic; AI-assisted tools generated and modified the Google Apps Script code; I tested, evaluated and refined every iteration. This is presented as AI-directed development, not as independent manual programming — the design, direction, validation and operational judgment were mine.

4.1 A queue that refreshes itself (30-minute sync)

I automated the working sheet to pull case data from the API every 30 minutes into that day’s sheet, detect the new sheet created each morning, and sort cases oldest-first. Before automation, updates were manual and ran one to two hours late, so cases appeared on the sheet already an hour or more old. After automation, cases appear one to two minutes after arrival. A Time Passed column — the clock the company and the client measure the SLA against — recalculates every second rather than on refresh.

4.2 Aging cases that announce themselves (alert bot)

The first tool I shipped, while sheet updates were still manual, was a reminder bot. Every 30 minutes a Google Apps Script routine, triggered through a webhook, reads the daily sheet and posts to a Google Chat group containing all performers, leads and managers a single table of every case that has passed two hours: case reference, performer and time passed. Leads no longer hunt for aging work; they act on a specific, current list. Figure 4 shows the format with synthetic data.

4.3 Allocation as a rule-based system

The centerpiece was automatic case allocation. With 70–80 performers across four countries, twelve staggered shifts, languages and specializations, a human cannot allocate fairly every 30 minutes without error. I built an automation-settings sheet that describes every performer the automation may assign to:

ColumnWhat it tells the automation
Performer nameWho the row applies to
Shift start / endExact working hours, not broad labels such as “morning”
Languages & specializationsWhich cases the performer may take
Working / off daysWeekly availability
Today leaveExcludes anyone on leave from allocation
Today special taskExcludes anyone assigned to non-validation work
Target overrideA tailored daily target: standard 30 cases; newer performers may carry 20, top performers up to 40

Synthetic illustration

PerformerShiftLanguageTargetWorking daysOff daysLeaveSpecial task
Performer A08:00–17:00Arabic40Sun–ThuFri–SatNoNo
Performer B12:00–21:00English30Sun–ThuFri–SatNoNo
Performer C17:00–02:00Arabic20Mon–FriSat–SunYesNo
Performer D08:00–17:00English30Mon–FriSat–SunNoYes

Sample roster rows showing how shift, language, target override, working days, leave and special-task fields drive each allocation run. Synthetic illustration — not real staff data.

Every 30 minutes the allocation run takes the new cases, sorts them oldest-first, and for each case finds the least-loaded eligible performer — on shift, present, language-matched, under the hourly cap and under their daily target. The first cap was 3 cases per performer per 30 minutes; after observing real throughput I moved to an hourly cap of 8. The caps keep the distribution equal, keep work waiting for the next shift, and stop a handful of performers absorbing the whole queue while others sit idle. Work is pre-assigned 30 minutes before each shift starts, so nobody opens an empty shift. Figure 3 shows the decision flow.

Reconstructed diagram Rule-Based Allocation — Simplified Decision Flow Pull new cases from the API into today’s working sheet Sort oldest-first Time Passed clock recalculates every second Performer available? On shift · not on leave · no special task Eligible? Language and country specialization match Under limits? 8 cases / hour cap · daily target with override Assign Give the case to the least-loaded eligible performer Reserve the queue Keep work for the next shift — nobody starts idle LOAD CAP Maximum 8 cases per hour per performer — raised from an initial 3 per 30 minutes after observing real throughput. TARGET OVERRIDE Standard daily target: 30 cases. New performers may carry 20; top performers up to 40. Each performer’s own target is respected. PRE-ASSIGNMENT Work is prepared 30 minutes before each shift starts, so nobody opens an empty shift. Queue reserve keeps the next shift supplied with work. If any check fails, the case stays queued and the next eligible performer is checked. Reconstructed and simplified — not a screenshot of the real system.
Figure 3 · Rule-based allocation, simplified. Illustrative — not a screenshot of the real system.
Synthetic demonstration Validation — TAT Alerts 14:30 update The following cases have passed 2 hours: Case reference Performer Time passed VF-1002-8341A. Hassan2 h 05 m VF-1002-8355M. Youssef2 h 18 m VF-1002-8370R. Ali2 h 31 m VF-1002-8382S. Nair2 h 47 m VF-1002-8394J. Reyes3 h 02 m Sent automatically to all performers, leads and managers — every 30 minutes, without manual checking. Synthetic demonstration data — illustrative mockup of the alert format, not a screenshot of the real system. Real alerts listed actual case references, performer names and elapsed time.
Figure 4 · Aging-case alert format with synthetic demonstration data. Illustrative mockup — not a screenshot of the real system.

4.4 Shift redesign around the demand curve

The arrival analysis showed that one shift could never meet a 3-hour SLA: demand peaked just as the day shift was ending. I shared the findings with management and recommended staggered shifts. The result was three shifts per country — 08:00–17:00, 12:00–21:00 and 17:00–02:00 — across four countries (Egypt, Jordan, India and the Philippines): roughly twelve overlapping shifts that cover the clock. Staffing was then balanced to the inflow — fewer people in the quiet mornings, more in the loaded mid and night shifts. The staffing decisions were made jointly with management; the analysis was mine.

4.5 Faster performers

Two fixes targeted the performers themselves. First, training: I trained all performers on faster system methods (observationally around twice as fast as the old routines — an observation, not a formally time-studied figure), and used the TAT and productivity reports to find the slowest performers and retrain them individually. Second, self-service knowledge: I built an internal Google Sites knowledge base holding the operating rules and databases, organized and indexed, and later added a NotebookLM question-and-answer layer grounded in the official documents — a performer asks a question, gets an answer with source links, and stops waiting for a lead.

Related reporting work — quality, productivity and volume dashboards — and an AI Studio document-entry assistant are separate projects documented elsewhere; none of their results is included in this case study’s figures.

Section 5

Implementation and Project Management

I ran this as an operational project rather than a formal PMO engagement; the phases were short, evidence-driven and shipped in production order.

Author account Jul–Aug 2025 70–80 performers hired; full capacity from mid-August Aug 2025 Client tightens SLA from 24 h to 3 h; analysis and independent build begin Sep 2025 Informal notice of promotion 1 Oct 2025 Go-live — average TAT drops to 1.5–2 h Oct 2025 Official announcement: Team Leader, Case Validation Nov–Dec 2025 Major upgrades: caps, roster rules, edge cases from real use Oct 2026 One full year sustained at 1.5–2 h
Figure 5 · Project timeline, from the author’s account.

Risks and how they were handled

RiskMitigationStatus
Allocation mistakes at scaleParallel-sheet testing before go-live; eligibility checks; hourly capsResolved pre-launch
Roster drift — leave, special tasks, shift changesAutomation-settings sheet maintained dailyControlled
API key or schema changesI maintain the script and update credentials myselfControlled
No IT support availableAll components built, tested and maintained by meAccepted constraint
Closed company environmentEverything built inside Google Workspace; no external toolsAccepted constraint
OWNERSHIP AND TIMING — I built this project alone, from first analysis to current maintenance. Work began in August 2025 while I was still in the Validation stream and before my formal promotion; my direct manager was on extended leave during the build, and staffing decisions were coordinated with senior management. I was informed of the promotion in September 2025; the official announcement — Team Leader, Case Validation — came in October 2025, the same month the solution went live.
Section 6

Preventive Controls and Continuous Improvement

I did not run a formal Six Sigma project and claim no belt. The preventive thinking, however, is the backbone of the design: every failure mode from the two-month crisis was answered with a control that stops it recurring, rather than with more checking.

ControlTypeFailure mode it prevents
30-minute automated refreshData controlDecisions made on stale data 1–2 hours old
Oldest-first orderingPriority controlNew cases worked before urgent older ones
Live Time Passed clock (updates every second)Measurement controlSLA measured from the wrong moment
Eligibility rules — shift, language, leave, special taskMistake-proofingCases assigned to someone who cannot work them
Hourly cap of 8 + equal distributionLoad balancingOverloaded performers; idle shifts
Daily target overrideCapacity controlUnrealistic targets for newer or top performers
Automated 2-hour alertsDetection controlAging cases discovered too late to recover
Knowledge base + NotebookLM Q&ACapability controlTime lost waiting for procedural answers

What remains open, stated honestly: a formal measurement baseline was not agreed before go-live, and exception logs were not kept systematically. Those appear in the roadmap as improvements — not as achievements claimed here.

Section 7

Testing and Validation

Before go-live, the automation ran for weeks on a parallel sheet fed by the same data while the manual sheet remained live. That surfaced and fixed the failure modes that matter most:

The alert bot was tested against the daily sheet rotation (a new sheet each morning) and the 30-minute schedule. After go-live, the issues found in real use were fixed in the November–December upgrade window.

Limitation: no formal test-case log was kept. The testing above is described from my account of the work, not from archived test records.

Section 8

Business Impact and Measurement Limitations

The headline comparison is simple: before the project, the department-average turnaround time sat at 6–8 hours against a 3-hour target; from the October 2025 go-live it has sat at 1.5–2 hours. Figure 6 shows the comparison; the table breaks the claims down by evidence status.

Owner-reported Department-Average Turnaround Time vs the 3-Hour SLA Target 0 h1 h2 h 3 h4 h5 h 6 h7 h8 h 6–8 h Before Aug–Sep 2025 reported department average 1.5–2 h After Oct 2025 – Oct 2026 sustained for 12 months Client SLA target — 3 hours Bars show the reported range of the department-average TAT. Owner-reported operating outcomes — illustrative chart, not an audited measurement.
Figure 6 · Department-average TAT before and after go-live. Owner-reported averages — illustrative chart, not an audited measurement.

Results table

MetricBaselineResultEvidence statusValidation method
Department-average TAT6–8 hours1.5–2 hoursOwner-reportedCompany reports not independently audited for this document
TAT vs 3-hour targetAbove target for 2 monthsBelow target, sustained 12 monthsOwner-reportedMonthly average reviewed against target
Queue data lag1–2+ hours1–2 minutesOwner-reported; follows from designSpot checks of refresh timing
Follow-up effortManual sheet scanningAutomated alerts every 30 minutesObservedAlert history in the chat group
Allocation consistencyManual and error-proneRule-based every 30 minutesObservedParallel-sheet comparison before go-live
Capacity absorbedManual process needed ~4 leads/day (2 on 08:00–17:00, 2 on 17:00–02:00)Automated; leads redirected to support and case auditsOwner-reportedRoster comparison before and after
SLA penaltiesRisk of $50 per late caseNone incurred after launchOwner-reportedPenalty records not externally audited
ON THE NUMBERS — No on-time percentage is claimed and no 100% figure is used. The comparison is between the reported department-average TAT and the 3-hour target. Individual cases varied — some finished in under an hour and rare outliers reached several hours — and the average is what the operation manages against the SLA.

Validation plan for the missing measurements

The following plan turns owner-reported outcomes into documented ones. None of these rows implies the measurement was already performed.

KPIFormulaData sourcePeriodTarget
Average TATSum of (completion − arrival) ÷ completed casesCase-system exportMonthly≤ 3 h
Late-case rateCases over 3 h ÷ total casesCase-system exportMonthlyAs agreed with the client
Queue freshnessSheet update time − API arrival timeRefresh logsDaily≤ 2 min
Allocation fairnessAssigned volume vs individual targetSettings sheet + sheet historyWeeklyWithin a small band of target
Penalty countLate cases without a client exceptionBilling recordsMonthly0
Section 9

Lessons Learned and Future Roadmap

What the project taught me

Next steps

Section 10

Skills Demonstrated and Supporting Evidence

CompetencyMy contributionSupporting evidenceBusiness or technical value
Business analysis & requirementsTurned a “work faster” crisis into concrete requirements: refresh cadence, ordering, eligibility, caps, targetsAutomation-settings sheet; allocation rulesA design a machine can execute correctly
Data analysisAnalyzed arrival patterns, performer pace and slow-case causesShift redesign driven by the arrival curveCoverage matched to real demand
Root cause analysisSeparated symptoms from causes; confirmed four cause groupsCause map (Figure 2); factor tableFixes targeted causes, not symptoms
AI-directed developmentDefined rules; directed AI-generated Apps Script; tested and refinedBot, sync and allocation scriptsWorking automation without overstating coding skill
Process & workflow designDesigned oldest-first queue, allocation logic and alertingWorkflow live since October 2025A repeatable, rule-based operation
Testing & validationParallel-sheet testing; fixed over-allocation and handover edge casesPre-launch fixes listed in Section 7A confident, low-risk go-live
Project & change managementPhased delivery, risk controls, coordination with managementTimeline (Figure 5); risk tableAdoption without disruption
People enablementTraining, targeted retraining, knowledge base and NotebookLM Q&ASection 4.5Faster, self-sufficient performers