All work
AIPropTech

AI that matches plans to your door

Company
Updater
Role
Lead designer, built in code
Scope
Assistant widget + partner landing page
Users
Movers on partner ISP sites
Year
2026

Plan Assistant is an AI buying assistant that runs inside a narrow iframe on a partner ISP site, next to the plan grid it is meant to help you navigate. The category it sits in makes money on prices that are not the price: promotional rates that reset, equipment fees quoted separately, add-ons preselected by default. The experiment asked a question the business had reason to fear. If we are completely explicit, about the AI and about the real cost, do people still order?

The assistant sits alongside the plan grid rather than in front of it. Nothing is preselected and every card carries the rate after the promotional period.
The five rail states, in order: capture, unit, resolving, value, recommendation.

Two decisions that shaped it

01

Say it is AI, then earn the order anyway

The easy version of this product hides what it is. A chat box with a friendly name converts fine and nobody asks whether a model picked the plan. I labelled it instead. The assistant is named as AI, the disclosure states that prices and availability come from live address data rather than from the model, every plan shows the post-promotional rate and equipment terms, and nothing arrives preselected. The bet was that in a category built on obscured pricing, being the only honest surface is worth more than the conversions the honesty costs.

02

Ask for the address once

A new address is the one address nobody can type from memory, and renters often do not have a unit number yet. The assistant checks the exact address rather than the ZIP, because service changes street by street and a ZIP-level answer is a guess dressed as a fact. If the unit is unknown there is an explicit path forward rather than a blocked field, and the address carries into setup so it is never asked twice.

Below 980px the rail docks. Collapsed before capture, collapsed after, then the expanded sheet over the page.

What happened

The experiment shipped as a live prototype on the partner page. The readout is not written up here yet.

How I worked

Open questions, written down

A handoff Read me carrying nine named open questions, each with the reasoning attached: the destructive button variant missing a hover rule, eight tokens defined but never referenced, a badge using untinted neutrals against a blue-tinted ramp, and plan tiers the scoring engine can never reach.

Built on Polaris tokens

Polaris primitives and semantic tokens throughout, real Phosphor icons rather than hand-drawn substitutes, and the proposed Polaris Button spec implemented across four variants and three sizes.

A test harness, after being burned

Syntax checking passed while the page threw at runtime, so I built a jsdom harness and ran every build through it before shipping.

What I would change

I wrote the marketing thesis before I verified the offer. The page was built around a month-13 price jump, and the real product is a five-year price lock with no annual contract, which makes the argument false. I caught it from a screenshot of the live site rather than from the source of truth. Check the offer first, then write the page.

AI surface that has to convert?

Next: One page, three kinds of deal