← All work

Case study 02 · Regulated onboarding

A scalable KYC module for a TRCSL-regulated telco

It started with 32,417 rejected orders in the Retail Hub Sales App, the app our sales agents use to connect new customers. It grew into a KYC module for every digital channel, self-service and assisted.

Phase 1 · Proposed, not shipped Phase 2 · In progress
My role
Analysis and design, both phases
Timeline
Oct 2023 – now
Scope
Retail sales spp → all digital channels
Regulator
TRCSL, Sri Lanka

01 · Where it started

What the rejection data said

67% of rejections were capture or data-entry problems, not fraud.

32,417 rejected orders, Aug–Oct 2023, all from the Sales App. Add expired documents and 76% were avoidable.

Share of all rejections, by reason group
Reason groupShareAug → Sep → Oct
Image unreadable
37%
34 → 37 → 41 ↑
ID number mismatch
30%
28 → 33 → 31
Fraud or tampering
21%
26 → 19 → 17 ↓
Expired or underage document
9%
9 → 10 → 8
Wrong or incomplete document
3%
4 → 2 → 4
Capture or data entry (67%) Also avoidable (+9% = 76%) Not a design problem

The trend that mattered

34% → 41%

Unreadable images were getting worse every month, while fraud fell from 26% to 17%.

Top individual reasons

ID number mismatch30%
NIC not clear24%
Driving licence not clear7%
Invalid ID image6%

The three image reasons (24 + 7 + 6) make up the whole “Image unreadable” group.

02

Auditing the flow against the data

Most rejections were avoidable, so I went back through the Sales App’s KYC flow looking for the design flaws behind each reason.

Rejection reasonDesign flaw I foundChange I proposed
Image unreadable 37%The image capture wizard relied on the agent’s judgement for focus and lighting when photographing documents.Auto capture, with on-screen guides that help the agent get alignment, focus and lighting right.
ID number mismatch 30%Agents typed the ID number by hand. Any local ID that passed format validation was accepted, and passports had no format check at all, leaving room for human error and fraud.Read the ID number from the captured document instead of having the agent type it.
Expired or underage 9%No check on the customer’s age or the document’s expiry date before submission.Check age and expiry from the scanned ID before the order can be submitted.

03

Phase 1: fixing the Sales App

Proposed, not shipped
  • Auto capture with guides. On-screen guides help the agent get alignment, focus and lighting right, so image quality no longer depends on judgement alone.
  • ID number read from the document. The number comes from the captured ID, not the agent’s typing, which leaves far less room for human error and fraud.
  • Age and expiry checked upfront. Both are read from the scanned ID and checked before submission, so an expired or underage document is caught on the spot, not after rejection.
Before: the Sales App activation flow. The agent types the NIC number, then takes the ID photo through a plain camera screen with no guidance.
Before: the agent types the ID number by hand and judges the photo alone. ID details blurred.
After: a guided capture screen frames the card and says “Hold still…” before capturing, then both sides of the ID appear as thumbnails, with no typed ID number.
After: guides frame the card and capture it when steady, and the ID number comes from the document instead of the agent’s typing. ID details blurred.

Figma · Before and after

See the real Sales App screens, before and after the redesign

Capture guides, ID read from the document, and upfront age and expiry checks.

Open in Figma

04

The shift: KYC becomes a standard

The process team in our division set out to standardise KYC across every digital channel that reaches customers. I joined those discussions and presented the Sales App findings as evidence of where the process was failing.

SELF-SERVICE

Customers verify themselves. Starts with the MyDialog app, where the first version was designed.

ASSISTED

An agent verifies a customer, as in the Retail Hub Sales App. Follows as the next iteration.

ONE MODULE, EVERY CHANNEL

  • Same journey, same logic. One module behind every channel, self-service and assisted.
  • Responsive per channel. Adapts to each channel’s viewport.
  • Themed per app. Maps to each app’s theme, so it feels native wherever it sits.
  • Two content strategies. Wording and structure written for doing it yourself or helping a customer.

