Roadmap & Cost

One sequence, not four separate projects

Platform hardening and the new financing product aren't competing priorities. The hardening work is what makes the financing product's credit signal trustworthy, and the financing product is the forcing function that makes the hardening work worth doing now rather than eventually.

flowchart LR P0["Phase 0
Not engineering
parallel, starts now"] P1["Phase 1
Harden & consolidate
days to 2 weeks"] P2["Phase 2
Identity layer +
MVP financing
about 4 to 7 months"] P3["Phase 3
Automate what
Phase 2 proved"] P4["Phase 4
Scale"] P0 --> P1 --> P2 --> P3 --> P4 classDef now fill:#cfe8dc,stroke:#0b6948,color:#06442e,stroke-width:2px; classDef next fill:#dbe4ea,stroke:#2e4a62,color:#1c2f3f,stroke-width:2px; class P0,P1 now; class P2,P3,P4 next;

Phase 0: not engineering, parallel, starts now

Phase 1: harden & consolidate

This is the "low-hanging fruit" column from Architecture, done before or alongside the start of financing engineering: cheap, and it removes the specific risks a fintech product would otherwise inherit.

ItemWhy now
Lock down Express's CORS policyLive vulnerability, independent of everything else
Fix Express's dual schema-source-of-truth startup patternPrevents silent schema drift before more services depend on this pattern
Add Express smoke testsZero coverage today, cheap to start, expensive to retrofit later
Turn on automated Postgres backups for ExpressCloses a real data-loss risk immediately, ahead of any RDS migration
Fix GPS Dashboard's silent PostgREST truncationCurrently a correctness bug, not just a performance one
Write the "revoke anon/authenticated" rule down as a standing checklistMust apply to the new Financing service's Supabase project from day one

Phase 2: the identity layer & MVP financing

Platform

  • Build the canonical driver-identity layer (see Architecture)
  • Retire GPS Dashboard's direct anon-key table access in favor of a proper read API
  • Migrate Express's database to a managed service (RDS or its own Supabase project)

Financing MVP: human-in-the-loop

  • Driver/KYC data model, document upload, DIY Textract/Rekognition-assisted but human-approved verification
  • Manual underwriting review (no automated scorecard yet)
  • Basic servicing ledger, admin portal, SMS reminders
  • ConnectIPS/Fonepay-first manual payment reconciliation, field-agent cash collection tool

Goal: a small pilot cohort of 10 to 20 drivers, fully human-verified before automating anything, the same path Tugende and M-KOPA reportedly took before automating. This pilot scale is what the first-6-months cost estimate below is actually sized for.

Phase 3: automate what Phase 2 proved

Phase 4: scale

Cost

Rough planning estimate, not a quote

Team & timeline for Phase 2 (financing MVP)

3 to 5 people: one senior backend engineer owning the lending/fintech domain, one additional backend engineer for KYC/payment integrations (reusing Upahar's Supabase/FastAPI patterns directly cuts this down from generic industry estimates), one mobile/frontend engineer (lighter load if reusing the Upahar app shell for the driver entry point), part-time product/compliance-ops (the NRB KYC/AML workstream is real work, not overhead), part-time QA/DevOps. Roughly 4 to 7 months to a v1, narrower than generic 8 to 10 month industry estimates because of pattern reuse and a deliberately narrow scope. Phase 1 hardening work is comparatively small, days to low weeks of existing-team time, not a separate budget line.

Infra cost, first 6 months

Sized for what Phase 2 actually is: a 10 to 20 driver pilot, using the exact architecture decided in System architecture, not a hypothetical scaled-up driver base. One number per line, not a range, because at this scale usage barely moves the number month to month.

ItemMonthly, first 6 monthsBasis
Supabase (Postgres + Storage + Auth), own project$25Pro plan floor. Free tier is enough by usage but pauses inactive projects and has no support commitment, not appropriate for live KYC data
eKYC (DIY Textract/Rekognition)$10About $0.07/verification, generously sized for pilot volume plus retries
SMS (SparrowSMS)$5About NPR 0.85 to 1.4/SMS, 5 to 10/driver/month at 10 to 20 drivers
Payment/collection fees$5ConnectIPS-led, Rs 2 to 8/transaction, near-zero at pilot volume
App/backend hosting$20One small stateless EC2 container, same shape as Upahar's existing deploy
Total$65/monthAbout $390 for the first 6 months

This grows once the pilot cohort grows past Phase 2, most sensitive to eKYC volume and payment-rail mix, but that's a Phase 3 planning question, not a first-6-months one.

Platform hardening / consolidation, effort

ItemRough effort
Phase 1 low-hanging-fruit fixes (CORS, tests, backups, truncation fix, schema cleanup)Days to 2 weeks of existing-team time, no new infra spend
Express RDS migrationpg_dump/restore during a maintenance window, right-sized for this database's likely scale. 1 to 2 weeks engineering, plus about $15/month for a small Single-AZ instance, likely covered by AWS's 12-month free tier if the account is eligible. Do the immediate ad hoc backup (Phase 1) regardless of when this lands.
Canonical identity layerA single service other products call synchronously, not Kafka/event-driven. Realistically 4 to 8 weeks for a first version covering read access for Upahar + Express, longer if GPS Dashboard's access pattern is retired in the same phase
Cross-product analytics layer2 to 4 weeks for a lightweight version: one small reporting Postgres database, batch-fed on a schedule. A full warehouse or CDC/Debezium pipeline is confirmed premature at this data volume
Express partner API (auth, rate limiting, webhooks, docs) + point-to-point delivery4 to 6 weeks, can run in parallel with financing Phase 2/3
Key unresolved cost inputs
  • Actual Shufti Pro/FACEKI per-verification quotes (neither publishes pricing)
  • Actual negotiated eSewa/Khalti merchant fees
  • Whatever timeline/cost the regulatory path adds (BFI partnership negotiation vs. own-license pursuit), the single biggest unknown, and outside engineering's control

Open questions for the business

  1. Whether a licensed hire-purchase company specifically gets BAFIA ยง57's fast repossession rights, as opposed to a full BAFIA Class C finance company. Sources conflict, and this cannot be resolved by more research. Needs a Nepali banking/finance lawyer's direct read of Drivra's actual proposed structure. See Regulation.
  2. Legal structuring path: gates down-payment minimums, repossession rights, and go-to-market timeline.
  3. Capital source / lending partner: already in view, or does this design need to inform partner outreach?
  4. Vehicle sourcing: bulk dealer/brand relationship, or drivers bring their own vehicle for refinancing?
  5. Target down payment/tenure economics: Path A likely forces at least 40% down under NRB's LTV cap, Path B could go much lower.
  6. Positioning vs. RYD Nepal specifically: displace them, differentiate on trust/UX/loyalty-tier terms, or room for both.
  7. GitHub org/governance consolidation: resolve before a fifth product adds to the current two-org split.