Van Ngo
Work / 02 / Vested

Vested.
Get contracted, start selling, see what you are owed.

I co-founded Vested and lead its design. It is one hub where an independent health insurance agent gets contracted with carriers, sees what is blocking them, tracks every contract to appointment and checks what they were paid against what they were owed.

TL;DR3 minute read
Problem
Agents wait weeks on contracting they cannot see into, then chase their pay across a dozen carrier statements.
Users
Independent agents selling ACA and Medicare plans in a few states, often from a phone in front of a client.
My role
Co-founder and lead product designer: research, product calls, mockups and the design system.
Team
Me and one co-founder. AI drafted wireframes and wrote the code inside my design system.
Timeline
July 2026 to today
Status
Built on sample data, desktop and phone, light and dark. The open route is in review; the customer view and agency route are next.
Vested Home showing Ready to Sell, Blocking You, Commissions and Recent Activity
  1. 01Problem
  2. 02Three decisions
  3. 03The app
  4. 04How I work with AI
  5. 05Evidence
  6. 06Accessibility
  7. 07Next time

An agent cannot sell until every carrier says yes

Each carrier has to appoint the agent, usually through an FMO (field marketing organization) that takes a cut of every renewal. The agent types the same license, E&O certificate and bank details into every portal, then waits with no real status. Once they sell, each carrier pays on its own schedule, so a late payment and a missing one look the same.

Three facts shaped the product more than any visual choice:

  • StatusA carrier can be live in Texas and blocked in Oklahoma, so status belongs on each carrier, market and state, not on the carrier as a whole.
  • PayThe FMO that pays the most can cost the most. Release and vesting decide whether the agent’s book belongs to the agent.
  • CostConfirming a license is a paid lookup. At 10,000 signups that is $50,000 for accounts that may never convert, so Vested should not be the one paying for it.

Three decisions, from wire to mockup

Home answers three questions, in order My call

Wireframe of Home with seven blocks
Wire: seven blocks
Mockup of Home with an insight strip and four cards
My mockup: four cards
  • OptionsSeven separate blocks, or four cards in the order an agent asks: can I sell, what is blocking me, what am I owed.
  • PickedFour cards, with Ready to Sell first. Blocked items and the contract pipeline share one card with a switch, and Activity and Tasks share another.
  • Trade-offThe pipeline sits behind a switch instead of always showing.

The FMO match ranks on freedom, not pay My idea

Wireframe with four FMO cards and a comparison table
Wire: a comparison table
Mockup with one FMO marked Best match and another marked Pays most
My mockup: one suggested match
  • OptionsMake the agent study a table of every FMO, or suggest one per carrier and keep the rest visible.
  • PickedOne suggestion, ranked on release and vesting first, then approval rate and 12 month retention, then speed. Pay is shown and never ranked. A product called Vested should not steer agents into contracts that cost them their book.
  • Trade-offNo side-by-side table. Best match and Pays most badges keep the top payer visible without making it the default.

Registration follows the money My call

Registration step confirming the agent's license
The license step, after who pays is settled
  • OptionsRun the paid license lookup at signup, or settle who pays before it fires.
  • PickedStep one is free and resumable. Step two settles who pays: an independent agent pays a small registration fee, and an agency pays for its own agents. The card is held, not charged, until a license record comes back.
  • Trade-offOne more decision before the agent sees their licenses filled in.

The working app

Contract Pipeline with four step trackers
Contract Pipeline. Stalled is measured against each FMO’s own median, so eleven days is slow at one FMO and normal at another.
Commissions grouped by status
Commissions. Grouped by On hold, At risk, Expected and Paid, so missing pay cannot hide inside a total.
Home on an agent's first day
Day one. Useful before the agent has a single appointment.
Three phone screens
Phone. The device in front of a client, so Ready to Sell still leads.

How I work with AI

I set the concept, the brand and the variables, and I make every product call. Claude drafts wireframes and writes the code inside my design system. The split shifted as the project went on:

  • July to AugustBy hand. I drew the concept frames in Figma (the carrier detail and its profile rail, the signup screens, the first phone signup), set the variables, and assembled the first Home screens on the phone myself.
  • SeptemberWire to mockup. Claude drew annotated wireframes from my flows. I turned them into mockups and did not use every wire: I kept what worked, combined modules and changed the rest. The three decisions above are this step.
  • Late September onIn my style. With my system, my brand and two months of written decisions, Claude drafts screens close to how I would draw them. I revise instead of redrawing.

The guardrails are mine too. I wrote skills that refuse work until a condition is met: no design idea before research, nothing built outside the Playground, no partial phone builds, nothing handed back unrendered. About 200 product questions are logged so far, and every one was mine to decide.

Not launched yet. Here is what I can show, and what I will measure.

  • Two themes, one set of tokensLight and dark, desktop and phone
  • Time from signup to first appointmentGoal: weeks down to days
  • Expected commissions matched to a paymentGoal: no missing pay goes unnoticed

Accessibility

I audited every text layer in the design system for contrast: 10,097 checked, failures cut from 359 to 79, and every one left is disabled text, which WCAG exempts. No status relies on color alone; every chip carries a written label.

What I would do differently

01Write one sample book on day oneNumbers typed per screen meant a carrier read Available in one place and was missing from another. One written book per route, with every count derived from it, ended that, and stakeholders stopped reading placeholders as bugs.
02Model status on the cell from the startOnce status moved to carrier, market and state, every screen got simpler.