Built for reusability, scalability and flexibility from the first channel.

What the standard had to do

  1. 01

    An understandable journey

    Customers and agents know what is needed and why.

  2. 02

    Higher verification success

    Fewer applications rejected after submission.

  3. 03

    Regulatory alignment

    Every channel meets TRCSL rules the same way.

  4. 04

    Flexible per product

    Different criteria without a new form each time.

05

Phase 2: one module for every channel

In progress

I’m the designer of the module. The aim was a structure flexible enough for each product’s rules and simple enough to scale to every channel.

A

Five common KYC categories form the shared core. Contact, address proof, identity, signature and extended. Each is designed once, so every product asks for it the same way.

B

Each product picks the categories it needs, plus additional fields. A product combines categories and adds its own fields on top, instead of forking the form.

C

A new category only when none fits. If a future product needs something no category covers, the core gains a category. The form itself doesn’t change.

Same module, very different asks

Products need very different depths of KYC, from two fields to a full financial profile. Each one picks the categories it needs, and anything unique goes in as additional fields.

KYC categories each product requires, plus any additional fields
PRODUCTCONTACTADDRESS PROOFIDENTITYSIGNATUREEXTENDEDADDITIONAL FIELDS
iPhone sale✓····—
Dialog Television✓✓·✓·—
Mobile connection·✓✓✓·—
Government employee package·✓✓✓·Government ID or appointment letter
Savings product (fintech)····✓—

SHARED CORE · PICK WHAT’S NEEDED

Contact · name, mobile
Address proof · bill or statement
Identity · ID, liveness
Signature
Extended · financial profile
+ New category, only if none fits

PER PRODUCT · ADDITIONAL FIELDS

Government package · proof of employment
Optional, set per product

OUTPUT

One rendered form

In every self-service and assisted channel

The modular structure: shared categories each product picks from, plus what each product adds.

Options I rejected

A field library, combined per product. List every possible KYC field, design each one, and let each product pick the combination it needs.

Why not: every new product meant defining its KYC from scratch, in its own order. The journey would drift from product to product and wouldn’t scale consistently.

One worst-case form, hide what’s not needed. Structure every possible field for the heaviest product, then hide the ones each product doesn’t use.

Why not: a two-field iPhone sale would still be shaped around fintech KYC. Hidden fields leave half-empty steps, and every new requirement changes the one master form for every product.

Three MyDialog screens of the KYC module. Step 1, identity verification: choose NIC, driving licence or passport and capture the ID images. The same step after capture, with a Capture again option and Next step enabled. Step 2, billing address: use the ID address or enter a different one and upload a utility bill or bank statement as proof. Face verification, additional documents and signature follow as collapsed steps.
Self-service in the MyDialog app: one screen, steps unlock in order. ID details blurred.
Assisted · next iteration

Same module, different voice

The assisted version reuses the same sections and rules. What changes is the information architecture and the wording, because an agent is completing it for a customer rather than for themselves.

SELF-SERVICETake a photo of your ID
ASSISTEDTake a photo of the customer’s ID

Illustrative example of the shift in wording.

06

Result

Phase 1 · Proposed, not shipped
  • Fixes proposed for the three causes behind 76% of rejections
  • Deprioritised before launch, a business decision outside my control
  • The findings went on to shape the company-wide KYC standard
Phase 2 · In progress
  • Findings fed the company-wide KYC standard
  • Self-service version designed; assisted follows as the next iteration
  • Design proposed. The next step is standardising the underlying systems so every channel can use it. Plus extending to fintech.

For Homey

Why this matters at Homey

UK conveyancing has the same shape of problem. Firms must verify ID and address before a sale can progress, and a mismatch means asking for more proof. That is the billing-proof rule here.

The approach transfers: start from the rejection data, fix capture where it fails, then build one verification core that every channel shares.

Next · Client work

Founders on the other side of the world, delivered remotely

← Back to home↑ Back to top