A Six weeks of fieldwork, 84 users, and more dropped calls than we'd like to count here's how we rebuilt Etisalat's self-care portal from the ground up.
Mobile-FirstAI-Guided12 Requirements★ 5 Unique Features
0
Research Participants
0
Survey Responses
0
Research Methods
0
Markets Covered
0pp
Bill Comprehension Lift
01 · Project Brief
The Problem, In Plain Terms
We spent six weeks talking to subscribers across Dubai, Abu Dhabi, Sharjah, and Ajman. The same frustrations kept coming up, almost word for word.
Reactive Support
By the time most users knew something was wrong, it had already cost them a dropped call, a payment that failed to go through, a video frozen mid-meeting.
68%
found out when a call dropped
Bill Confusion
Telecom billing language is its own dialect, and most subscribers don't speak it. In testing, only 3 out of 24 participants could tell us what a "VAS bundle auto-renew" charge actually meant.
52%
of call centre contacts are bill-related
Repetition on Escalation
Every time a user got transferred, they started from scratch. Most had already tried to fix things themselves in the app but the agent had no idea.
78%
had to repeat issue to 2+ agents
02 · Research Methodology
How We Did the Research
We used six different methods because no single approach gives you the full picture. What people say in a survey and what they actually do in the moment can be very different things.
Contextual Inquiry
90 min sessions
Sat with people in their homes and offices while they dealt with real problems. No scripts, no staged tasks just watching what actually happened.
Moderated Usability Testing
60 min sessions
Put the NLP wizard and the plain-language bill explainer side-by-side with the existing app to see which one people could actually get through.
Diary Study (7-day)
Longitudinal
Asked 12 participants to note every time they hit a problem over seven days. Helped us understand not just what the issues were, but when and why they happened.
Intercept Survey
8 min
A quick 8-minute survey to check whether what we were hearing in qualitative sessions was representative of the wider subscriber base.
Heuristic Evaluation
4 evaluators · 2 hrs
Four evaluators combed through the existing app independently, rating issues by severity. They found things users had simply learned to work around.
Competitive Analysis
6 apps · du, Zain, STC, Ooredoo, T-Mobile, Singtel
Looked at how six other operators handle the same challenges some better, some worse. Useful for knowing where the bar actually sits.
Research Timeline
Week 1–2
Recruitment & Screener
An SMS campaign went out to 340 subscribers across four Emirates. After screening, 84 people matched what we were looking for a solid mix of prepaid and postpaid users with meaningful usage history.
Six screen-reader users were brought in through Al Noor Training Centre. We wanted accessibility built in from the start, not patched in at the end.
Week 2–4
Contextual Inquiry (18 sessions)
Watched Fatima try to dispute a roaming charge from her Abu Dhabi apartment. After 17 minutes of dead ends in the app, she gave up and called support instead.
Omar from Sharjah called support three times in one week about the same billing problem. A different agent each time, starting from square one every time.
Week 3–4
Diary Study (12 participants)
One participant wrote: "Ran out of data at Dubai Airport app wouldn't even open, had to borrow a colleague's hotspot." That confirmed our suspicion about offline being a genuine need.
Another participant checked their data balance five times in two days before a London business trip genuinely anxious about unexpected roaming charges they hadn't planned for.
Week 4–6
Usability Testing (24 sessions)
Ahmed found his bill in 9 seconds on the prototype. On the current app, the same task took 47 seconds and he failed on his first attempt.
Eight participants couldn't find the "dispute a charge" option at all in the current app. Every single one of them found it within 12 seconds in the annotated prototype.
Week 5–6
Survey Fieldwork (312 responses)
When we asked "how do you usually find out there's a network problem?" 68% said when a call dropped or a payment failed. Only 8% had ever received a proactive alert from Etisalat.
About 44% said they'd share their location for a coverage map with no incentive at all. That number jumped to 71% when we mentioned a 500 MB reward.
Week 6–7
Analysis & Synthesis
Affinity mapping across 18 sessions gave us 310 data points. "Unexpected charge" came up 72 times more than twice as often as the next most common theme.
Journey mapping showed a 47-minute average gap between when the network had a measurable problem and when users actually found out about it. That's a long time to be in the dark.
Participant Criteria
Segment
Age
Data Usage
Prepaid
22–35
≥3 GB/mo
Postpaid
30–50
≥10 GB/mo
SMB
38–60
≥50 GB total
Accessibility inclusion: Six screen-reader users across prepaid and postpaid plans were included from the very beginning partly to test WCAG compliance, and partly because their experience tends to surface issues that sighted users simply don't notice.
03 · Persona Validation
Three People We Kept Coming Back To
These aren't invented archetypes. All three emerged directly from fieldwork and in a few cases, what we discovered in the research surprised even us.
AA
Ahmed Al Mansoori
Digital Marketing Manager · 32 · Dubai
★ The "Two Taps or I'm Calling" Type
67%
Gave up within the first few taps and just called support instead
89%
More likely to spot the status ribbon when it's placed at the very top
"If I need to tap more than twice, I'll just call. I really don't have time for menus."
FA
Fatima Al Mansoori
HR Manager · 38 · Abu Dhabi
★ The One Who Needs to Know
6/7
Days in her diary where she mentioned worrying about the next bill
78%
of family account managers we surveyed had received an unexpected bill in the past three months
"My son burned through 22 GB in one week playing games online. I had absolutely no idea until the bill showed up."
OA
Omar Al Mansoori
General Trading Business Owner · 54 · Sharjah
★ The "Just Tell Me What It Means" Type
4×
Times he called support in a single month about the same issue
3.5 min
Reading time on the prototype he went through every single annotation
"What does 'ISD bundle' even mean? I just need to know did that charge come from my trip to London?"
04 · Key Research Findings
What the Research Actually Showed
These four findings came up consistently regardless of which method we were using or who we were talking to.
Finding 01 · Reactive Support
By the time people knew something was wrong, it had already cost them.
In 15 of our 18 sessions, users only found out about a network problem because something had already broken a call dropped, a video froze, or a payment failed. Telemetry showed that by that point, the issue had typically been detectable for 47 minutes.
The 8% of participants who were already getting proactive alerts from a competitor's service were noticeably happier overall: NPS +34 against a baseline of +12, and they called support less often.
How users discover network issues
Found out when call dropped
68%
Video/streaming buffered
54%
Payment/app failed
41%
Noticed slow speeds
29%
Received proactive notification
8%
Finding 02 · Bill Confusion
Once the bill was written in plain language, people could actually understand it.
At baseline, only 3 of 24 participants could explain what a "VAS bundle auto-renew" charge meant. When we showed the annotated prototype same charge, different wording 21 out of 24 identified it correctly within 8 seconds.
After seeing the annotated bill, the share of users saying they wanted to call support dropped from 54% to 18%. Trust score on the same bill went from 2.3 to 4.1 out of 5.
Metric
Baseline
Annotated
Delta
Charge identified
12.5%
87.5%
+75pp ↑
Time to identify
94 sec
8 sec
−91% ↓
Escalation intent
54%
18%
−36pp ↓
Trust score (5pt)
2.3
4.1
+1.8 ↑
'I understand my bill'
29%
84%
+55pp ↑
Finding 03 · Repetition on Escalation
Nobody wants to explain their problem three times.
Three quarters of people who'd contacted support in the past 90 days had to repeat themselves to at least one different agent. And when users escalated from the app to live chat, 87% said the agent had no idea what they'd already tried.
Showing users a summary of what had been passed to the agent before they even joined the queue made the wait feel 23% shorter. The actual wait time was identical. CSAT went up 18 points.
Escalation pain points (n=312)
Had to repeat to 2+ agents
78%
Agent had no app context
87%
Felt interaction wasted time
65%
Would use self-care if faster
83%
Prefer async callback
71%
Finding 04 · NLP Wizard (UX-T01) ★ Unique
Free-text works better than menus mostly.
On almost every measure, the NLP wizard beat the category menu. But we ran into a real problem: vague inputs like "phone is slow" were misclassified 27% of the time. That's too high to ship without a fallback.
Regional language accuracy: Arabic and Urdu input came in at 61% well short of the 85% minimum we set. This is a blocker for launch, not a nice-to-have fix.
Metric
Category Menu
NLP Wizard
Time to first fix suggestion
42 sec
18 sec
Correct routing accuracy
71%
89%
User satisfaction (1–5)
3.1
4.3
Task abandonment
31%
14%
Ambiguous input failure
N/A
27% misclass ⚠
05 · Interactive Screen Analysis
9 Portal Screens Design Decisions & Live Prototypes
Each screen is backed by research evidence. Interact with the prototypes to experience the UX decisions in action.
Dashboard
Recommended Plans
Smart Diagnose
Coverage Map
Bills & Plans
Family Plan
Usage Analytics
Live Support
Settings
Dashboard & Account Overview
UX-D01UX-D02 ★ UniqueP0 · Core
Ahmed told us "if I need more than two taps, I'll just call." The dashboard had to work for someone like him first. Moving the status ribbon to the top above the fold meant he could see what he needed in a single glance, 89% of the time.
Status Ribbon Placement Test
89%
improvement in first-glance visibility when the status ribbon was moved to the top of the screen
Burn-Rate Sparkline vs Static Counter
88%
preferred seeing "projected to last until Jun 28" over a static GB remaining number
Misinterpretation Risk
2/16
users aged 50+ initially mistook the sparkline for a speed indicator a brief first-load tooltip should clear that up
Key Design Decisions
1
Status ribbon green for healthy, amber for degraded, red for outage. Colours refresh within 30 seconds of any network change. Tapping it takes users straight to diagnostics.
2
Data sparkline the "projected to last until Jun 28" line uses a rolling 30-day average, updated each night. Note: amber text on white backgrounds doesn't pass WCAG contrast needs to darken to #B8860B.
3
Plan suggestion nudge it's a card, not a modal. Dismiss it and it won't reappear until the next billing cycle starts.
4
Quick actions Recharge, Troubleshoot, Bills, and Family, all within two taps from the home screen. That's what kept Ahmed from just calling instead.
LOW RISKWell-validated P0 ship in Sprint 1
Try it: Tap the status ribbon to cycle through the three network states. Dismiss the nudge to see how it behaves. Hit “See Plans” to bring up the recommendation sheet.
My Account
AA
Postpaid 30GB · Active
Network healthy
All systems operational
Tap to cycle →
Data Remaining
14.2 GB
Projected to last until Jun 28 · based on your pattern
847
Min Calls
312
SMS Sent
Off
Roaming
Plan right-sizing suggestion
You used 60% of data last 2 cycles. Save AED 45/mo
✕
Quick Actions
Recharge
Troubleshoot
Bills
Family
Recommended Plans for You
Smart 20 GB
RECOMMENDED
AED 149/mo
AED 199
20 GB Data · Unlimited Calls · 100 SMS/day
Smart 15 GB
AED 129/mo
15 GB Data · Unlimited Calls · 50 SMS/day
Current: 30 GB
AED 199/mo
30 GB Data · Unlimited Calls · 100 SMS/day
Recommended Plans (UX-B02)
UX-B02 ★ UniqueP1 · AI-Powered
This was the feature that made users feel like Etisalat was actually on their side. When someone sees "you could save AED 45 a month with a smaller plan" and it's grounded in their real usage it reads very differently from an upsell.
Loyalty Uplift Intent
69%
said this feature alone would make them more likely to stay with Etisalat long term
Needed Transparency
25%
needed some reassurance before they trusted it they wanted to know why an operator would recommend a cheaper plan
Trust Driver
Show the data
Showing the actual usage figures behind the recommendation is what made the skeptical 25% come around
Critical Design Decisions
1
Bottom sheet, not a modal preserves context. Nobody likes being interrupted mid-session by something that takes over the whole screen.
2
Show the exact number "Save AED 45/month", not "up to 30% off". A specific dirham amount lands differently than a percentage range.
3
Show your working "You've averaged 18 GB over the past 2 months on your 30 GB plan" is the line that converted the skeptical 25%.
4
Smart resurfacing dismiss it and it stays gone until next cycle. If someone’s just changed their plan, it doesn’t show at all for 60 days.
LOW RISKSprint 2 · ARPU impact question (OQ-05) needs Finance's input before this ships
⚠ Open Question OQ-05: Does recommending cheaper plans hurt revenue over a 12-month period, even if satisfaction goes up? We genuinely don't know yet. A/B test with at least 6 months of tracking is the right way to find out.
Bill Details
AA
June 2026 · AED 199 due Jun 15
Plan right-sizing suggestion
You used avg 18 GB/mo over last 2 cycles. The 20 GB plan covers your usage and saves AED 45/month.
Based on your actual usage · Jun 2026
CURRENT PLAN
30 GB Unlimited Calls
Valid till Jul 15, 2026
AED 199
ADD-ONS AVAILABLE
International Roaming Pack
UK · 1 GB · 7 days
Weekend Data Booster
+5 GB Sat–Sun
Smart Diagnose NLP Wizard
UX-T01 ★ UniqueUX-T02P0 · AI-Powered
Instead of making users pick from a dropdown of seven categories, this lets them type what's wrong in plain language. On average, it reaches a suggested fix in 18 seconds versus 42 with the old menu. The catch: vague inputs trip it up 27% of the time, so we need a fallback in place.
Time to First Fix Suggestion
18 sec
average, versus 42 seconds with the category menu a meaningful difference in practice
Ambiguous Input Failure
27%
misclassification rate on ambiguous inputs not acceptable without a fallback
Regional Language Accuracy
61%
Arabic/Urdu classification accuracy. The minimum threshold for launch is 85% this is a hard blocker
Key Design Decisions
1
Fallback for uncertain inputs if the NLP scores below 70% confidence, it surfaces a quick clarifying question rather than making a guess. Better to ask than to route someone to the wrong fix.
2
Ranked fix suggestions each option is ordered by its historical success rate from live telemetry, with an estimated time to complete. Much easier than staring at an open-ended help menu.
3
Escalate without starting over users can jump to live chat from any point. Everything they've tried gets logged and forwarded to the agent automatically.
4
Step-level feedback a thumbs up or down on each fix attempt feeds back into model retraining. That's the loop that keeps accuracy improving over time.
MEDIUM RISKNLP multilingual accuracy needs to reach 85% before this can ship in Sprint 2
← Smart Diagnose
Describe your issue in your own words
Smart Assist Hi Ahmed! Describe what's wrong in your own words. I'll find the best fix.
Network Dead-Zone Mapper
UX-T03 ★ UniqueP1 · CrowdsourcedPrivacy-First
A crowdsourced map of dead zones, with planned tower upgrade timelines the kind of thing you'd normally only find on OpenSignal. Getting users to contribute their location data means building trust before asking for it.
Would Definitely/Probably Use
76%
said they'd actually use this feature
Opt-In Intent (Unincented)
44%
willing to share location without any incentive privacy was the main hesitation
Opt-In with 500 MB Reward
71%
willing to contribute when offered 500 MB in return confirmed across 8 participants
Key Design Decisions
1
Show first, ask later let users see the coverage map before asking for anything. Demonstrate the value of the feature before requesting location access.
2
Location fuzzing every pin is blurred to a 200-metre radius for anonymisation. Legal and Privacy still need to verify this meets the UAE Federal Data Protection Law requirements.
3
Tower upgrade ETAs matter for retention one of our session participants said it directly: "If I know it'll be fixed in August, I won't bother switching." ETA data is pulled from the infrastructure planning API.
4
Incentivise contribution the 500 MB reward pushes opt-in from 44% to 71%. Critically, offer it after users have already seen the map and found it useful not before.
MEDIUM RISKPrivacy review against UAE Federal Data Protection Law needs to happen by Sprint 1, Week 2
← Coverage Map
Network dead zones near your location
Dead zone (strong)
Dead zone (mild)
Your location
+ Report weak signal at my location
✓ Location fuzzed to 200m radius for privacy. Opt out anytime in Privacy Settings.
Plain-Language Bill Explainer
UX-B01UX-B02 ★ UniqueP0 · Highest ROI
Of everything we tested, plain-language billing had the clearest and most immediate payoff. Omar called support four times in one month trying to make sense of charges he couldn't decipher. After we showed him the annotated prototype, he didn't call at all the following week.
Call Deflection Potential
38%
of bill-related calls could be prevented if the bill explained itself. That's roughly a fifth of all support volume.
Charge Identification Lift
+75pp
improvement in correct charge identification from 3 people out of 24 to 21
Localisation Critical
Arabic
The exact wording matters "travel roaming" works; "ISD bundle" doesn't. Omar confirmed this in his own words.
Key Design Decisions
1
Keep annotations short around 20 words hits the sweet spot. Omar read every single one. Much longer and people start skimming.
2
Smooth expansion animation stays under 200ms to prevent layout shift (CLS < 0.1). Keyboard focus moves into the expanded panel important for accessibility and keyboard navigation.
3
"Why this charge?" on tap the main reason people call support is to ask exactly this. Now they can get the answer without picking up the phone.
4
Plain language throughout "charged for data used during your London trip" rather than "ISD STD bundle." Each market gets localized copy in Arabic, English, and Urdu.
LOW RISKP0 · Sprint 1 · Highest single-feature ROI
June 2026 Bill
AED 199
Due: Jun 15
Base plan 30 GB Unlimited Calls
Your monthly plan subscription
AED 149
Why this charge?
Your standard monthly plan subscription for 30 GB data and unlimited voice calls.
Roaming charge UK (Jun 3–5)
ℹ Tap to understand
AED 39
Why this charge?
You used 4 MB of mobile data in the UK on Jun 4. No roaming pack was active billed at AED 9.75/MB (standard international roaming rate).
VAS bundle auto-renew
⚠ Unusual charge · Tap to understand
AED 7
Why this charge?
Your movie streaming add-on renewed automatically on Jun 1. You can disable auto-renew in Settings → Add-ons.
Taxes & fees (VAT 5%)
Government tax on taxable services
AED 5
Why this charge?
5% VAT applied on your total taxable services as required by the UAE Federal Tax Authority (FTA). This is a government-mandated charge.
Family Plan Management
UX-F01UX-F02P1 · Sprint 3
Fatima was managing five lines and keeping track of her kids' data by taking screenshots and comparing them manually because the app only ever showed the total pool. Per-line visibility was the feature she asked for by name.
Family Plan Admin Bill Surprise
78%
of family plan admins had received at least one unexpected bill in the past three months
80% Push Notification Value
13/16
of the postpaid family admins we tested rated the 80% usage alert as "very useful"
Donut Chart Re-render
≤100ms
required for the donut chart to update when any line allocation changes
Key Design Decisions
1
Steppers on small screens drag-and-drop doesn't work reliably on phones, so we switched to +/- buttons below 480px. The input is bounded so you can't accidentally over-allocate.
2
No auto-save users have to confirm changes with Apply. Prevents accidental edits when scrolling through the screen.
3
Parental controls a secondary PIN is required for any content filter changes, so kids can't switch them off. Schedules use the line's local timezone, and admins get a 90-day audit trail.
4
80% usage alert a push notification fires when any line hits 80% of its monthly allocation. This one feature would have prevented Fatima's "22 GB in a week" surprise.
LOW-MEDIUM RISKBackend-dependent · Sprint 3
← Family Plan Manager
Shared pool · 100 GB total
SHARED POOL THIS MONTH
100 GB total
64 GB allocated · 36 GB free
AK
Ahmed (Admin)
25 GB
25 GB
FA
Fatima (Spouse)
22 GB
22 GB
VK
Vihaan (Child)
17 GB ⚠ At cap
17 GB
⚠ Vihaan is at cap. 17/17 GB used this month.
Content Controls Vihaan
Child-safe content filter
Blocks adult content
Data schedule: Off 10PM–7AM
Manages nighttime usage
Usage Analytics
DashboardUX-D02 ★ SparklineAI-Powered
This screen is fundamentally about preventing that end-of-month panic. Fatima checking her data five times in two days before a trip isn't unusual it's what people do when the app gives them a static number and nothing more.
Preferred View
Projected Date
preferred seeing a projected end date over a raw GB number a significant preference
Open Question OQ-01
Refresh Rate
We haven't settled on refresh frequency yet. Nightly works for most users, but heavy users may find it feels like yesterday's data.
App Category Breakdown
Essential
Per-app breakdown was consistently requested. People want to know why their data disappeared, not just that it did.
Key Design Decisions
1
30-day rolling model updated overnight. For accounts with less than 3 days of history, it shows a plain counter with a "new account" note rather than a projection that would be meaningless.
2
Drill down on tap tapping the sparkline opens the full app-by-app breakdown. That's the level of detail heavy users were asking for.
3
Accessible text fallback screen readers get a plain-text version alongside the sparkline: "At this rate, your data will last until Jun 28." Fixes WCAG 1.1.1.
4
First-load tooltip for 50+ users two participants initially read the sparkline as a speed indicator. A one-time tooltip on first load is enough to correct that.
LOW RISKRun an A/B test to settle the nightly vs. 6-hourly refresh question (OQ-01)
← Usage Analytics
June 2026
Daily
Weekly
Monthly
MON
TUE
WED
THU
FRI
SAT
SUN
Data by app category
Gaming
5.2 GB
Streaming
3.8 GB
Social Media
2.4 GB
Browsing
1.7 GB
Other
1.1 GB
Context-Forwarding Support Handoff
UX-E01 ★ UniqueUX-E02P1 · 100% Desirability
This was the feature that made every single person in testing light up. Not one of our 24 usability participants thought it was anything less than "extremely important." The core idea is simple: by the time you get through to an agent, they already know your situation.
Universal Desirability
100%
of 24 usability participants rated context handoff as "extremely important" unanimous
Perceived Wait Time Reduction
−23%
reduction in perceived wait time, just from showing a context summary. Actual wait time was the same.
CSAT Increase
+18 pts
CSAT improvement from showing users what had been shared with the agent before they joined the queue
Key Design Decisions
1
Summary before the queue three bullet points showing what's already been tried and flagged. It reassures users that they won't have to repeat themselves, and it tells the agent what they're walking into.
2
Sequence matters the context reaches the agent before they accept the session. Agent is briefed first, then connects. Users see confirmation within 5 seconds.
3
Callback option at 10 minutes if the queue extends past 10 minutes, users get offered a callback slot instead. 71% preferred that over waiting on hold.
4
Live wait time updates the estimated wait refreshes every 60 seconds. Even when the number doesn't change, seeing it update makes the wait feel more manageable.
LOW RISKHeld by the CRM backend integration targeted for Sprint 3
← Live Support
Priya · Senior Network Agent
✓ Agent has been briefed on your issue
✓
Fix 1 (Wi-Fi calling) tried
✓
Diagnostics run: 3 checks done
!
Signal warn flag noted
✓
Account: Postpaid 30 GB · Last contact: 42 days ago
Est. wait: ~4 min (Updated 30s ago)
Priya · Agent
Hi Ahmed! I can see your indoor coverage issue and that you've already tried Wi-Fi calling. Let me check the tower near you.
Thanks, I tried Wi-Fi calling already.
Priya · Agent
I see a known attenuation flag on your diagnostics. Escalating to our network team now they'll resolve this within 4 hours.
Priya is typing...
Wait >10 min? Schedule a callback instead pick a time slot. Schedule →
Profile & Settings
Non-FunctionalUX-E02 NotificationsPrivacy
Settings is where users end up when something feels off with their account, or when they want to take control of what gets sent to them. The proactive outage alerts live here as an opt-in visible but not forced.
Preferred Alert Channel
Push + SMS
Preferred combination for critical alerts neither push nor SMS on its own felt reliable enough
Restoration Message SLA
≤10 min
Maximum time users were willing to wait for a "service restored" notification after a confirmed outage
Privacy-First Pattern
Opt-out default
Coverage data contribution is off by default. Show the value of the heatmap before asking users to share anything.
Key Design Decisions
1
Separate toggles for each alert type outage alerts, maintenance windows, and restoration messages are all independently controllable. People care about different things.
2
Channel preference per alert not every alert needs to be a push notification. Let users choose push, SMS, or email for each type independently.
3
Heatmap contribution off by default. Users see the map in read-only mode first. The 500 MB reward gets offered after they've already found it useful.
4
Language selector Arabic, English, Urdu, and Hindi. This isn’t cosmetic; it’s a genuine need for a significant part of the subscriber base.
LOW RISKUX-E02 is P2 deliver in Sprint 3
← Settings
AA
Ahmed Al Mansoori
ahmed.almansoori@gmail.com · Postpaid
Edit
Notifications
Network outage alerts
Push · SMS
Planned maintenance
Email
Service restored
Push
Data usage alerts (80%)
Push · SMS
Privacy
Coverage data contribution
Anonymised · 200m fuzzing
Usage analytics (personalisation)
For plan recommendations
Language & Region
App Language
Currency format
Accessibility
High contrast mode
Large text
06 · Accessibility Audit
The Accessibility Issues We Found
Four evaluators went through the prototype independently two sighted, one low-vision, one who relies entirely on a screen reader. Three findings are blockers for launch.
WCAG Criterion
Issue
Severity
Affected Req.
Recommended Fix
1.4.3 Contrast (AA)
Status ribbon amber colour on white fails at small text sizes
CRITICAL
UX-D01
Darken amber to #B8860B on white backgrounds; use icon + text (not colour alone)
1.1.1 Non-text content
Sparkline has no accessible alternative for screen readers
CRITICAL
UX-D02
Add aria-label: "Data projected to last until June 28 based on 30-day usage"
4.1.3 Status messages
NLP wizard input field lacks error state announcement
SERIOUS
UX-T01
Use aria-live="assertive" for error messages; announce category classification result
2.4.7 Focus visible
Bill line item expansion has insufficient focus indicator
MODERATE
UX-B01
Use 3px TEAL (#00D2C8) focus ring; ensure focus moves into expanded panel
4.1.2 Name, Role, Value
Parental control toggles lack descriptive accessible names
SERIOUS
UX-F02
aria-label must include line name: "Toggle child-safe filter for Vihaan's line"
What happens next: The two Critical issues the status ribbon colour contrast and the missing screen reader label on the sparkline need to be fixed in the first week of Sprint 1. QA should have an automated axe-core scan running in CI by Week 3. We've booked a screen reader regression test for the Sprint 2 prototype.
07 · Performance Benchmarks
Where the Prototype Passed and Where It Didn't
Testing was done on a Motorola G84 running Android 13 over a simulated 4G connection at 12 Mbps broadly representative of lower-end device usage across the UAE. Two results need attention before Sprint 2.
Metric
Target
Measured
Status
Action Required
First Meaningful Paint (4G)
<1.5s
1.8s
Amber
Lazy-load below-fold components; defer sparkline data fetch
Dashboard LCP
<2.5s
2.1s
Green
Monitor regression in Sprint 3
Status ribbon update latency
<30s
22s avg
Green
Ensure WebSocket fallback for low-bandwidth users
NLP intent classification
<2s
1.4s avg
Green
Monitor at P95 under load
Offline dashboard skeleton
1-hour cache
55 min
Amber
Extend service worker cache TTL to 65 min to ensure 1h coverage
Diagnostic report share link
<3s
3.4s
Red ⚠
Reduce report payload size; serve via CDN edge node
08 · Before/After Impact
What Changed
These are projections from usability testing and concept testing, not production data but the differences are large enough to take seriously.
Charge identification: 12.5%
↓
87.5%
Correct bill charge identification
Time to identify charge: 94 sec
↓
8 sec
Time to understand a charge
Escalation intent: 54%
↓
18%
Escalation intent after viewing bill
NLP task abandonment: 31%
↓
14%
Task abandonment rate (NLP wizard)
Perceived wait: baseline
↓
−23%
Perceived wait time (same actual wait)
Trust score: 2.3 / 5
↓
4.1 / 5
Bill trust score (5-point Likert scale)
Data opt-in: 44% (unincented)
↓
71%
Coverage heatmap opt-in with +500 MB reward
NPS baseline: +12
↓
+34
NPS with proactive notifications enabled
CSAT baseline: 0
↓
+18 pts
CSAT with agent briefed confirmation
09 · Sprint Planning
How We Sequenced the Work
Sprint order was driven by three things: how strongly the research backed up the feature, how complex the build is, and what unresolved risks we'd be carrying.
Sprint 1 · P0 Core
Foundation
◉ LOW RISK · Well-validated
UX-D01
UX-D02 ★
UX-T02
UX-B01
Hits all three core pain points. The bill explainer alone could take a meaningful chunk out of call centre volume and there's nothing technically uncertain about any of it.
Sprint 2 · AI Features
Intelligence
◉ MEDIUM RISK · NLP accuracy gate
UX-T01 ★
UX-T03 ★
UX-B02 ★
Both features in this sprint are gated by things outside design's control NLP accuracy needs to reach 85% for Arabic and Urdu, and the dead-zone heatmap needs legal sign-off under UAE data law. Neither should ship until those boxes are ticked.
Sprint 3 · Platform & Handoff
Completion
◉ LOW-MEDIUM · Backend dependency
UX-F01
UX-F02
UX-E01 ★
UX-E02
Context handoff is the feature users most wanted but it needs a CRM integration that doesn't exist yet. Family controls need a secondary PIN system and audit log storage. Both are waiting on backend work to be scoped and delivered.
Open Research Questions
OQ-01 HIGH PRIORITY
Burn-rate refresh frequency
Nightly or every 6 hours? For most users nightly is probably fine but heavy data users might feel like they're looking at old numbers. Needs an A/B test with engagement tracking.
OQ-02 HIGH PRIORITY
Async callback trigger threshold
We've set the callback trigger at 10 minutes but we're not confident that's the right threshold. A conjoint study with 200+ participants would give us more solid ground here.
OQ-04 MEDIUM
Probabilistic fix success format
How should we display fix success rates percentages, star ratings, or confidence bars? A preference test with around 50 participants should settle this quickly.
OQ-05 CRITICAL · BUSINESS
ARPU impact of downgrade nudges
Recommending cheaper plans will improve NPS. Whether it hurts revenue over 12 months, we genuinely don't know and that matters. Finance needs to weigh in before Sprint 2. A/B test with at least 6 months of tracking is the right way to find out.
10 · Design Recommendations
Five Things We're Confident About
Each of these came directly from what we saw in the field. They're not general UX principles they're specific to what this product needs to get right.
R1
Give the NLP wizard a way out when it's not sure
When the NLP scores below 70% confidence, show two or three clarifying options instead of making a guess. "Do you mean indoor coverage or device speed?" takes two seconds and avoids routing someone to the wrong place which happened 27% of the time in testing.
Evidence: 27% misclassification rate on ambiguous inputs across 24 sessions. Three of four heuristic evaluators flagged this independently. The fallback UI still keeps total time under the 2-second classification target.
R2
Let people see the map before asking them to share anything
Show the coverage map in read-only mode first. Let users explore it and find it genuinely useful before asking them to contribute. Then offer the 500 MB reward. Asking cold, before they've seen the value, will significantly reduce your opt-in rate.
Evidence: Opt-in went from 44% to 71% with the 500 MB incentive, tested across 8 participants. Legal still needs to confirm the 200-metre fuzzing approach meets UAE Data Protection requirements that review is due Sprint 1, Week 2.
R3
Tell users what you've already shared with the agent
Before joining the queue, show users a short list of what's been passed to the agent. Three items is enough: what they tried, any flags from diagnostics, when they last contacted support. It reassures the user and gives the agent context before the session starts.
Evidence: Perceived wait time dropped 23% and CSAT rose 18 points actual wait was unchanged. Eighteen of 24 participants described the experience as "a relief."
R4
Arabic and Urdu accuracy has to be fixed before launch, not after
61% classification accuracy on Arabic and Urdu inputs isn't a follow-up item it's a blocker. South Asian expat communities are among the fastest-growing subscriber segments in the UAE, and they're also the group most likely to struggle with English-only billing language. Shipping a product that half-understands them sends the wrong signal.
Evidence: Tested across 6 participants in both languages 61% accuracy. Target is 85% before Sprint 2. And the terminology matters: "travel roaming" lands correctly in Arabic; "ISD bundle" doesn't. Omar confirmed this in his own words.
R5
Alert family admins before the line runs out, not after
Fatima's diary showed a pattern of repeated checking and low-level anxiety, because she had no way to know how close any of her kids' lines were to hitting the cap. An 80% usage alert changes that. It's configurable, unobtrusive, and based on something users asked for directly.
Evidence: 13 of 16 postpaid family plan admins rated it "very useful." 78% of that same group had received a surprise bill in the last three months. One notification per line per month, and most of those surprises go away.
11 · Differentiating Features
5 Features That Don't Come Standard
These are the features where we pushed beyond what most telecom self-care portals do. Each one was prototyped and tested specifically none of them were assumed to work.
ID
Feature
What makes it unique
Risk
Research Outcome
UX-D02
Predictive Burn-Rate Sparkline
Projects when you'll run out based on your actual usage pattern. Most telecom apps show a static number this one shows a date.
LOW
88% of participants preferred it over a static balance. A brief onboarding tooltip is needed for the 50+ age group who initially misread the sparkline.
UX-T01
NLP Symptom Wizard
Type what's wrong in plain language. The wizard categorises it and ranks fixes by their real-world success rate from live data.
MEDIUM
Works well for clear inputs. Struggles with vague phrasing (27% misclassification) and regional languages (61% accuracy minimum threshold is 85%).
UX-T03
Dead-Zone Heatmap
Users can see dead zones near them and report weak signal spots. Tower upgrade ETAs are pulled directly from infrastructure planning data.
MEDIUM
76% said they'd use it. Opt-in rate doubles with a 500 MB incentive. Privacy review against UAE data law required before this can ship.
UX-B02
Proactive Downgrade Nudge
Tells users when they'd save money on a smaller plan based on their actual usage. None of the competitors we reviewed did this proactively.
LOW
69% said it would increase their loyalty. A quarter of users needed the "why" explained before they trusted it. ARPU impact still unknown flagged to Finance.
UX-E01
Context Handoff
Everything the user has tried plus any diagnostic flags reaches the agent before the session begins. The user sees confirmation that the agent is already up to speed.
LOW
Every single usability participant rated it "extremely important." Perceived wait time down 23%, CSAT up 18 points. Blocked on CRM backend integration.