๐Ÿ‡ฌ๐Ÿ‡ญ ๐Ÿงช โœ”๏ธ

Textract ID Fallback A/B Test

Measuring the impact of AWS Textract as a fallback for users whose ID verification failed at Margins (primary provider) due to mistyped ID numbers

Experiment: Feb 25 - Mar 17, 2026
Updated: March 18, 2026
Database: GHANA_PROD
Significant
Statistical Result
6,328
Total Users in Test
+4.39 pp
KYC Pass Rate Lift
p = 0.000234
p-value (Z-test)

๐Ÿ” Context

When a Ghana KYC user's ID verification fails at Margins (the primary provider) with a FAILED_VERIFICATION reason, the treatment group gets a second chance via AWS Textract. Textract uses OCR to read the ID number directly from the uploaded card image, and if it differs from what the user manually typed (i.e., the user made a typo), a new KYC record is created with the corrected ID and Margins verification is retried automatically.

Why it works: Users often mistype their ID numbers during KYC submission. Textract reads the correct ID from the card image itself, fixing the mismatch that caused the initial failure.

The experiment has been running since Feb 25, 2026 with a 50/50 split:

  • Control (50%): Standard flow โ€” Margins ID verification fails, user must retry manually
  • Treatment (50%): Margins ID verification fails โ†’ Textract extracts ID from card image โ†’ if different from user input, auto-retries with the corrected ID

Note: This fallback only triggers for FAILED_VERIFICATION โ€” not for selfie failures, face comparison mismatches, or other rejection reasons. Textract is the 1st fallback tier, positioned before the existing Chenosis fallback in the chain.

KPI: Did the user ultimately pass KYC (KYC_VERIFIED = true) after being assigned to the experiment?

๐Ÿ“ˆ Evolution: Mar 9 vs Mar 18

The previous analysis (Mar 9) found no significant difference with 5,217 users. With 6,328 users and more maturation time, results are now significant.

Mar 9 Analysis
Not Significant
5,217 users | -1.54 pp (control led) | p ~ 0.26
โž”
Mar 18 Analysis (Now)
Significant
6,328 users | +4.39 pp (treatment wins) | p = 0.000234

Note: Different KPI methodology โ€” previous used post-assignment recovery events, current uses final KYC_VERIFIED status from the user table. The current approach captures the full user journey including delayed verifications.

๐Ÿ“Š A/B Test Results

Control โ€” No Fallback
63.54%
KYC Pass Rate
Total users assigned 3,151
KYC Passed 2,002
KYC Not Passed 1,149
95% CI [61.84%, 65.20%]
VS
Treatment โ€” Textract Fallback
67.93%
KYC Pass Rate
Total users assigned 3,177
KYC Passed 2,158
KYC Not Passed 1,019
95% CI [66.28%, 69.53%]
Statistically Significant โ€” Treatment Wins
Two-proportion Z-test on KYC_VERIFIED rate | 95% confidence level
3.6795
Z-statistic
0.000234
p-value
+4.39 pp
Absolute Lift
+6.91%
Relative Lift
0.0925
Cohen's h (small)
95.74%
Statistical Power

Confidence Intervals (Non-Overlapping)

Control 95% CI
63.54%
[61.84% โ€” 65.20%]
Treatment 95% CI
67.93%
[66.28% โ€” 69.53%]

Confidence intervals do NOT overlap โ€” Control upper bound (65.20%) < Treatment lower bound (66.28%)

๐Ÿ“ˆ Key Metrics at a Glance

Additional KYC Passes

+156
Treatment recovered 156 more users than control (2,158 vs 2,002)

Assignment Balance

50.2 / 49.8
Treatment / Control split (well balanced)

Test Duration

21 days
Feb 25 โ€” Mar 17, 2026

Test Power

95.7%
Well-powered (threshold: 80%)

๐Ÿ“… Weekly Trends

Week Control Users Control Pass Rate Treatment Users Treatment Pass Rate Difference
Feb 23 โ€“ Mar 1 985 64.67% 1,003 70.69% +6.02 pp
Mar 2 โ€“ Mar 8 1,493 65.51% 1,478 67.86% +2.35 pp
Mar 9 โ€“ Mar 15 655 57.40% 680 63.82% +6.42 pp
Mar 16 โ€“ 17 18 61.11% 16 75.00% +13.89 pp

