In plain English: Managers could not see productivity, quality, turnaround and SLA exposure in one place. I built a single rule-driven screen over the existing live data. The report states plainly that managers received it positively but did not adopt it into their routine; it remained my own supervision view.
Executive Project Case Study
One Screen to Run the Day
A live operations dashboard for an 80-performer verification department — built in Google Apps Script to turn scattered live data into a single, rule-driven supervision view for productivity, quality, SLA exposure and performer status.
Khaled Medhat Mahmoud · Team Leader, Case Validation
Global Primary Source Verification Provider · Education-document verification operation
Built and deployed April 2026 · Maintained and used continuously
Scope note. This case study describes a working internal application. Company, client and
employee identities, case records, internal links, credentials and source code are excluded.
All interface views shown here are illustrative mockups built for this document, not screenshots
of the deployed environment; the values inside them are synthetic.
A · Executive snapshot
One dashboard for a department that runs on live operational data
Business problem
The operating picture for an 80-performer department was split across live working sheets, daily reporting outputs and separate turnaround reports. A manager had to locate and reconcile productivity, quality, TAT and error data before supervision could begin, and feedback on errors and SLA exposure usually arrived the next day.
My role and contribution
Team Leader, Case Validation. I defined the operational requirements, wrote the decision rules and thresholds, configured the SLA and target logic, designed the three views and the per-performer drill-down, built and deployed the application in Google Apps Script with AI-assisted code generation, and I am its only daily user.
Solution
A three-view web dashboard — Live Monitor (per-performer output by task type, hourly throughput, average case time, true shift hours, live status, SLA exposure), Productivity and Quality — with rule-based flags, click-through per-performer detail, date-range selection and CSV export on every view.
Methods and tools
Google Apps Script (web app, rules engine, aggregation, export), the existing live Google Sheets working sheets, the existing daily analytics outputs for whole-month views, and AI-assisted implementation under my direction.
Project status
Implemented and deployed in April 2026, continuously maintained and used by me since. Demonstrated to the operational managers, who responded positively; it was not adopted into their daily routine and remains my own supervision view.
Verified outcomes
No audited before-and-after measurement exists. The value is documented as observed operating change — inactive performers detected, same-day errors corrected before recurrence, rushed pace flagged, cases pushed before their turnaround expired — plus one owner estimate: roughly 70% less time spent locating and reconciling the same information.
Important limitations
No measured baseline or time study; the 70% figure is an estimate from daily experience. The access layer was not independently security-audited. Thresholds need contextual interpretation because case mix and waiting time affect both output and duration. The board reports and prioritises; it does not make performance decisions.
80
Performers covered, all stages
3
Views: Live Monitor, Productivity, Quality
7
Automatically evaluated management rules
~70%
Owner estimate: time to assemble the daily view
0
New data sources or API calls created
The operating context
My team verifies education documents. A case arrives against a client, is validated, may require an
insufficiency follow-up, may be corrected after a quality finding, and sometimes has to be answered
back to the applicant. Every case carries a turnaround commitment that is defined by client, stage
and case type, and every client carries a daily target. The department of 80 performers works in
parallel across Validation, Insufficiency, Error Correction, Post, applicant responses and additional
assigned tasks.
All of that data already existed, and most of it was already live: the validation and insufficiency
working sheets carried the case records and the elapsed-time fields that the team itself maintained.
The daily reporting workflow, the client and stage SLA rules, the error taxonomy and the daily
analytics outputs had been built in earlier work.
What did not exist was anywhere to see those signals together, while the day was still running.
The reporting layer was retrospective by design: it described yesterday well and told me nothing about
the performer sitting three cases away from a breach at 14:00.
The problem I set out to solve
Not "produce more reports" — the reports existed. The problem was
composition: no single place combined productivity, pace, quality, case duration, live
status and turnaround exposure into one prioritised list, and no rule applied those signals
automatically, so every one of them had to be interpreted by hand before I could decide who
needed attention.
B · Executive summary
What I built, and what it changed
I built a live operations dashboard in Google Apps Script that gives one manager a
single screen for an 80-performer department: who is working, who is not, who is moving too fast,
which cases are approaching their turnaround limit, and which errors were made today — with every
signal classified automatically by rules I defined.
How it works
The dashboard creates nothing and fetches nothing new. It reads the same live working sheets the
team works on, so its figures move as the sheets move — continuously, without a manual refresh. For
whole-month views it reuses the daily analytics outputs my reporting workflow already produces. A
rules engine sitting between the data and the screen does the interpreting: minutes since the last
recorded case completion become a live status; hourly throughput is compared with the expected pace
and with the pace at which quality is actually achievable; each open case is measured against the
SLA rule for its client, stage and case type; and errors logged today are grouped by stage, field
and category.
What I personally contributed
Requirements. I defined what a supervisor needs to see, in what order, and at what frequency.
Decision rules. I set the operational thresholds — the 15 and 30 minute status bands, the under-four and over-ten hourly bands against a normal six and a quality-achieving five, the SLA and daily-target logic — and wrote them as explicit, testable statements before any code existed.
Interface and views. I designed the three-view structure, the layout of the Live Monitor, the per-performer drill-down, the date-range control and the CSV export.
Implementation. I directed AI-assisted code generation inside Google Apps Script, reviewed the output, tested the rules against the live sheets, corrected the defects I found and extended the application as my own use revealed gaps — the click-through performer view and the productivity trend graph at the top of the board were both added after using it daily.
Operation. I run the board every day and act on what it surfaces.
What it changed
Before the dashboard, my supervision routine began with assembling a picture: open the live
validation sheet, open the live insufficiency sheet, find the quality numbers, check the turnaround
report, then reconcile them. Feedback on an error made at 11:00 typically reached me through a report
cycle. After it, the board is the first thing I open, the signals are already classified, and the
questions arrive while they are still answerable — who has gone quiet, who is rushing, which case is
about to expire, which rule did this performer misread this morning.
I estimate that consolidating the required information into one place removed roughly 70% of the
time I used to spend searching for the right sheet and re-reading the same numbers. That is my own
estimate from daily experience, not a measured time study, and I present it as such. What I can
state as observed is behavioural: I now detect an inactive performer within the half hour the rules
allow instead of noticing it later in the day; I raise a same-day error with the performer
while the case is still fresh; and I catch rushed work before it reaches quality review.
Where the project stands
The application is complete and in daily use by me, and it has not been
adopted company-wide. I demonstrated it to the operational managers, who responded positively to
it, but it was not taken into their routine, so it continues as my own supervision view. I am
explicit about this: the claim in this document is a working tool that a manager uses every day,
not an organisation-wide rollout.
C · Business context and problem definition
The operating picture was scattered, and the feedback was late
How work actually ran
Each performer works from their own case records, maintained in the live working sheets, across
the stages that apply to the client and case type. Two things make a supervisor's job harder than
simply counting cases. First, a case is not one event: it is a start, a wait, a decision, and a
closure, and the elapsed time that matters includes the waiting. Second, the same performer is doing
several kinds of work at once — validation cases, first- and second-level reviews, applicant
responses, additional assigned tasks — so a single total tells a manager very little.
Who was affected, and how
Stakeholder
Consequence of the pre-dashboard situation
Evidence status
Team leader (me)
The first part of the day went into assembling and reconciling the view before any supervision could start; feedback on errors and turnaround exposure arrived with the report cycle rather than with the case.
Observed
Performers (80)
A performer who went quiet, or started rushing, or misread a rule, was identified late — so coaching happened the next day instead of the same morning.
Observed
Clients
Turnaround commitments are defined per client, stage and case type with daily targets; without a live view of cases approaching those limits, exposure was only visible once it had been met.
Reported
Errors
Error information existed, but the manager had to retrieve it separately to know which rule a performer had misread today.
Reported
Constraints that shaped the solution
Environment. The work runs entirely inside Google Workspace, and no other programming environment is available to me in the company environment. Google Apps Script with Google Sheets was the only viable host, so the solution had to be a web app that reads the existing sheets rather than a new system with its own database.
Data governance. The sheets are the operational record of record. Duplicating data into the dashboard would have created a second, competing version of the truth and a new reconciliation burden — the opposite of the goal.
Scale. With 80 performers across parallel stages, an undifferentiated list is itself a distraction. Any single view has to narrow itself to the part of the department a manager is responsible for.
D · Data discovery and root cause analysis
The data was never the problem — the absence of composition was
My first step was to inventory what already existed rather than to request new data: the live
validation and insufficiency sheets and the elapsed-time fields within them, the quality and
productivity daily records, the client and stage SLA rules, the daily target per case type and
stage, the error taxonomy used in Post, Validation and Insufficiency, and the daily analytics
outputs already produced by my reporting workflow. The conclusion was that the department was
already data-rich and report-poor: the signals existed, but nothing joined them into a decision.
Symptom I observed
Contributing factor
Underlying cause
"I could not tell who was stuck without checking each sheet."
Signals for productivity, pace, quality and duration lived in different views.
The reporting layer was built to describe a period after it had finished. Nothing in the stack translated live operational records into a prioritised list of who needed attention, so the manager had to do that translation manually, every morning, with no rules applied.
"I discovered the error after the day was over."
Error information was retrievable but not surfaced in the working context.
"A case was close to its limit and I found out afterwards."
SLA rules existed per client and stage but were applied to records, not surfaced as live exposure.
"I could see that someone was fast, but not whether that was good."
Output was counted without a defined pace benchmark or a quality-linked threshold.
Root cause statement
Supported by the inventory: the operating data was complete and live,
and the reporting workflow was sound for retrospective analysis. The gap was a
missing composition and classification layer between those records and the manager's
decision. This is the cause the project targets, and it is directly testable: if the layer is
added, the signals arrive already ranked, and the manual translation step disappears.
I did not treat this as a quality problem in the performers, a client problem, or a
sheet-layout problem. The evidence pointed to a supervision-visibility problem, and the solution was
built to address exactly that.
E · Solution design and AI-directed development
One application, three views, one rules engine
Figure 1 — Reconstructed data flow. The dashboard reads the existing live sheets and the existing analytics outputs; it creates no new data and calls no external API. Reconstructed diagram
Design decisions I made
No new data store. The application reads the live sheets directly. Anything else would have created a second version of the truth and a reconciliation task of its own.
Rules before screens. I wrote the decision rules as explicit statements first — "active if a case was completed within 15 minutes", "low output if fewer than 4 cases closed in the hour" — so that what the screen shows was a design decision rather than a formatting outcome.
Same screen, two horizons. Today comes from the live sheets; the month comes from the daily analytics outputs I already generate. One view, one filter, two data horizons.
Every view exports. Any tab can be exported to CSV for a chosen date range, so the board supports investigation rather than replacing it.
Progressive detail. The main table stays compact; the depth sits behind a click on the performer's name.
AI-directed development
My method was to specify the operational logic in language a reviewer could check, then direct AI to
implement it inside Google Apps Script, then test the behaviour against the live sheets and correct
what did not match. The rules, thresholds, SLA logic, view structure and interaction design were
mine; the code was produced with AI assistance and reviewed by me against the behaviour I had
specified and against the behaviour I could observe in the live sheets. Where output diverged from
the specification, I corrected the rule, not the
expectation — several of the persistent defects were analytical rather than syntactic, for example
the treatment of waiting time inside a case duration and the boundary conditions of the 15 and 30
minute status bands, and the corrections came from testing against real records. Every feature added
after the first release — the per-performer drill-down and the productivity trend graph — came from
using the board in a real shift and noticing what was missing.
E · Solution design — the Live Monitor
The main screen: a live view of the whole team
The Live Monitor opens on the current shift. A summary band at the top carries the shift-level
figures — how many performers are active, how many validation and insufficiency cases are being
worked in the hour per performer, and the team's average TAT. Below it, one row per performer shows
the day's output split by task type, the total, the hours the performer actually worked, and the live
status. A performer name is a link: it opens that performer's cases, errors, average TAT and shift
hours for the day. The left rail carries the three dashboard tabs, a date-range control and the CSV
export.
Operations Dashboard · Live Monitor
Date range: Today | Export CSV | Signed in: K. Medhat (all-team view)
Views
1 · Live Monitor
2 · Productivity
3 · Quality
Controls
Date range
Export CSV
54 / 80
Performers active on shift
312 / 5.8
Validation + insufficiency cases in this hour — team / per performer
38 min
Average TAT of performers today
3
Inactive beyond 30 min
Performer
Validation
1st & 2nd Level
Applicant Responses
Add. Task
Total Cases
True Shift Hours
Live Status
P-014 ▸
11
4
2
1
18
4.1
Active
P-021 ▸
9
3
1
0
13
3.8
Active
P-033 ▸
12
5
0
2
19
4.3
Idle 18m
P-047 ▸
14
6
1
0
21
4.2
Idle 27m
P-052 ▸
3
1
0
0
4
3.5
Inactive 41m
P-066 ▸
7
2
3
1
13
3.9
Active
P-071 ▸
10
4
1
1
16
4.0
Active
P-088 ▸
6
2
1
0
9
3.7
Active
P-091 ▸
5
1
0
0
6
3.6
Inactive 36m
Hourly throughput — team average per performer
Cases closed per hour, team average per performerRushed threshold (> 10/hour)Low-output threshold (< 4/hour)
Turnaround exposure — cases approaching or past SLA
Case
Client
Stage
Elapsed
SLA
Status
CR-88421
Client A
Validation
3 h 12 m
4 h
Approaching
CR-88437
Client B
Insufficiency
26 h 40 m
24 h
Breached
CR-88455
Client C
Validation
2 h 05 m
6 h
On track
CR-88462
Client A
Insufficiency
21 h 10 m
24 h
Approaching
Figure 2 — Illustrative mockup of the Live Monitor view. This is a designed
representation of the application I built, not a screenshot of the deployed environment; performer
identifiers, case references and all values are synthetic. The table columns, the summary band, the
hourly throughput view, the turnaround-exposure panel and the tab rail reproduce the fields and
structure described above. Illustrative mockupSynthetic data
E · Solution design — the rules engine
What the dashboard decides, and how
The rules are the substance of the project. Each one turns a raw record into a label, and each
label has a defined management response. A rule is written so that it can be tested against the
sheets: a threshold, a source, and an interpretation.
Signal
Rule as I defined it
Threshold / basis
Where it appears
Management response
Live status
Minutes elapsed since the performer's last recorded case completion, from the elapsed-time field already maintained in the working sheet.
Active ≤ 15 min · Idle 15–30 min · Inactive > 30 min
Live Monitor, colour-coded
Contact the performer, understand the reason, re-task or unblock
Low output
Cases closed by the performer in the current hour, compared with the expected pace for the shift.
< 4 cases/hour (normal pace 6)
Live Monitor, hourly view
Check workload, task availability or blockers; assign work or support
Rushed pace
Cases closed in the hour, compared with the pace at which the required quality is actually achievable.
> 10 cases/hour (quality pace 5/hour)
Live Monitor, hourly view
Reinforce the balance between speed and quality before quality review finds it
Case duration
Elapsed time per case — including waiting — compared with the performer's own working-sheet average for the same stage.
Deviation from the performer's own average
Performer drill-down
Check case complexity, process friction, or whether the case was rushed
Turnaround exposure
Elapsed time on open cases measured against the SLA rule held in the dashboard for that client, stage and case type.
SLA per client × stage × case
Exposure panel, per case
Review priority, clear the blocker, move the case before it expires
Same-day errors
Errors logged today, grouped by stage, error field and error category, taken from the quality records.
Post, Validation and Insufficiency stages
Quality view, per performer
Discuss the specific rule or field with the performer while it is still correctable
Target progress
Completed volume against the daily target defined per case type and per stage.
Daily target per case type × stage
Client and target view
Client-level conversation and reallocation
Figure 3 — Reconstructed decision logic. Every check evaluates live records and returns a
label; the labels are assembled into the prioritised list the manager works from. The manager
still verifies the context before acting — the dashboard ranks attention, it does not make
decisions. Reconstructed diagram
Why the pace rule matters more than it looks
The normal pace is six cases an hour, but five cases an hour is the
pace at which good quality is actually achievable. A performer closing eleven or more in an hour
is not producing more value — they are compressing the reading, checking and decision steps that
quality is made of, and the cost of that arrives later at quality review. The dashboard therefore
flags high output as a quality risk, not as a success. This is the rule I would defend
hardest, because it is the one that changes a manager's behaviour: without it, the fastest number
on the board is the one that looks best.
E · Solution design — depth on demand
One click from a row to the case, and from a tab to the month
Performer drill-down
Clicking a performer name in the Live Monitor opens that performer's day: every case worked
today with its client, stage, timings and SLA position, every error logged with the field and
category, the average TAT, and the true shift hours. The drill-down exists because the summary row
tells a manager that something is worth a look, and only the detail tells them what.
Operations Dashboard · Live Monitor › Performer P-033
Today | Export CSV | Back to Live Monitor
19
Total cases today
41 min
Average TAT (incl. waiting)
4.3 h
True shift hours
2
Errors today
12 / hr
Peak-hour pace (rushed band)
Cases worked today — 5 of 19 shown
Case
Client
Stage
Task
Elapsed
SLA
Status
CR-88390
Client A
Validation
Validation
3 h 05 m
4 h
Approaching
CR-88402
Client C
Validation
Validation
48 m
6 h
On track
CR-88418
Client B
Insufficiency
Insufficiency
2 h 20 m
24 h
On track
CR-88433
Client A
1st / 2nd Level
1st & 2nd Level
1 h 10 m
4 h
On track
CR-88447
Client D
Validation
Add. Task
52 m
6 h
On track
Errors today
Stage
Error field
Category
Time
Validation
Date range
Document interpretation
11:42
Insufficiency
Source requirement
Missing document
13:05
Average TAT is calculated on elapsed time and therefore includes waiting time on the case.
Figure 4 — Illustrative mockup of the per-performer drill-down. Synthetic data; not a
screenshot of the deployed environment. Illustrative mockupSynthetic data
Productivity and Quality views
The second and third tabs carry the productivity and quality analysis, including the whole-month
horizon. Their underlying structure, indicators and reporting logic are documented in the separate
operational-analytics case study, so this case study does not repeat them; what belongs here is the
architectural point — the same views are served inside the same application, and the monthly
horizon is served from the daily analytics outputs rather than from a new pipeline. Both views accept
the same date-range control and the same CSV export as the Live Monitor.
Operations Dashboard · Productivity | Quality
Date range: 01–31 of month | Export CSV
Views
1 · Live Monitor
2 · Productivity
3 · Quality
Controls
Date range
Export CSV
Productivity — month
Performer
Cases
Avg TAT
On-time rate
Errors
P-014
312
39 m
96%
3
P-021
268
42 m
94%
6
P-033
341
35 m
93%
8
P-047
289
44 m
95%
4
Quality — month
Stage
Error field
Category
Count
Performer
Post
Name spelling
Document interpretation
14
P-021
Validation
Date range
Document interpretation
11
P-033
Insufficiency
Source requirement
Missing document
9
P-014
Whole-month figures are served from the daily analytics outputs of the existing reporting workflow; today's figures are served from the live sheets.
Figure 5 — Illustrative mockup of the Productivity and Quality tabs. Synthetic data;
not a screenshot of the deployed environment. The detailed indicators behind these two views are
covered in the separate operational-analytics case study. Illustrative mockupSynthetic data
F · Project management and implementation
Building inside a fixed environment, one controlled release
Scope, dependencies and constraints
In scope. A single live web application with three views, automatic rule evaluation, per-performer drill-down, date-range selection and CSV export, reading the existing live sheets and analytics outputs.
Out of scope by design. No new data collection, no new API integration, no replacement of the working sheets, and no automated messaging to performers or clients — the board informs a human decision, it does not execute one.
Dependencies. The live validation and insufficiency sheets, the quality and productivity daily records, the client and stage SLA rules, and the daily analytics outputs from the reporting workflow, each documented in the related case studies in this portfolio.
Constraints. A single approved development environment, no new infrastructure, and confidential operational data that cannot leave the company environment — which is why every interface in this document is an illustrative mockup rather than a screenshot.
Implementation phases
Phase
What was built
Decision and outcome
Requirements & rules (Apr 2026)
Page inventory, field list, the seven management rules with thresholds, SLA and target logic, access scoping.
Rules were written as testable statements before coding, so behaviour could be specified independently of the interface.
Build & deployment (Apr 2026)
Read layer, rules engine, aggregation, the three views, access scoping, deployed as a web app.
Deployment as a web app means the board is a URL any authorised manager can open, with no installation step on their side.
Verification against live records
Rules tested against real sheets: status boundaries, hourly bucketing, duration including waiting, SLA matching per client and stage, drill-down totals reconciled to the summary row.
Several analytical defects were found and corrected here — notably the treatment of waiting time inside durations and edge cases at the status boundaries.
First operational use
Daily supervision from the board; intervention on inactive, rushed and error-related signals.
Use in a live shift, not a test, is what exposed the gaps that the first release had.
Enhancement (ongoing)
Per-performer drill-down on click, productivity trend graph added above the board, additional options and refinements as the shift demanded them.
Enhancement requests came from operating the tool, and were the reason the board stayed useful rather than becoming another report.
Risks and how I handled them
Risk
Consequence if unmanaged
Control I applied
Source sheets become stale or inconsistent
The board would show confidently wrong numbers, which is worse than showing nothing.
The board reads the live sheets directly rather than caching a copy, so it inherits their accuracy; figures carry the source's own timestamps.
Thresholds applied out of context
A performer on a complex case mix would be flagged unfairly, damaging trust in the tool.
Thresholds are stated as pace bands with a quality benchmark, and case duration is compared to the performer's own average rather than a global one.
Waiting time misread as effort
Duration rules would punish performers for cases that were held upstream.
Case duration includes waiting by design, and the drill-down shows the case-level detail needed to separate the two before acting.
Single-user, single-owner dependency
Only one person can maintain the logic; loss of that person would end the tool.
Accepted for a personal supervision view, and flagged as a limitation rather than hidden. The rules are documented in the case study so they can be re-implemented.
Adoption without ownership
A tool handed to managers without a routine attached is not used.
I demonstrated it and used it myself first; adoption by others remained optional and is not claimed in this document.
Access control
An exposed board would reveal individual performance data.
Access is implemented in the application and scoped by role, with a per-manager view and an all-team view for senior management. This was not independently security-audited.
G · Preventive improvement
Turning a daily manual judgement into a standing control
What makes this preventive rather than corrective is timing and standardisation. The manager no
longer has to remember to check each signal, and the signals are no longer only available after the
day is over. The controls below are the ones I actually implemented; the recommendations are marked
as such.
Control
What it prevents
Status
How it works
Automatic activity status
A performer going quiet for 30+ minutes and being discovered hours later.
Implemented
The status is derived continuously from the elapsed-time field, so absence is visible without anyone asking.
Quality-linked pace band
Speed being rewarded in the short term and paid for in quality review later.
Implemented
Output above ten cases an hour is flagged as a quality risk, not as productivity, because five an hour is the pace that sustains quality.
Live turnaround exposure
A case passing its commitment before anyone looks at it.
Implemented
Open cases are measured against the SLA rule for their client, stage and case type, and approaching cases are listed with their owner.
Same-day error surfacing
The same field or rule being misread repeatedly across the day.
Implemented
Errors are grouped by stage, field and category in the working context, so the conversation happens on the day the error was made.
Standard decision rules
Inconsistent interpretation of the same metric between managers or between days.
Implemented
Thresholds are coded, so the classification of every performer and case is the same every time it is viewed.
Threshold calibration study
Rules that drift away from the real pace of the work as staffing and case mix change.
Recommended
Recalibrate the bands against a full month of actual distribution, per stage, and version the thresholds.
Exception handling for stale source data
Decisions taken on a board that is showing an out-of-date picture.
Recommended
Show source freshness per panel and suppress signals that are stale beyond a defined limit.
Escalation to the notification workflow
Signals that require action but are only seen when the manager happens to open the board.
Recommended
Push the same rules into the existing notification routine so that a breach is announced rather than published.
H · Testing and validation
What I checked, and what remains unverified
There is no formal test record from the company environment — verification was performed during
development against the live sheets, and the cases below are the checks I actually ran. They are
presented as a test matrix reconstructed from that verification, not as an executed QA report.
Check
Method
Outcome
Status
Status boundary behaviour
Records positioned at 14, 15, 16, 29, 30 and 31 minutes from the last completion
Labels matched the specified bands
Verified during development
Hourly bucketing
Completions across an hour boundary and across a shift boundary
Each completion attributed to one hour and one date
Verified during development
Duration including waiting
Cases with a long hold between start and closure
Elapsed time reported with waiting included, as specified
Verified during development
Drill-down reconciliation
Performer drill-down totals compared with the summary row and with the source sheet
Totals agreed; one aggregation defect found and corrected
Verified during development
SLA matching
Cases checked against the rule for their client, stage and case type, including cases near the limit
Exposure states correct, including approaching-versus-breached boundary
Verified during development
Date range and CSV export
Exports for today, a single week and a full month
Exports matched the on-screen figures
Verified during development
Access scoping
Views rendered under a manager scope and under the all-team scope
Performer lists limited to the intended scope
Verified during development
Independent security review of the access layer
—
Not performed
Not verified
Controlled user trial with other managers
—
Not run as a sustained trial
Not verified
I · Business impact and performance measurement
What I can evidence, and what I would measure next
Metric
Baseline
Result
Evidence status
Validation method
Time to assemble the daily supervision view
Not measured
≈ 70% less time spent locating and reconciling the required information
Estimated (owner)
Log navigation and reconciliation time for 10 working days before and after; compare median
Time to detect an inactive performer
Manual check of the elapsed-time column in the sheets
Automatic label within the 30-minute band, without a manual check
Observed
Compare status timestamps with the elapsed-time field for a full month
Time to act on a same-day error
Error visible only on retrieval, typically in the next reporting cycle
Reviewed with the performer on the day it occurred
Observed
Log same-day error discussions against the error timestamps
Turnaround exposure visibility
Known only when a report was retrieved
Approaching and breached cases listed with their owner and SLA
Observed
Record at-risk cases flagged before their limit and compare with actual breaches
Rushed-pace detection
Not surfaced in the working view
Flagged in the same hour, before quality review
Observed
Correlate hourly pace flags with subsequent error rates for the same performers
Error rate and SLA breach rate attributable to the dashboard
Not measured
Not measured
Unverified
Requires a baseline period before deployment and a defined control group; not attempted
Adoption beyond the author
—
One active user; not adopted into the managers' routine
Observed
Not applicable
Validation plan for the measures that do not yet exist
KPI
Formula
Data source
Period
Target
Supervision view preparation time
Minutes from start of shift to first management decision, logged daily
Supervisor log (new)
10 working days, pre and post
To be set after the baseline is captured
Inactive-performer detection latency
Minutes from last case completion to the status label appearing
Live sheet timestamps vs. dashboard label
1 month, continuous
At or below the defined band (30 min)
Same-day error action rate
Errors discussed on the day of the error ÷ errors logged in the period
Error log plus discussion log
1 month
Target to be defined after the first month of measurement
Pre-empted SLA breaches
Cases flagged as approaching before their limit ÷ cases flagged as approaching
Dashboard exposure log
1 month
To be set after baseline
Rule precision
Flagged performers who genuinely need intervention ÷ total flagged
Supervisor confirmation per flag
2 weeks
To be set with the first calibration cycle
No target is asserted here, because no baseline exists to
set one against. These are the measurements that would convert the current observations into
verified results. Test & measurement plan
J · Lessons learned and roadmap
What I would do differently, and what comes next
Lessons from running it every day
Composition beats collection. The value was not in any new report but in putting the data I already had into one place and letting rules do the interpreting. Every hour of effort spent on collecting data that already existed would have been wasted effort.
A rule needs a number and a meaning. "Productivity" told me nothing; "under four cases an hour against a normal six" told me where to look, and the comparison against the quality-achieving pace of five turned a speed metric into a quality signal.
Waiting time changes the meaning of duration. Because a case's elapsed time includes waiting, a duration rule judged on elapsed time alone can blame a performer for an upstream hold. The drill-down is what makes the rule safe to act on.
Live beats comprehensive. The most useful output was not the richest one. The per-hour view and the status column are what changed my morning; the month-level filters are convenience.
Use it, then build it. The features that mattered most — the drill-down and the trend graph — were not in the original specification. They came from operating the tool during a real shift.
A dashboard is a routine, not a screen. The tool only produces value when it is part of a manager's daily behaviour. My own adoption is the evidence I have; a tool that is demonstrated once and not adopted has produced nothing, however good it is.
Roadmap
Next step
Why it matters
Effort / dependency
Threshold calibration study
The bands are set from operational judgement; a month of real data per stage would make them defensible.
Low effort — data already exists in the sheets
Baseline measurement of supervision time
Converts the 70% estimate into a verified figure and allows a target to be set.
Low effort — requires a supervisor log for 10 days
Supervised rollout to other managers
The per-manager scoping already exists, so the tool is technically ready; the missing ingredient is an operating routine and ownership, not code.
Medium — depends on management sponsorship
Push rules into the notification workflow
Turns a board that must be opened into exceptions that are announced.
Medium — reuses the existing alerting routine
Source freshness indicator per panel
Protects the credibility of the whole board when an upstream sheet is late.
Low effort — metadata already available
Independent access-control review
The access layer was designed for a multi-manager deployment and has not been externally reviewed.
Low effort — application-scoped
Figure 6 — Timeline of the project from build through continuous operational use to the
planned validation work. Reconstructed timeline
K · Skills demonstrated
What this project shows I can do
Competency
My contribution
Evidence in this project
Business or technical value
Business analysis & requirements
Turned "I need visibility of my team" into a page inventory, a field list, seven testable rules and a data-source map.
Live Monitor layout, rule set, view structure
The build started from decisions, not from features
Operational data analysis
Defined pace bands, status bands, SLA and target logic, and made waiting time an explicit part of the duration definition.
Rules table, threshold basis
Distinguishes a genuinely slow performer from a blocked one
Problem framing & root cause
Established that the data existed and the reporting layer was retrospective; targeted the missing composition and classification layer.
Root cause statement, symptom-to-cause matrix
Prevented a duplicate reporting effort that would have added no value
Workflow & system design
Designed a three-view application with a drill-down, a date-range control and CSV export, reading existing sheets with no new data store.
Figures 1–5
A single tool that fits the existing data flow instead of competing with it
AI-directed development
Specified the logic and thresholds, directed AI-assisted implementation in Google Apps Script, tested behaviour against live records and corrected analytical defects.
Testing matrix, build phases
Rules exist as executable, testable statements rather than as prose
Quality & preventive control
Converted recurring manual judgement into coded checks for inactivity, rushed pace, SLA exposure and same-day errors.
Control table
Detection moves from retrospective to same-day, and becomes consistent
People leadership
Used the board daily to detect inactivity, coach pace against quality, and correct specific rules while the day was still open.
Use cases, results table
Coaching happens on the day, with the specific case in hand
Honest measurement
Separated observed behaviour, an owner estimate and unmeasured metrics, and wrote a validation plan for the gaps.
Results and measurement tables
Claims a reader can audit, which is what makes the rest credible
Positioning note. My contribution to this project is requirements definition, rule and
threshold design, interface and workflow design, AI-directed implementation, testing and
validation, and daily operational use. The code was produced with AI assistance under my
direction and reviewed by me against the behaviour I specified; I do not present this as
independent manual software engineering.
Related case studies in this portfolio cover the validation and insufficiency
sheet automation, the automated workflow control and the operational analytics suite on which this
dashboard depends.
Evidence, limitations and boundaries
What this case study claims — and what it does not
Supported by the project
A live multi-view operations dashboard, built in Google Apps Script and deployed as a web app in April 2026, covering an 80-performer department.
Three views — Live Monitor, Productivity, Quality — with automatic rule evaluation, per-performer drill-down, date-range selection and CSV export.
Seven management rules with stated thresholds, including activity status at 15 and 30 minutes, low output below four cases an hour, rushed pace above ten, and turnaround exposure measured per client, stage and case type.
Data read from the existing live working sheets and daily analytics outputs; no new data source, no new API integration, no separate database.
Continuous maintenance and daily operational use by me, including the drill-down and the productivity trend graph added after first release.
Observed changes in how quickly inactivity, rushing and same-day errors are identified and acted on.
Not claimed
Organisation-wide adoption. The tool was demonstrated to the operational managers, who responded positively, but it was not taken into their routine; it remains my own supervision view.
A measured time saving. The ~70% figure is my own estimate from daily experience, with no baseline or time study behind it.
An error-rate or SLA-breach improvement attributable to the dashboard. No such measurement was made, and the results table says so.
Independent verification of the access layer, or of the whole application, by anyone outside my own use.
Any screenshot, client name, employee name, case record, internal link, credential or source code. Every interface shown here is an illustrative mockup with synthetic values.
Design boundary that matters most
The dashboard surfaces signals and prioritises attention. It does not
judge people. A status label, a pace flag or a turnaround warning is the start of a conversation,
not a conclusion about a performer, and every one of them needs the case behind it before it
becomes a decision. That is why the drill-down exists, and why I read the case before I contact
anyone.
Closing reflection
This project did not create new data, and it did not replace the sheets my team works on. What it
did was remove the daily translation step between a working record and a management decision, and
replace it with rules that classify the signals the same way every time. The three parts of that
sentence matter separately: the live view, the classification, and the consistency. Any one of
them alone would have left me assembling the morning picture by hand.
The tool runs on the environment I was given, inside the constraints I actually work under, and
it is still the first thing I open in the morning. That is the honest measure of it: not a showcase
feature, but a working instrument that I depend on, and that I extended every time it fell short
of what the shift needed.
Khaled Medhat Mahmoud · Team Leader, Case
Validation · Live Operations Dashboard · Executive case study. All interface views in this document
are illustrative mockups containing synthetic data and are not screenshots of the deployed
environment.