The operating system for how African trade will actually work.
A greenfield strategy brief: what OgaHQ would build if starting today, and how it would win. Ten sections, each self-contained, each drawing on the patterns of companies that actually shipped their generation's defining infrastructure.
The greenfield thesis, in one page.
If we were starting OgaHQ from scratch today, we would build one system that runs an African trader's shop, keeps their books, and answers their customers — all from a WhatsApp message in whatever language the trader speaks. Nobody has shipped this combination. The window for someone to claim the category is the next 24 months.
The strategic bets
This document defends seven bets that shape everything downstream:
- WhatsApp-native, not WhatsApp-as-a-feature. Every competitor treats WhatsApp as a notification channel. We treat it as the operating surface.
- Multi-modal in local languages. Voice notes in Pidgin, Yoruba, Igbo, and Hausa. Photos of receipts. Screenshots of bank alerts. All understood.
- Two-sided WhatsApp. Merchant and customer message the same number. Nobody has shipped this at scale.
- Reconciliation is the moat. The data compounds. Once every sale ties cleanly to every payment, we own the ground truth on merchant cash flow — which is the foundation for lending, credit, and category expansion later.
- Freemium land-and-expand. Starts free. Business tier at $15/mo anchors monetisation. Follows Shopify and Notion's playbook, adapted to African price sensitivity.
- Operations first, payments close the loop. Ship the operations OS. Then layer OgaPay (payment reconciliation) as the killer feature that makes everything above it truthful.
- Nigeria first. Then linear expansion. Own Lagos. Then Accra. Then Nairobi. Pattern proved by every African fintech that scaled.
The path
Twelve weeks to MVP with 10 pilot merchants in Balogun and Ikeja markets. Nine months to 500 paying merchants across Nigeria. Eighteen months to break-even. Three years to 10,000 merchants and category leadership across four African markets.
The ask
$150,000–$300,000 seed round. 40% into product, 30% into field acquisition (Business Relationship Managers on the ground in Lagos markets), 15% into infrastructure and compliance, 15% operational reserve. Break-even projected at month 18. Target Year-3 metrics: 10,000 active businesses, $150K MRR, 80% gross margin, LTV:CAC of 7:1 or better.
Payments got their African moment: Flutterwave, Paystack, Chipper, MTN MoMo. Logistics is having its moment: Kobo360, Sendy, Lori. HR is having its moment: SeamlessHR, PaidHR. Retail operations — the layer where the money is actually counted — has no winner yet. There's a five-year window before someone claims it. This document is the plan to be that someone.
What we're building and why.
A product requirements document has one job: to align everyone on the same picture of what we're building and, more importantly, what we're not. This PRD frames the vision, the users, the requirements, and the success metrics that follow.
1.1Vision
OgaHQ is the operating system for African trade. One system that runs the shop floor, keeps the books, and talks to the customers — all reachable from a WhatsApp message, in whatever language the trader speaks.
The measure of success is not "how many features shipped" or "how many downloads." It is: on a Tuesday evening, does an African trader trust their books? If the answer is yes at scale, we won. Every other metric is instrumental to that one.
1.2Problem statement
Approximately 40 million SMEs run across Sub-Saharan Africa. Roughly 80% of retail transactions are informal or off-book. Three in four traders track sales on paper or by memory. They lose an estimated 5–10 hours per week and 10–20% of potential revenue to fragmented operational tooling.
The category-leading options fail at the same core thing: they demand the trader change to fit the software. Sage and QuickBooks are built for Western accountants at Western prices. Loyverse and Square lack accounting, WhatsApp, and African payment rails. The notebook doesn't add up. WhatsApp alone has no memory. Every trader compensates by juggling four bank apps, three notebooks, and a WhatsApp thread that scrolls out of scope by Friday.
The existing tools work for the trader. OgaHQ works like the trader.
1.3Target market
Primary target: urban and peri-urban African SMEs across five verticals, ordered by initial fit:
- Retail — provisions, cosmetics, boutique, electronics. Highest density in Lagos, Accra, Nairobi. Our beachhead.
- Wholesale distribution — FMCG distributors serving downstream shops. Higher transaction values, more complex credit tracking.
- Personal services — salons, barbers, gyms, laundries. Booking + retail + labour reporting.
- Small hospitality — cafes, small restaurants, food kiosks. Different tempo, similar operations.
- Small pharmacies — regulated retail, more complex compliance, higher LTV.
Geographic priority: Nigeria first (Lagos, Abuja, Port Harcourt), then Ghana (Accra, Kumasi), then Kenya (Nairobi, Mombasa), then South Africa (Johannesburg, Cape Town). Diaspora as a supplementary customer segment for e-commerce (§04).
1.4Personas & jobs-to-be-done
Five canonical personas. Every feature must serve at least one. If it doesn't, it doesn't ship v1.
| Persona | Role | Primary JTBD | Channel preference |
|---|---|---|---|
| Amara | Retail shop owner, Lagos | "Help me know my business is working, without spending my evening on it." | WhatsApp voice + mobile web |
| Emeka | Wholesale distributor, Accra | "Help me track credit across 200+ customers and reconcile transfers across 3 banks." | Desktop + WhatsApp |
| Fatima | Salon owner, Nairobi | "Help me manage bookings, track stylist commissions, and remember every customer." | Mobile + WhatsApp |
| David | Cashier at Amara's shop | "Let me process sales fast without needing training. Don't let me break the books." | POS (mobile web) |
| Ngozi | Online shopper, diaspora | "Let me buy from a Lagos boutique via WhatsApp and pay from South Africa." | WhatsApp only |
1.5Functional requirements
Requirements bucketed as MoSCoW. Must = required for MVP. Should = required for Beta50. Could = valuable in Phase 2. Later = Phase 3+.
| Domain | Requirement | Priority |
|---|---|---|
| POS | Standard sale (with customer), rapid sale (no customer), multi-payment split | Must |
| POS | Offline sale queue + sync when online (server-timestamp-wins, 500-tx local capacity) | Must |
| POS | Void with permission gate + accounting reversal | Must |
| Inventory | Product CRUD, stock movements, barcode generation, low-stock alerts | Must |
| Inventory | Photo → product entry via Gemini vision | Should |
| Accounting | Double-entry ledger, auto-post from POS + expenses, chart of accounts | Must |
| Accounting | P&L, cash flow, balance sheet reports | Should |
| Invoicing | Create, edit, void, PDF render, per-tenant invoice prefix | Must |
| CRM | Customer CRUD, credit balance tracking, purchase history | Must |
| Payments | Cash / POS terminal / transfer / mobile money as recorded modes | Must |
| Payments | OgaPay: QR + bank ref + auto-reconciliation via Paystack webhook | Should |
| Two-sided WhatsApp interface (merchant + customer on same number) | Could | |
| Auth | Multi-tenant, RBAC (owner / manager / cashier), self-serve signup | Must |
| Reports | Transaction report, item sales, sales analysis (profit/cost/staff) | Must |
| Settings | Company profile, logo, receipt customisation | Must |
| HR / Payroll | Employees, roles, monthly payroll | Could |
| E-commerce | Public storefront sharing OgaHQ catalogue | Later |
| Social | AI-generated posts to Instagram / Facebook / TikTok | Later |
| Multi-branch | Multi-location inventory and reporting | Later |
1.6Non-functional requirements
| NFR | Target | Rationale |
|---|---|---|
| POS latency | <3s online, <1s offline | Cashier must not slow the queue. |
| API p95 | <500ms | Dashboard, WhatsApp agent both depend on it. |
| WhatsApp reply latency | <6s (median), <10s (p95) | Feels like a conversation, not a batch job. |
| Availability | 99.5% (v1); 99.9% (Year 2) | African commercial hours: 6am-9pm local. Downtime = lost sales. |
| Offline queue capacity | 500 sales per device | Sufficient for a full trading day without connectivity. |
| Data residency | Data physically stored in EU or SA | NDPA / GDPR compliance until African cloud regions mature. |
| Security | Every mutation audit-logged, append-only, 7-year retention | Financial records + dispute resolution. |
| Multi-tenant isolation | Every row carries tenant_id. Cross-tenant queries impossible by construction. | Trust invariant. |
1.7Success metrics
North Star: weekly active merchants — merchants who log ≥ 3 tool actions per week (WhatsApp message resolves to a tool call, or dashboard action, or POS sale). This measures value delivery, not just registration.
Supporting metrics: activation rate (signup → first sale within 24h), 30-day retention, monthly gross revenue processed per merchant, WhatsApp-originated actions as % of total, and average time-to-recording (message received to sale confirmed).
1.8Assumptions & risks
Every one of these needs to be tested with the pilot cohort.
- A1: Merchants will pay $15/mo. Risk: high. Test in pilot with a mix of free and paid — measure churn at the paywall.
- A2: Offline POS is a must-have, not a nice-to-have. Risk: high. Test by measuring % of sales that happen during connectivity dropouts.
- A3: WhatsApp is the primary interface, not the dashboard. Risk: medium. Test by tracking channel of first action after signup.
- A4: Traders trust AI-generated summaries of their books. Risk: medium. Test by measuring how often traders act on AI recommendations vs override.
- A5: WhatsApp referral drives > 50% of signups. Risk: medium. Test by tracking referral source in first 100 signups.
1.9Out of scope (v1)
Deliberate omissions. Everything below is on the roadmap; nothing below ships in the first six months.
- Multi-currency accounting (single-currency per tenant).
- Custom-domain e-commerce storefronts.
- Native desktop application.
- In-house payment processing / fund custody.
- White-label / third-party embedding.
- Cross-border transactions.
- Lending or credit products.
- Advanced AI marketing (caption generation, ad copy) — Phase 3.
- Manufacturing / production planning module — Phase 4.
How we'd build it, and why exactly like this.
Every technology choice here is defensible. We are optimising for three properties: trust (financial records must never be wrong), reach (must work on a $50 Android over 3G), and iteration speed (small team, need to ship weekly).
2.1Architectural principles
- Multi-tenant from day one. Every table carries tenant_id. Every query filters on it. No exceptions. Cross-tenant contamination is architecturally impossible.
- Offline-first for POS. The till works without internet. Local IndexedDB queue + service worker. Sync when online. Conflict resolution: server-timestamp-wins with client-generated UUIDs for dedup.
- Financial integrity is non-negotiable. Double-entry accounting. Every mutation writes an append-only audit log. Seven-year retention.
- Modular monolith, not microservices. Every module (auth, pos, inventory, accounting, etc.) ships in one deployable, but with clean router→service→repository boundaries. Extraction to separate services is a rename, not a rebuild — but we don't extract until traction demands it.
- AI is an overlay, never authority. The AI proposes; the human decides. AI never mutates business data directly — it calls the same service layer the dashboard calls, subject to the same RBAC.
- Every write is idempotent. WhatsApp deliveries retry, users double-tap, networks flake. Idempotency keys on every POST prevent duplicate posts.
2.2System context
Three human actors (merchant, staff, customer), three system contexts (web dashboard, mobile PWA, WhatsApp), and three critical external systems (payment providers, WhatsApp Business Cloud API, LLM providers). The OgaHQ backend is the central integrator.
2.3Tech stack & rationale
| Layer | Choice | Rationale |
|---|---|---|
| Backend framework | FastAPI (Python 3.11) + async SQLAlchemy 2 | Async I/O critical for concurrent WhatsApp + POS + web load. Python for hiring depth in African tech markets. Pydantic v2 for schema validation at API boundaries. |
| Frontend | Next.js 15 App Router + Zustand + shadcn/ui | Server components reduce JS shipped to bandwidth-constrained users. shadcn/ui is copy-paste, not a runtime dependency — good for weight. |
| Database | PostgreSQL 16 (Azure Flexible Server) | Relational integrity critical for double-entry accounting. Postgres, not MongoDB — this is a transactional system, not a document store. |
| Cache / queue | Redis (deferred until a Redis-backed feature ships) | Not premature. Add when session storage, rate limiting, or async job queue actually needs it. |
| Object storage | Azure Blob Storage | Barcode SVGs, receipt PDFs, product photos, WhatsApp media. |
| Secrets | Azure Key Vault | Managed-identity access from Container Apps; no secrets in env vars. |
| Compute | Azure Container Apps (South Africa North) | Managed containers with scale-to-zero. South Africa North for data residency + latency to primary markets. Two apps: api + web. |
| CI/CD | GitHub Actions | Free tier sufficient for small team. Push to main triggers build + deploy. |
| IaC | OpenTofu / Terraform | Full production stack reproducible from repo. Prevents "worked on my laptop" drift. |
| LLM (planning) | Claude Sonnet 5 (primary), Gemini fallback | Best-in-class tool-calling reliability. Fallback prevents provider concentration. |
| LLM (vision) | Gemini flash-lite (primary) | 10× cheaper than Claude for vision workloads at sufficient quality for barcode/receipt reading. |
| Speech-to-text | Whisper (via Groq hosted) | Best-in-class for African English + Pidgin accents. Groq for latency. |
| Meta WhatsApp Business Cloud API (official) | Only path with legitimate business templates + delivery guarantees. Not a scraper. | |
| Observability | Application Insights + Log Analytics + Opik (LLM tracing) | All emissions structured. LLM turns traced end-to-end. |
Original planning documents assumed AWS Lambda + Aurora + Amplify. In practice, Azure Container Apps offers a materially better small-team story: no cold-start Lambda quirks, no Amplify vs. Next.js impedance mismatch, and a South Africa North region for data residency. Azure's compute is not cheaper than AWS at scale — but at our stage, developer velocity outweighs raw price.
2.4Data architecture
Postgres tables share a common shape. Every row inherits Base which supplies four columns: id (UUID), tenant_id (UUID FK), created_at, updated_at. The application layer enforces that every query filters by tenant_id.
-- Every table looks like this, minimum CREATE TABLE sales ( id UUID PRIMARY KEY, tenant_id UUID NOT NULL REFERENCES tenants(id), created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), -- domain columns below invoice_number VARCHAR(64) NOT NULL, sale_type sale_type_enum NOT NULL, -- 'standard' | 'rapid' customer_id UUID REFERENCES customers(id), total_amount NUMERIC(18, 2) NOT NULL, payment_mode payment_mode_enum NOT NULL, status sale_status_enum NOT NULL, client_uuid UUID UNIQUE, -- for offline dedup ... ); CREATE UNIQUE INDEX ON sales(tenant_id, invoice_number);
Double-entry accounting. Every business event that changes money produces balanced journal entries. A cash sale of ₦3,250 debits Cash and credits Revenue. A credit sale debits Accounts Receivable, credits Revenue. A payment on receivable debits Cash, credits Accounts Receivable. The invariant: every journal entry's debits sum to its credits.
Audit log. Every mutation writes to audit_log (append-only, no UPDATE/DELETE permissions for app role). Retention: seven years for financial events, indefinite for logs of admin actions.
Multi-tenancy invariants.
- Every table carries tenant_id. Enforced by base model.
- Every repository method requires an explicit tenant_id argument.
- TenantMiddleware extracts tenant_id from JWT and pins it into request state.
- Cross-tenant JOINs are architecturally impossible — services can't reach another tenant's repository.
- Database backups partitioned by tenant for legal-hold and right-to-erasure compliance.
2.5Integration architecture
Payment providers. Abstracted behind a PaymentProvider interface. Each provider (Paystack, Flutterwave, Anchor, Providus, M-Pesa Daraja) implements the same methods: create_intent(), verify_webhook(), initiate_refund(), get_transaction(). Switching providers is a config change, not a refactor. Two providers active in production from day one to prevent concentration risk.
WhatsApp Business Cloud API. Direct integration with Meta. No third-party BSP dependency. This is a deliberate choice — third-party providers add latency, cost, and a single point of failure. Meta provides the API directly; we own the phone number and templates.
LLM providers. Two-provider strategy from day one. Claude for planning + tool-calling (most reliable). Gemini for vision and as fallback. All LLM calls traced via Opik. Cost per merchant/month capped by tenant-level budget with graceful degradation to template-menu fallback.
2.6Security & compliance
- Authentication. Short-lived access token (30 min) + long-lived refresh token (30 days, httpOnly secure cookie). JWT signed with Ed25519 keys stored in Key Vault.
- Authorization. RBAC enforced at every service method. Permission checks before dispatch, not inside handlers.
- Password policy. Minimum 12 characters, must include at least one digit or symbol. Argon2id for hashing.
- Session security. Account lockout after 5 failed logins. Sessions expire after 30 min of inactivity.
- PII handling. Customer phone numbers stored only where explicitly needed. Never sent to LLM in raw form (tokenised as <customer:UUID>, resolved server-side).
- Data residency. Azure South Africa North primary; EU as fallback. Data physically leaves neither region.
- No training on tenant data. Explicit contractual clause. Table stakes for enterprise adoption.
- Compliance targets. Nigeria NDPA + Kenya DPA registration within 6 months of launch. SOC 2 Type I within 12 months. SOC 2 Type II by month 18.
2.7Deployment & operations
Infrastructure as code via OpenTofu. Full stack reproducible: terraform apply creates resource group, Postgres, storage, ACR, Container Apps environment, both apps, Key Vault, managed identities, RBAC. Deploy pipeline: GitHub Actions builds and pushes images to ACR, updates Container Apps to new revision, waits for health check.
Environments. Two: dev (branch previews) and prod (main). Staging deliberately omitted — Container Apps revisions provide staged rollout via traffic percentage. Merge to main = production. Revisions can be rolled back in seconds.
Observability. Application Insights for APM. Log Analytics for structured logs. Opik for LLM turn tracing. Custom dashboards for per-tenant cost, error rate, tool-call success rate.
2.8Scaling plan
The architecture scales to 100K tenants without material changes. Beyond that, four things get extracted or scaled:
- Postgres → sharded per-region. Nigeria, Ghana, Kenya, SA each get their own Postgres primary. Cross-region queries impossible; each tenant lives in one region.
- WhatsApp module → separate service. Message volume grows super-linearly. Extract when messages exceed 10M/day.
- MCP + Agent runtime → separate service. Reusable across channels (WhatsApp, web copilot, SMS). Natural extraction candidate for the OgaKit platform play.
- Analytics → dedicated warehouse. When cross-tenant analytics load starts affecting transactional performance, move analytics to Snowflake or ClickHouse.
The smallest thing that could win.
Reid Hoffman: "If you're not embarrassed by your first product, you launched too late." The MVP is not "everything a shop needs." It is "the least a shop needs from us to prefer us over the notebook." That's a much smaller target.
3.1Definition
MVP for OgaHQ is: a shop owner can run a full day of trading — from opening to close — entirely on OgaHQ, and at 9 PM, the numbers agree. Nothing more. Everything below serves that one sentence.
3.2In scope
Signup + login
Self-serve tenant creation. Owner + up to 3 staff. RBAC (owner / manager / cashier). Email verification.
Standard + rapid sale modes
Full-cart checkout, split payment across modes, receipt printing, void (permission-gated), returns.
Offline mode
PWA with service worker. 500-sale local queue. Sync when online. Server-timestamp-wins.
Products + stock movements
Create/edit product, receive stock, adjust with reason, barcode generation, low-stock alerts.
CRM basics
Customer CRUD, credit balance tracking, purchase history, WhatsApp contact.
Create + send
Auto-numbered per tenant, edit, void (admin only), PDF render, WhatsApp send.
Double-entry auto-post
Chart of accounts, journal entries auto-generated from POS + expenses. Basic P&L report.
Daily expense entry
Categorised, auto-post to accounting, deducted from daily totals.
Three reports
Transaction report (daily), item sales report (weekly), sales analysis (profit / cost / by staff).
Company + brand
Business name, logo, address, receipt customisation, currency (NGN v1).
3.3Explicitly out of scope for MVP
These are on the roadmap. None ship v1.
- WhatsApp interface — Phase 2 dependency.
- OgaPay auto-reconciliation — Phase 2. Payments recorded as modes only in MVP.
- E-commerce storefront — Phase 3.
- Social media manager — Phase 3.
- Multi-branch — Phase 2.
- Multi-currency — Phase 3+.
- HR / payroll — Phase 2. (Already partially shipped in reality but not required for MVP validation.)
- Mobile app (native Expo) — Phase 2. PWA is sufficient.
- AI features (summaries, recommendations) — Phase 3.
3.4Validation criteria
The MVP is a success — and we move to the next phase — when at least three of these are true, measured over a 30-day observation period:
The 30-day window matters. Merchants love new tools on day 3. What we're measuring is whether they still use OgaHQ on day 30, when the novelty has worn off.
3.5The Balogun 10 — pilot cohort
Ten merchants, hand-picked, in a single Lagos market corridor (Balogun / Idumota). Diverse across the persona spectrum:
- 5 × cosmetics / beauty retail (Amara-type)
- 3 × fashion / boutique (Tunde-type)
- 2 × pharmacy (regulated retail, higher LTV)
Why one corridor? Because Business Relationship Managers can walk between stores. Because merchants talk to each other — word of mouth compounds when the market is dense. Because problems surface faster when you can visit a merchant in 15 minutes. This is the same principle that got Airbnb to 1,000 listings by knocking on doors in New York.
3.6Timeline
Twelve weeks from kickoff to Balogun 10 live:
- Weeks 1-2: Foundation. Backend scaffold, auth module, tenant model, offline-first infrastructure.
- Weeks 3-4: Data layer. Inventory, customers, suppliers. Frontend product list, customer profile.
- Weeks 5-7: Core POS + accounting engine. Sale, invoice, journal entries. POS UI. Receipt.
- Weeks 8-9: Supporting features. Orders, credit tracking, expenses.
- Weeks 10-11: Reports + settings + polish. Three reports. Company profile. User management. Dark mode & accessibility pass.
- Week 12: Beta50 launch. Onboard the Balogun 10 with in-person training. Instrument telemetry.
3.7Risks & mitigations
| Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|
| Offline sync corruption | Medium | High | Server-timestamp-wins; extensive offline testing; per-client UUID for dedup. |
| Pilot merchants churn after 2 weeks | Medium | Critical | Weekly BRM check-ins; iterate features based on friction; product-market fit is measured, not assumed. |
| Data loss (financial) | Low | Catastrophic | Daily automated Postgres backups; 30-day PITR; append-only audit log for reconstruction. |
| Payment provider outage during pilot | Medium | Medium | OgaPay isn't in MVP — payment modes are self-recorded; risk deferred. |
| Regulatory intervention (NDPA) | Low | High | Register with Nigeria NDPA before pilot launch; adopt privacy-by-design; data residency in SA/EU. |
Five journeys, one system.
Every persona has a distinct primary flow through OgaHQ. Each flow is designed to be traversable in fewer than five taps for the happy path. These diagrams are the reference. If a shipped feature adds friction to any of them, we've made the wrong decision.
4.1Amara — retail shop owner
Amara's flow is centred on the operating loop: open the shop, run the day, close the day, sleep knowing the books balance.
4.2Emeka — wholesale distributor
Emeka's flow centres on multi-branch coordination and receivables management. He is not touching the POS himself — his staff are, across three warehouses.
4.3Fatima — salon owner
Fatima's flow braids booking, service delivery, and retail. She has stylists working on clients while she manages the till and the schedule.
4.4David — cashier
David's flow is short, repetitive, and must never break. His interface is the POS — nothing else. He never sees the dashboard.
4.5Ngozi — online shopper
Ngozi never opens the merchant's website. She discovers the shop on Instagram, messages via WhatsApp, and pays. Her flow is entirely on WhatsApp.
Ngozi's flow proves the two-sided WhatsApp thesis. The merchant never opens a website builder, never runs shipping software, never operates a payment gateway console. All of that is happening inside OgaHQ, driven from WhatsApp interactions on both sides. The merchant experience is: WhatsApp messages come in, sales happen, payments land. That's the whole thing.
The visual and interaction language.
A design system is not decoration. It's a decision-compression tool: every time we skip re-picking a colour or re-picking a spacing value, the team ships faster. This is the OgaHQ system. It is opinionated on purpose.
5.1Design principles
- The 10-second rule. The most common merchant actions — check today's sales, add a product, record a sale, check a customer balance — must complete in under 10 seconds. If a flow takes longer, we redesign it.
- Zero training. A first-time user should complete their first sale within 5 minutes of signup. No manuals. No videos. No support tickets.
- Graceful degradation. When the internet fails, the system gets simpler, not broken. Offline mode strips features but never functionality on the critical path.
- Channel-appropriate communication. Dashboard responses are visual. WhatsApp responses are conversational. Push notifications are urgent. Emails are archival.
- Owner authority preserved. The AI recommends. The owner decides. Every AI-suggested action carries a rationale and a confidence score.
- Progress not perfection. When we're 80% sure and the merchant has been waiting, we ship the answer with a confidence caveat rather than nothing.
5.2Colour system
Chosen neutrals with intent, three semantic accents, and semantic pairs for status. Every value in the system defers to accessibility contrast ratios (WCAG 2.1 AA minimum).
Warm cream
#F5F0E6 — the primary reading ground. Warm, un-clinical, unmistakably not a Silicon Valley SaaS. Dark mode: #16130E.
Rich charcoal
#1E1A15 for reading text. Not pure black — pure black feels flat on cream. This ink retains warmth from the ground. Dark mode: #F0EADC.
Forest green
#1F4A3E — structural, "durable / trustworthy". Used for actionable primary elements and financial-success indicators.
Terracotta
#B54A2E — attention, warmth, urgency. Used sparingly for emphasis, error states, "act now" moments.
Mustard ochre
#C58F1A — data, numbers, chart series. Cool enough to defer to primary/highlight, warm enough to sit on the cream ground.
Warm hairline
#D6CDBB — dividers, table borders. Not gray — a warm tan that unifies with the ground.
Semantic pairs (status)
Semantic colours are separate from accents. A "success" state is green not because green is our brand — it's green because it's semantic.
- Success / paid / balanced: forest green, #1F4A3E
- Warning / attention / pending: ochre, #C58F1A
- Error / failed / unpaid: terracotta, #B54A2E
- Neutral / info: ink-soft, #3A342B
5.3Typography
Three type roles: display, body, mono. All from system stacks. No webfont dependency — loads instantly, works offline.
| Role | Stack | Use |
|---|---|---|
| Display | ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif | Headings, buttons, chips, labels. Weights 500–900. Tight tracking for large sizes. |
| Body | ui-serif, "Iowan Old Style", "Charter", Georgia, serif | Reading text, prose, paragraphs. Warm serif for extended reading. |
| Mono | ui-monospace, "SF Mono", "Menlo", "Consolas", monospace | Numbers, IDs, code snippets, currency amounts. font-variant-numeric: tabular-nums always. |
Type scale. Modular scale of 1.25 ("major third"), anchored at 16px body. Sizes: 12 / 13 / 14 / 16 / 18 / 20 / 24 / 30 / 38 / 48 / 60.
Currency rendering. Always ₦12,500 or ₦12,500.00. Currency symbol before the number. Thousands separated by comma. Two decimals for amounts requiring precision.
5.4Component library
Base on shadcn/ui + Radix primitives. Copy-paste-and-customise, not a runtime dependency. Core components v1:
- Button — three variants (primary, secondary, ghost), three sizes (sm, md, lg). Loading state built in. 44×44px minimum touch target.
- Input — labels, help text, error state, disabled state. Currency-aware inputs auto-format on blur.
- Table — sortable, sticky headers, mobile "card view" fallback below 640px. Never horizontal scroll.
- Card — the primary content container. Padding scale (16 / 24 / 32).
- Modal / Sheet — modal on desktop, bottom sheet on mobile. Close on backdrop tap.
- Toast — 4-second auto-dismiss, one at a time, semantic colour by type.
- Badge / Pill — semantic status indicators. Same colour system as text.
- Stat card — big number, label. Used across dashboards.
- Empty state — always with a next action. "No sales yet today — your first customer is just a scan away."
- Search / Combobox — the primary product-lookup pattern. Debounced, keyboard-navigable, mobile-friendly.
5.5Voice & tone
The OgaHQ writing voice is: direct, warm, culturally grounded, and never condescending. We speak to the merchant as a peer, not as a novice user.
Concrete verbs
"Record a sale." "Send Amaka an invoice." "Void this transaction." Every button says exactly what happens.
Generic UX-isms
Not "Submit." Not "Save changes." Not "Continue." Those tell the merchant nothing about what they're about to do.
What broke, what next
"Payment didn't reach us yet — this can take up to 10 seconds. Refreshing in 5s." Not "Error 500."
The outcome, not the fact
"Sale recorded. Invoice INV-042. Amaka's balance is now ₦0." Not "Success!"
Confidence + rationale
"Peak Milk is running low. I suggest reordering 24 tins — that's what you sold in the last 10 days. Confidence: high."
Pidgin welcome, not required
Pidgin phrases in WhatsApp: "Send am." "Wetin remain?" But English is the default and every screen can be Pidgin, Yoruba, Igbo, Hausa (Phase 3).
5.6Accessibility
- Target WCAG 2.1 AA for all customer-facing surfaces.
- Colour contrast: 4.5:1 for body text, 3:1 for large text and UI elements.
- Keyboard navigation for every interactive element. Visible focus states.
- Touch targets ≥ 44×44px on mobile.
- Semantic HTML (landmarks, headings, buttons vs. links).
- Screen-reader labels for every icon-only control.
- Respect prefers-reduced-motion — no essential info conveyed via animation.
- Autocomplete attributes on form fields.
5.7Motion & interaction
Motion is used for two things only: state feedback (something happened) and hierarchy (this is more important than that). No motion for decoration.
- Micro-transitions: 120-180ms cubic-bezier(0.4, 0, 0.2, 1). Buttons, hovers, focus states.
- Layout transitions: 240-320ms same curve. Panels opening, tabs switching.
- Success moments: subtle 400-600ms confirmation animations. Never blocking.
- Loading: skeletons for content, spinners for actions. Never both simultaneously.
Phased delivery. One thing at a time.
The roadmap is deliberately sequential, not parallel. Small teams that try to build four things at once ship none of them well. The ordering below is chosen so each phase enables the next: the operations OS makes payment reconciliation truthful; reconciliation makes the WhatsApp assistant useful; WhatsApp usage generates the referral engine.
| Phase | Focus | Timing | Ship gate |
|---|---|---|---|
| Phase 1 | Core Operations MVP | M0-M4 (12 weeks) | Balogun 10 pilot live, ≥ 60% weekly active, NPS > 30 |
| Phase 2 | Operational Growth | M4-M8 | 500 paying merchants; OgaPay v1 live; multi-branch working |
| Phase 3 | Digital Expansion | M8-M14 | WhatsApp two-sided live; 2,000 merchants; e-commerce storefront |
| Phase 4 | Advanced Intelligence | M14-M24 | 10,000 merchants; AI marketing; multi-country |
6.1Phase 0 — Foundation (Weeks 1-2)
Zero customer-visible output. Pure infrastructure and shared code. This is the load-bearing week that makes everything else possible.
- Backend scaffold — FastAPI app, config, database, security, tenant middleware, base models, base repository, audit logger.
- Auth module — register, login, refresh, RBAC. Self-serve tenant creation.
- Frontend scaffold — Next.js 15, API client with 401 handling, Zustand auth store, shadcn/ui base components.
- PWA infrastructure — manifest, service worker, IndexedDB wrapper (Dexie.js), sync engine, offline indicator.
- CI/CD — GitHub Actions for CI (lint + tests), for deploy (build + push + update Container Apps).
- IaC — OpenTofu modules for the full stack. Provable via terraform apply in a fresh subscription.
6.2Phase 1 — Core Operations MVP (Weeks 3-12)
Everything the Balogun 10 need to run their shop end-to-end.
- Weeks 3-4 — Data layer. Inventory, customers, suppliers, purchase orders.
- Weeks 5-7 — POS + accounting engine. Sale, invoice, journal entries. Standard + rapid modes. Receipts. Returns. Void with approval.
- Weeks 8-9 — Supporting features. Orders/quotations, payments recording, expenses, credit tracking.
- Weeks 10-11 — Reports + settings + polish. Three reports. Company profile. User management. Dark mode. Accessibility.
- Week 12 — Beta50 launch. In-person onboarding of the Balogun 10. Full telemetry.
6.3Phase 2 — Operational Growth (M4-M8)
Scale the pilot to 500 merchants. Add OgaPay to unlock the closed loop. Add multi-branch for Emeka.
- OgaPay v1 — Paystack primary, Flutterwave secondary. QR + bank ref + webhook auto-reconciliation + audible chime.
- Multi-branch — per-branch inventory + per-branch reporting + cross-branch stock transfer.
- HR / payroll — employees, roles, monthly payroll cycles.
- Marketing automation — bulk WhatsApp campaigns to CRM segments.
- Native mobile app (Expo) — same API, native barcode scanning + push notifications.
6.4Phase 3 — Digital Expansion (M8-M14)
The WhatsApp interface goes live. E-commerce storefront and social manager complete the growth surface.
- WhatsApp interface — full two-sided implementation. MCP layer + agent runtime + Meta Business API integration.
- E-commerce storefront — auto-generated from OgaHQ catalogue. Shares payments infrastructure.
- Social media manager — AI captions, scheduled posts, engagement analytics.
- AI daily summary — WhatsApp digest at 10pm with day's headline numbers.
- Multi-language — Yoruba, Igbo, Hausa added on top of English + Pidgin.
6.5Phase 4 — Advanced Intelligence (M14-M24)
Everything above works. Now we bet on AI, computer vision, and category expansion.
- AI marketing — caption generation from product photos, ad copy, content calendar.
- Computer vision — bulk catalogue creation from shelf photos (10 products from one image).
- Multi-currency — merchants can sell in NGN, USD, GHS, KES simultaneously.
- Regional expansion — Ghana, Kenya, then South Africa.
- Workflow automation — Zapier-like triggers within OgaHQ.
- Optional platform extraction — OgaKit for third-party embedding (only if a design partner materialises).
6.6Parallel workstreams
Some things can happen in parallel to the main development track:
- Compliance registration. NDPA Nigeria + Kenya DPA — start Week 1, complete by Month 6. This has calendar-time, not developer-time.
- Meta WhatsApp Business Cloud API verification. Business verification takes 2-6 weeks. Start at Month 4 for a Month 8 WhatsApp launch.
- Content marketing. Blog posts, YouTube shorts, Twitter demos of the product from Week 8 onwards.
- Field BRM hiring. Start recruiting BRMs at Month 3, target 2 hired by launch.
6.7Milestone gates
Each phase transition is gated. We do not begin the next phase until the current phase's gate is passed. This forces discipline; it also protects against feature-creep.
| Gate | Criteria | What we do if it fails |
|---|---|---|
| Phase 1 → 2 | ≥ 60% pilot weekly active + NPS > 30 at Day 30 | Iterate on Phase 1 for 6 more weeks; if still failing, pivot. |
| Phase 2 → 3 | 500 paying merchants, MRR > $5K, churn < 8%/mo | Focus on retention before adding new surfaces. |
| Phase 3 → 4 | 2,000 merchants, WhatsApp is primary channel for > 40%, unit economics green | Slow expansion, focus on WhatsApp adoption. |
| Phase 4 exit | 10,000 merchants, category leadership evident, break-even reached | By this point, Series A conversation is real. |
Free-to-paid, then payment margin, then platform.
Every enduring commerce infrastructure company evolved from a single revenue stream into three or four. Stripe went from payments → banking → capital → issuing → billing → tax. Shopify went from stores → payments → shipping → capital → POS → fulfillment. OgaHQ's path is: SaaS subscription → payment processing margin → AI add-ons → potential lending rail.
7.1Revenue streams
| Stream | Start | % of revenue by Yr 3 | Why it works |
|---|---|---|---|
| SaaS subscription | Day 1 | ~80% | Predictable, high-margin, scales linearly with active merchants. Foundation. |
| Payment processing margin | Month 6 (OgaPay) | ~15% | Adds small margin (0.3-0.5%) on top of Paystack/Flutterwave fees. Scales with GMV. |
| AI add-ons | Month 12 (Phase 3) | ~5% | Advanced AI features (bulk cataloguing, ad copy generation, predictive reorder) as usage-based add-ons. |
| Lending rail (via partner) | Year 3+ | Growing | Working-capital credit to merchants based on reconciliation data. Revenue share with partner lender. |
| Marketplace / API | Year 4+ | Optional | OgaKit — the platform play. Only if a paying design partner emerges. |
7.2Pricing philosophy
Three principles determine our pricing:
- Free tier must be usable, not crippled. A trader on the free tier can run their whole day. That's the point — they experience the value, then convert when they need capacity or capability the free tier caps out.
- Business tier is the anchor. $15/mo. Priced under Sage/QuickBooks by 3-5×. Priced above Prokip and Loyverse for capability we deliver that they don't (accounting, WhatsApp integration, etc.).
- Pro tier adds concrete capabilities, not just quantity. Multi-branch. Full accounting. Social. AI features. These are the things a business needs when it has grown beyond one shop.
7.3The four tiers
| Tier | Price | Cap | Includes | Target persona |
|---|---|---|---|---|
| Starter | Free | 50 tx/day · 100 products · 1 user | POS, inventory, basic invoicing, receipts | Sole traders, brand-new shops |
| Business | $15/mo | Unlimited POS · 5K products · 5 users | + Full accounting, CRM, e-commerce (Phase 3), WhatsApp interface (Phase 3) | Amara — the primary customer |
| Pro | $35/mo | 15 users · multi-branch | + Multi-branch, social manager, AI features, priority support | Emeka — wholesale distributors, growing chains |
| Enterprise | Custom | Unlimited | + SLAs, custom integrations, dedicated CSM, advanced compliance | Larger operators (50+ locations) |
7.4Unit economics
Rigorous unit economics discipline from day one. Our target curve:
The maths that has to hold: at ARPU $15 and 4% monthly churn, LTV = $15 × (1/0.04) = $375. At CAC $25, LTV:CAC = 15:1. Even at pessimistic 8% monthly churn and $20 CAC, LTV:CAC = 9.4:1. The unit economics are viable across a wide range of assumptions.
7.5Payment processing margin (OgaPay)
Nigerian card + transfer processing typically costs merchants 1.5-2%. Paystack/Flutterwave charge merchants directly. OgaPay adds a small margin (0.3-0.5%) on top for the reconciliation service. At $10K/mo GMV per Pro-tier merchant, that's $30-50/mo per merchant in additional revenue — potentially larger than the subscription itself.
The critical decision: transparent, tiered payment fees, with volume discounts for Pro/Enterprise. Never hidden. Always disclosed at signup. Merchants trust us because we tell them the truth about our take.
7.6Path to profitability
Break-even at Month 18. The maths:
- Fixed cost (small team + infrastructure): $15-20K/month by Month 12.
- At 1,500 paying merchants × $15 ARPU = $22.5K MRR at Month 18.
- Plus ~$5K/mo in payment margin from Pro-tier merchants using OgaPay.
- Total ~$27.5K MRR against ~$22K burn = break-even with modest headroom.
7.7Comparable case studies
Started at $29/mo, expanded into everything
SaaS subscription was foundation. Payments (Shopify Payments) became bigger. Then Capital, then POS, then Ship. Category-leader outcome: $80B+ market cap. The path is: own the operations layer, then integrate every adjacent value pool.
Free card reader, monetise via payments
Free hardware to capture merchants. Payment margin on every transaction. Then Cash App (consumer), Payroll, Banking. Category-leader outcome: $60B+ market cap. The path is: subsidise the front door, monetise the throughput.
Vertical SaaS at deep integration
Restaurant-only, deeply integrated payments. Vertical focus meant they could ship features restaurants actually needed, at prices restaurants could afford. Outcome: $12B+ market cap.
Payments first, everything else eventually
Started as payment API for developers. Expanded into banking-as-a-service, capital, issuing, billing, tax, atlas (incorporation). Private valuation: $70B+. Long-term thinking on the product line.
All four companies made the same core bet: own the primary workflow, then monetise the adjacent value pools. Payments is the highest-value adjacent pool in commerce; that's why every one of them ended up there. OgaHQ's path is the same.
Beta50, then Nigeria, then the continent.
Great launches are boring. There is no launch day; there is a launch curve — a shape of adoption over months. What we control is the shape. We start narrow (the Balogun 10), widen slowly (50 more), then broaden regionally (500 across Nigeria) before crossing borders.
8.1Launch philosophy
Two things every launch fails to internalise: speed of learning matters more than speed of growth, and concentration matters more than volume.
Airbnb hit 1,000 listings in New York by knocking on doors. Not because there were only listings in New York — but because concentrated launches let feedback loop tighten. We do the same. Balogun corridor. Then Ikeja. Then Abuja. Then Accra. Never launching in 10 cities at once.
8.2Pre-launch (Months −2 to 0)
8.3Launch (Months 0-3)
The Balogun 10 becomes the Balogun 50. Then the Lagos 500.
8.4Post-launch scaling (Months 3-12)
8.5Geographic rollout — the tempo
| Market | Timing | Payment integration | Rationale |
|---|---|---|---|
| Lagos | M0 | Paystack + Flutterwave | Densest market, highest smartphone penetration, founder-network access. |
| Abuja | M4 | Same | Government + services concentration. Higher-value merchants. |
| Port Harcourt | M4-5 | Same | Regional third city with distinct economy. |
| Kano | M6 | Same | Northern Nigeria beachhead. Hausa language support essential. |
| Accra | M10 | + MTN MoMo, ExpressPay | Second country. Similar market dynamics, different rails. |
| Nairobi | M15 | + M-Pesa Daraja | East African beachhead. Payment landscape entirely different. |
| Johannesburg | Year 2 | + Peach Payments, Ozow | SA market has more mature retail SaaS competition — enter later with proven playbook. |
8.6Narrative & PR strategy
The story we tell:
50 million African businesses run on paper notebooks and WhatsApp groups. We are building the operating system that replaces both.
Where we tell it, in order:
- Twitter / X. Founder builds in public. Weekly threads on lessons learned. Merchant testimonials with video.
- YouTube shorts. Demo videos of the actual product. "60 seconds to record a sale." "Send an invoice with QR + bank ref via WhatsApp." Real merchant stories.
- African tech press. TechCabal, Techpoint Africa, Techcabal Rest of World coverage aligned with launch milestones.
- International tech press. Rest of World, TechCrunch African fintech coverage after Series A traction.
- Podcast circuit. African founders podcasts. Longer-form storytelling about the "why."
8.7Partnership launches
Each partnership launch is its own mini-launch with dedicated marketing:
- Paystack integration launch — joint blog post, co-marketed webinar, cross-promoted to Paystack's merchant base.
- MTN Business partnership — bundled offering to MTN Business SIM subscribers, in-store activation in MTN service centres.
- African Retail Academy pilot cohort — jointly onboarded merchants, co-authored case studies, curriculum integration.
- Chamber of Commerce alliances — LCCI Lagos, AGI Ghana, KNCCI Kenya. Endorsed provider status.
Where the merchants actually come from.
Every African fintech that scaled did so through three channels: field agents, peer referral, and partnerships. Digital marketing is a distant fourth. This section builds the acquisition engine around what actually works in this market, not what looks good in a pitch deck.
9.1Channel mix
Target channel mix by end of Year 1:
| Channel | % of signups Y1 | Estimated CAC | Comment |
|---|---|---|---|
| Field Business Relationship Managers | 40% | $18-25 | The core. Trust wins in African markets. |
| WhatsApp / peer referral | 30% | $3-8 | Cheapest channel. Compounds with usage. |
| Partnerships (payments, telcos, ARA) | 15% | $8-15 | Bundled, endorsed, or co-marketed. |
| Content & organic (blog, Twitter, YouTube) | 10% | $5-12 (blended) | Slow build. Compounds over years. |
| Paid social (Meta, Google) | 5% | $25-50 | Expensive per lead in African markets. Optional. |
9.2Field BRM playbook — the trust channel
This is how Paystack acquired its early merchants. It is how Prokip acquired its early merchants. It is how M-Pesa built its agent network. Human trust wins.
Who a BRM is. A locally-hired sales rep with a smartphone, comfortable in market environments, ideally fluent in the local trading language (Yoruba, Hausa, Igbo, Twi, Swahili). Compensation: base salary + per-activated-merchant commission + retention bonus after 90 days.
The daily routine.
- 8 AM — Team standup. Review yesterday's activations. Plan today's market.
- 9 AM-12 PM — Market walkabout. Cold visits. Live demos on merchant's own phone. Instant signup.
- 12-1 PM — Break. Follow-up calls / WhatsApp messages to yesterday's leads.
- 1 PM-4 PM — Onboarding visits. Sit with new merchants during their first day.
- 4-6 PM — Existing merchant check-ins. Answer questions. Log friction to product team.
- 6 PM — Day log into CRM. Metrics: visits, live demos, signups, activations.
Targets. A single BRM should onboard 15-20 merchants per week after ramp. Assuming 60% still active at Day 30, that's 8-12 net weekly. At 4 BRMs by Month 6, we generate 100-150 net new active merchants per month via this channel alone.
The BRM tooling. A merchant-BRM app for logging visits, tracking prospects, running live demos, and closing accounts on the spot. Integrated with the main OgaHQ backend so activations register instantly.
9.3WhatsApp referral programme — the viral channel
Every merchant on OgaHQ has other merchants in their contact list. Every merchant messages other merchants regularly. This is the viral surface.
Mechanics.
- Every merchant gets a unique referral code embedded in their WhatsApp invitation link.
- Referrer gets one month free Business tier for each merchant who signs up and activates (records first sale within 7 days).
- Referee gets one month free Business tier at signup — starts on the paid tier's features immediately.
- Referrer can accumulate months up to 12 (a year free).
WhatsApp-native distribution. "Share via WhatsApp" is the primary sharing button. The invitation message is pre-written, includes a video demo, and can be forwarded to a group.
Referral leaderboard. Public leaderboard of top referrers per market. Social proof + gamification. Top referrer per quarter gets a physical trophy delivered to their shop (this is a $50 marketing spend that becomes a Twitter photo worth $5,000 of earned media).
Expected performance. If 30% of merchants refer at least one other merchant, and referral conversion is 40%, and activation of referred merchants is 60%, then every 10 merchants generates 0.72 additional merchants over their first 6 months. That's a k-factor of 0.72 — not yet viral (need k > 1), but a powerful amplifier of the paid channels.
9.4Partnership channel
Three types of partnerships, each with different mechanics:
Telcos, banks, industry associations
MTN Business, Airtel Business, LCCI, AGI. They have merchant relationships already. We become an endorsed provider. Bundled onto their SIM or bank offerings. Rev-share on Business tier subscriptions.
Payments, logistics, hardware
Paystack, Flutterwave, MTN MoMo (payment). Sendbox, Kobo360 (logistics). BluePad, Sunmi (hardware). Co-marketing, joint case studies, integration announcements.
African Retail Academy + accelerators
Curriculum integration, workshops, pilot cohorts. Longer-term ecosystem play — every trained retailer graduates already using OgaHQ.
Accountants, business consultants
Nigerian accountants managing small business books. Business consultants advising SMEs. They already have the trust; we give them a tool to recommend + a revenue share.
9.5Content & organic
Content is a slow compounding channel. We start Month 3, expecting first traction by Month 12.
- Blog. Weekly. Practical "how to run your shop better" content, not thinly-veiled product pitches. E.g.: "5 signs your inventory is out of control," "How to reconcile mobile-money payments across 3 apps."
- Twitter / X. Founder-led. Building in public. Weekly threads on merchant lessons. Product screenshots. Feature launches.
- YouTube shorts + Instagram Reels. 60-second product demos. Merchant testimonials. Real workflows. This is where our target merchants actually watch content.
- Podcast appearances. Founder guest slots on African tech podcasts. Longer-form for early-adopter audiences.
9.6Paid channels
Deliberately deprioritised. CAC via Meta Ads for African SMEs is $30-50+, far higher than our field or referral channels. Paid is used for:
- Retargeting. Waitlist signups who didn't activate get re-engaged via Meta or WhatsApp.
- Feature-launch amplification. When OgaPay launches, paid ads amplify the announcement for 2 weeks.
- Geographic launches. When we enter a new city, a targeted 2-week paid campaign creates awareness.
9.7Conversion funnel
Every channel feeds into the same funnel. What we optimise is each stage:
| Stage | Definition | Y1 target |
|---|---|---|
| Awareness → Interest | Landing page visit or WhatsApp inquiry | 200,000 visits |
| Interest → Signup | Account created | 20,000 signups (10% conversion) |
| Signup → Activation | First sale recorded within 7 days | 10,000 activated (50% conversion) |
| Activation → Paid | Upgraded to Business tier | 1,500 paid (15% conversion by Month 12) |
| Paid → Retained | Still paid at Day 90 | 1,275 retained (85% retention) |
Each stage has a dedicated intervention:
- Awareness → Interest: compelling landing page + WhatsApp CTA that reduces friction to first message.
- Interest → Signup: minimal signup form (name + phone + business type). Continue in WhatsApp if preferred.
- Signup → Activation: in-app onboarding wizard + WhatsApp check-in from BRM on Day 1 and Day 3.
- Activation → Paid: free tier caps hit + Business tier value framed in currency (revenue insight, credit tracking).
- Paid → Retained: feature-usage tracking; if a paid feature isn't being used, proactive outreach to demonstrate.
Loops, not funnels.
Funnel thinking eventually breaks down. Growth loops don't — each customer produces the next customer, or generates more value from the existing customers, or unlocks a new segment. This section describes the loops we're building.
10.1The primary growth loop
OgaHQ's flywheel:
10.2Retention mechanics
Growth without retention is a leaky bucket. What keeps merchants on OgaHQ:
- Books balance every night. Once a merchant experiences 30 days of end-of-day peace, going back to the notebook is unthinkable.
- Credit tracking. Once customers are in the CRM with real running balances, migrating to another tool means re-entering all customer data. High switching cost.
- Historical data. After 90 days of use, merchants have year-over-year comparisons, seasonal patterns, top-customer insights. This is data they wouldn't have without OgaHQ.
- WhatsApp intimacy. Once a merchant is using WhatsApp voice notes to run their business, the muscle memory alone is retention.
- Staff onboarded. Cashiers trained, muscle memory built, permission grids configured. Changing systems means retraining all staff.
- Customer awareness. Customers know the merchant sends OgaHQ invoices. Changing tools breaks that habit on both sides.
10.3Expansion revenue
Growth from within existing customers. Higher net revenue retention (> 110%) is the sign of a healthy commerce platform.
- Tier upgrade. Starter → Business → Pro. Priced to encourage upgrade as the merchant grows. Automatic prompts when caps are hit.
- OgaPay attach. Payment margin (~0.3-0.5% on transactions) adds meaningful revenue per merchant using OgaPay.
- Adding branches / users. Pro tier expands with the merchant's business. Multi-branch pricing.
- AI add-ons (Phase 3). Bulk cataloguing, ad copy generation, WhatsApp broadcast campaigns — priced per use or as a monthly add-on.
- Integrations marketplace (Year 3+). Third-party integrations (logistics, accountants, marketing tools) generate small margin.
10.4Geographic expansion — the tempo
African expansion pattern learned from Paystack, Flutterwave, and MTN MoMo: one country at a time, deep before wide.
| Year | Countries | Merchant target |
|---|---|---|
| Y1 | Nigeria only | 2,000 merchants |
| Y2 | Nigeria + Ghana + Kenya | 10,000 merchants |
| Y3 | + South Africa + Tanzania | 25,000 merchants |
| Y4-5 | + Ivory Coast, Rwanda, Uganda, Cameroon, Ethiopia | 75,000 merchants |
10.5Product expansion — the Stripe path
The Stripe playbook, adapted for African SMEs. Start with one product; expand into adjacent value pools.
- Year 1: Operations OS.
- Year 2: Payments (OgaPay).
- Year 3: WhatsApp interface + AI features (Phase 3).
- Year 4: Working-capital credit (via partner lender initially).
- Year 5: Insurance (health, business, cash-in-transit — via partners).
- Year 5+: Marketplace / cross-selling between merchants.
- Optional: OgaKit — platform play for other B2B SaaS to embed our WhatsApp/agent layer.
10.6Network effects
OgaHQ isn't a pure network-effect business, but it has three subtle network characteristics that compound:
- Merchant-to-merchant referral (per §09.3). Each merchant creates on average 0.7 more merchants over the first six months.
- Merchant-to-customer exposure. Every WhatsApp receipt or invoice sent to a customer is a mini-marketing impression. A merchant with 200 customers per month distributes 200 OgaHQ-branded messages.
- Data effect. Reconciliation data compounds across merchants — richer signals for AI recommendations, better fraud detection, more accurate credit underwriting (future).
10.7Long-term moat
Three things build a defensible moat over years:
- Reconciliation data. No competitor has ground-truth cash-flow data on tens of thousands of African merchants. This is the foundation for underwriting credit, insurance, and marketplace features that would take a competitor 3+ years to accumulate.
- Brand + trust. Financial data is sacred. Once a merchant trusts OgaHQ with their books, they don't switch casually. Compound this over 3 years and OgaHQ becomes as sticky as their bank.
- Ecosystem depth. By Year 3, the app + partners + accountants + BRM network + educational partnerships form a full ecosystem. A competitor building comparable ecosystem takes years.
By Year 5, OgaHQ is the default operating layer for African SMEs in 5-8 countries, with 75,000+ merchants, an ecosystem of accountants and BRMs, deep reconciliation data, and payment margin plus lending exposure. Whether we exit or IPO or stay independent is a Year-5 conversation. What we're planning to build here is worth being asked that question.
The category is being decided this decade.
Payments got its African moment. Logistics is having its moment. Retail operations — the layer where every naira, cedi, and shilling gets counted — has no winner yet. There's a five-year window before someone claims it.
This document is the plan to be that someone.