Ardura
Multi-tenant broker platform with four role-scoped portals — client area, IB partner portal, back-office CRM, and super-admin — plus an IB commission engine, payout ledger, and AI churn prediction kept under operator control.
Covers the whole broker relationship in one platform — client self-service, an IB network with commissions and payouts, and operator-run retention — with every AI recommendation approved by a human and every commission decision frozen alongside the evidence that produced it.

Problem
A broker runs three audiences at once — clients, introducing brokers, and its own operators — and most stacks answer that with three disconnected tools plus a spreadsheet for commissions. Retention then fails in the gap: AI signals are either ignored entirely or piped straight to automation without operator judgment, creating liability when models drift and silent churn when they don't.
Role
- Sole engineer — platform design through full-stack implementation across all four portals
- Built the IB commission engine, eligibility snapshots, payout flow, and ledger
- Built segmentation, automation workflows, and operator approval queues
- Designed AI integration pattern: recommend → review → approve → trace
Approach
- Built one platform with four role-scoped portals — client area, IB partner portal, back-office CRM, and super-admin — so each audience gets its own authority boundary rather than one dashboard with hidden buttons
- Client portal for self-service: trading accounts, trade and transaction history, engagement rewards, settings
- IB portal for the partner network: referrals, commission statements, payout requests, marketing assets, reports
- Commission engine that snapshots eligibility — the evaluation context and result are stored at decision time and referenced by the commissions they produce, so a payout can always be explained months later
- IB earnings tracked in an append-only ledger with idempotency keys and running balances, splitting pending from available so a retry can never double-credit a partner
- Churn predictions surface as recommendations into a decision queue, never triggering actions directly
- Human-in-the-loop: operators approve, modify, or reject every automation rule, with rule evaluations logged for review
- Multi-tenant from the data model up — tenants, subscriptions, invoices, and usage records, with a separate super-admin surface
- Component reuse from Truvesta governance stack — safety invariants preserved across products
Outcomes
- One platform spans the full broker relationship: client self-service, IB partner network, operator retention, and tenant administration
- Complete client lifecycle view: acquisition → engagement → risk → retention
- Partner earnings are explainable — every commission traces to the eligibility snapshot and ledger entries behind it
- Zero autonomous actions — every retention intervention is operator-approved
- 21 test files spanning unit and Playwright end-to-end coverage
- Four role-scoped portals from one codebase: clients see their own accounts and trades, IBs see their referrals and earnings, operators see the book, super-admins see tenants and billing
- Client portal: trading accounts, trade and transaction history, engagement rewards, and self-service settings
- Append-only IB ledger with a unique idempotency key on every entry, running balance-after, and separate pending vs available balances — replaying a payment cannot double-credit
- Multi-tenant by construction: tenants, subscriptions, invoices, and usage records, administered from a separate super-admin surface
- IB partner portal: referral tracking, commission statements, payout requests, downloadable marketing assets, and reports
- Commission engine with eligibility snapshots — the decision context and its result are frozen at evaluation time, and each commission references the snapshot that produced it
- AI predictions surfaced as recommendations — operators approve every action, with confidence, input features, and rationale attached
- Reused governance components from Truvesta without cutting safety
What I refused to build
These constraints are part of the engineering signal: the work stayed useful because the unsafe shortcut paths stayed out.
- R-01Auto-execution of AI-driven retention actions — operator judgment is a hard requirement
- R-02Black-box predictions — every recommendation shows its reasoning
- R-03Recomputing commission eligibility after the fact — the context and result are snapshotted at evaluation time, so a partner dispute is settled by evidence rather than by re-running today's rules against last quarter's data
- R-04Mutable ledger balances — entries are append-only with idempotency keys, so corrections are new entries rather than edits
Stack
Hiring signal
This is the kind of work I want ASADI AI to make legible first: fintech systems where product direction, architecture, execution, and governance all have to line up.