Treatment outperforms control in ALL weeks consistently. The effect is stable and directionally consistent.

Note: Week of Mar 9 shows lower overall rates for both groups (users assigned more recently have had less time to complete KYC). Mar 16-17 has very few assignments and is excluded from conclusions.

๐Ÿ’ก Key Findings

Treatment Significantly Improves KYC Pass Rate

The Textract ID fallback increases overall KYC verification success by 4.39 percentage points. This is highly significant (p = 0.000234) with strong power (95.7%).

Control KYC pass rate 63.54%
Treatment KYC pass rate 67.93%
Absolute improvement +4.39 pp
Relative improvement +6.91%

156 Additional Users Pass KYC

Treatment group has 156 more KYC-verified users than control (2,158 vs 2,002), despite nearly identical group sizes. These are users who would have otherwise failed KYC.

Extra verified users +156
Per 1,000 users entered +44 extra pass
Fewer failures 1,019 vs 1,149 (-130)

Consistent Across All Weeks

Unlike the Mar 9 analysis which showed inconsistent weekly trends, the current data shows treatment winning every single week. The effect is real and stable.

Week 1 (Feb 23 - Mar 1) +6.02 pp
Week 2 (Mar 2 - Mar 8) +2.35 pp
Week 3 (Mar 9 - Mar 15) +6.42 pp

๐Ÿ”ฌ Methodology

Data Source & Query Logic

โ–ผ
-- KPI Query: KYC pass rate per experiment variant SELECT ea.identifier, ea.variant, CASE WHEN u.KYC_VERIFIED = true THEN 1 ELSE 0 END as kpi FROM GHANA_PROD.banking_service.experiment_assignments ea JOIN GHANA_PROD.banking_service.user u ON ea.identifier = u.id WHERE ea.experiment_name = 'kyc_textract_id_fallback'

Tables: banking_service.experiment_assignments + banking_service.user
Join: experiment identifier (USER_ID) = user.id
KPI: User's current KYC_VERIFIED boolean status
Test: Two-proportion Z-test (two-tailed, 95% CI, Wilson score intervals)
Effect size: Cohen's h = 0.0925 (small but practically meaningful)

Difference from Mar 9 Analysis

โ–ผ
AspectMar 9 AnalysisMar 18 Analysis (Current)
KPI Post-assignment recovery rate (from notification events) Final KYC_VERIFIED status (from user table)
Data source BACKEND_NOTIFICATIONS events banking_service.user
Sample size 5,217 (2,610 + 2,607) 6,328 (3,151 + 3,177)
Period Feb 22 โ€“ Mar 9 Feb 25 โ€“ Mar 17
Result Not significant (p ~ 0.26, -1.54 pp) Significant (p = 0.000234, +4.39 pp)

The KYC_VERIFIED approach captures the user's final state regardless of when/how they completed verification. This includes users who may have verified days after assignment. The event-based approach in the previous analysis only captured immediate post-assignment recoveries and may have missed delayed successes.

๐ŸŽฏ Recommendation

Ship Treatment โ€” Enable Textract Fallback for All Users

The results are conclusive: treatment significantly improves KYC pass rate by 4.39 pp with high statistical confidence (p = 0.000234) and strong power (95.7%). The effect is consistent across all weeks.

Expected impact at scale ~44 additional KYC passes per 1,000 users
Confidence level 99.98% (p < 0.01)

Monitoring After Rollout

After shipping to 100%, continue monitoring:

KYC pass rate overall Should increase ~4 pp
Textract API costs Track per-verification cost
Verification latency Textract adds extra step

โš ๏ธ Caveats

  • KPI measures current state: KYC_VERIFIED reflects each user's current status, not specifically the post-Chenosis-failure recovery. Some users may have verified through other paths.
  • Maturation effect: Earlier cohorts (week 1) have had more time to complete KYC than later cohorts (week 3), which explains the lower rates in recent weeks for both groups.
  • Assignment volume drop: Assignments dropped significantly after Mar 11 (from ~200/day to ~10/day), suggesting the experiment scope may have changed or the triggering condition narrowed.
  • Small effect size: Cohen's h = 0.0925 is classified as "small." While statistically significant and practically meaningful for KYC volume, the per-user effect is modest.