01 · Overview
A client relocates an engineer to Manhattan for four months. A housing specialist builds the quote, and that quote depends on availability, cost, stay length and which building fits.
- Role
- Lead Product Designer
- Timeline
- Feb – Jul 2025
- Product
- FQ Live, internal sales platform
- Also
- Design system and governance
- Users
- Housing specialists, quoting live requests
- Team
- 1 product manager, 4 engineers, the sales operations lead

02 · The short version
03 · Context
Availability lived in one system and pricing in another. Property details were somewhere else again.
Building one quote meant several open tabs and numbers copied by hand. Often it also took a message to a colleague asking whether a unit was still open.
Requests from large accounts came in faster than the team could answer them.
Sit beside the quote while it happens
I sat with housing specialists while they quoted live requests and mapped the path from inbound email to sent quote. Along the way I counted every moment someone had to leave the tool.
Two weeks sitting beside six housing specialists, across 27 live requests. Every exit was logged with where they went and why.
Very little of the time in a quote went to deciding anything.
Most of it went to retrieving information the tool already had.
So the rebuild kept the deciding and moved the retrieving into the tool.
The quote fills in while you browse
Inventory search and property listings feed a quote in progress, so a unit is added while browsing. New Quote runs in five steps. Units go in first, from inventory or from outside it, and the last step shows the email exactly as the client will get it.
Built to be read aloud
Property records hold what a specialist reads aloud on a call: photos, layout, amenities, pet policy.
- Client
Can you send me photos of the bedroom?
Photos - Client
How is it laid out? Is there a desk?
Layout - Client
Is there a gym in the building?
Amenities - Client
He's bringing his dog. Is that a problem?
Pet policy



Dogs and cats welcome, under 50 lb. One-time pet fee.
Answered before the call ends
Pricing recalculates as stay length and unit mix change, so “what if we extend to six months?” gets answered during the call.
- SpecialistFour months from April 16th, one bedroom in Tribeca.
- ClientWhat if we extend to six months?
- ClientAnd a studio for his manager, same dates?
- SpecialistSending both now, before we hang up.
- 1 bed · 1117 Tribeca
- Studio · 0903 Chelsea
- 2 bed · 2210 Tribeca
- NYC taxes
Try it: drag the stay length, or change the unit mix.
Decided once, by name
Years of inconsistent patterns meant every new screen made fresh decisions about spacing, type and states. I built the token set and component library with engineering, then wrote the usage and governance docs and handed them to the internal team.
-
Layer 1Token set. Spacing, type and color decided once, by name, so a new screen inherits them instead of choosing again.
-
Layer 2Component library. Built with engineering, in the code the product ships, so the library and the product are the same thing.
-
Layer 3Governance docs. When to use each piece, and how to ask for a new one, handed to the internal team.
Every call had a price
Three trade-offs shaped the rebuild. Each sat between two things worth wanting, and someone paid for every one of them.
Live totals, with every override on the record
Clients made up their minds while they were still on the phone. A quote that waited for a second check often arrived after they had called someone else.
Finance gave up approving every quote before it went out. A manual price change now needs a reason, and those reasons are reviewed every week.
Records ordered for the call
Specialists read a record from the top while the client listens. Photos, layout, amenities and pet policy came up on almost every call. Mail and key instructions came up after booking.
Operations notes moved down the page, below what gets said on the call, and the operations team rewrote building notes so they could be read aloud.
A small, governed library over an open one
The audit turned up near-copies of the same few components, and almost nothing that was actually missing. An open library would have grown the same way.
New patterns wait for review. One team waited a sprint for a date-range picker and shipped a workaround, which we later folded back in.
What shipped, and what it changed
-
A rebuilt FQ Live: inventory, pricing and property details feed one quote in progress.
-
Pricing that recalculates while the specialist is still on the call.
-
A design system from token definitions through production, with governance docs handed to the team.
“I can price the what-if while they're still asking it.”
What I would do differently
- I timed the old quote from shadowing notes, after the fact. It holds up, but it is thin. Next time the timer starts before the first sketch.
- I shadowed the people answering requests, not the large accounts sending them. Half the back-and-forth began in the request itself.
- Shipping the design system inside the quote builder meant every token was tested by a real screen from the first week. I would do that again.