Selected work CurbieInternal tool, 0→1

One home for every vehicle

Curbie’s teams were managing inventory across multiple tools and entering the same vehicle data again and again. I designed a dedicated tool from scratch, covering the whole workflow: add a vehicle, get it ready, list it, and track it until it sells.

My role
Lead Product DesignerEnd-to-end, from 0 to 1
Company
CurbieB2C used-car marketplace
Team
PM, engineers, leadershipwith me as the designer
Scope
Full internal workflowAdd, update, monitor, track
A full 0→1 workflow

A dedicated tool, built around how Curbie’s teams manage inventory

One vehicle record

Enter a vehicle’s details once and work from them everywhere

21→8

Times a vehicle’s details are entered by hand

01. The problem

Inventory had outgrown the tools managing it

Every vehicle Curbie sold passed through acquisition, operations, a mechanic, a photographer, marketing, and sales. None of the tools they used were built for that whole journey, so the work was spread across all of them, and the same details had to be entered in more than one place.

One vehicle moving through six teams before the tool. Acquisition buys it, operations brings it in and then chases its status across every team, a mechanic inspects and repairs it, a photographer shoots it, acquisition sets the price, marketing writes the listing, and sales handles leads and the sale. Work loops back when repairs change the cost, photos need reshooting, a price needs to change, or a sale falls through. Five numbered problems are listed below the map. Buy Bring in Recondition Photograph List Sell Acquisition Operations Mechanic Photographer Marketing Sales Buy thevehicle Bring it in Chasing where each vehicle is, across every team Inspectand repair Shootthe photos Set theprice Write thelisting Handle leadsand the sale Repairs change the cost Reshoot Relist Reprice 1 2 3 4 5 One vehicle moving through six teams before the tool. Acquisition buys it, operations brings it in and then chases its status across every team, a mechanic inspects and repairs it, a photographer shoots it, acquisition sets the price, marketing writes the listing, and sales handles leads and the sale. Work loops back when repairs change the cost, photos need reshooting, a price needs to change, or a sale falls through. Five numbered problems are listed below the map. Acquisition Buy the vehicle Operations Bring it in, chase status Mechanic Inspect and repair Photographer Shoot the photos Acquisition Set the price Marketing Write the listing Sales Handle leads and the sale Repairs change the cost Reprice or relist 1 2 3 4 5
  1. The vehicle’s details get typed in again, because the next team works in a different tool.
  2. No one place shows where a vehicle is, so finding out means asking around.
  3. Costs build up in different places, so the real total is hard to see.
  4. The listing is put together by hand from details and photos that already exist elsewhere.
  5. Sales works from what’s been passed along, which may not reflect the latest change.
  • Duplicate data entry: the same vehicle information was typed in again for each tool, which took time and gave errors more places to creep in.
  • Too many tools: getting one vehicle ready meant moving between tools, with no single place to see all of it.
  • It wouldn’t scale: every added vehicle added more manual work, so the process couldn’t grow at the rate the company wanted to.

The goal

Give internal teams one dedicated tool to add, update, monitor, and track every vehicle, so its details are entered once and the process can grow with the company.

02. The workflow

Designing the whole journey, not a set of screens

This was a much bigger problem than a single feature. A vehicle has a long life inside the company, and each stage needs different information from different people.

Watching the work

I talked with people across the teams and watched how they actually worked: what they did at each stage, which tools they had open, and what they needed from the people before and after them.

Handoffs were the slowest part

Vehicles sat waiting because the next team didn’t know it was their turn, not because the work itself took long.

Getting a car ready meant updating the same details in several places, then messaging everyone who needed to know. Miss one, and nobody knew.

The same details, entered again and again

Laying out who entered each detail and who needed it made the duplication impossible to miss. Several teams needed the same information, and each one was keeping its own copy.

Enters itNeeds it

Before the tool: who enters each vehicle detail and who needs it
Vehicle detailAcquisitionAcqOperationsOpsMechanicMechPhotographerPhotoMarketingMktgSalesSalesEnteredTimes
VIN, year, make, model4×
Purchase and repair costs3×
Condition and inspection2×
Status and location5×
Photos2×
Price4×
Features and description1×

A simple question with no quick answer

The clearest example was also the most common one: is this vehicle ready to list? Nothing could answer that on its own, so people answered it for each other.

FlowWhat it took to answer “Is it ready to list?”
Before the tool, finding out whether a vehicle was ready to list meant checking one tool, checking another, messaging a teammate, waiting for a reply, sometimes asking someone else, and ending with an answer that may be out of date. With the tool, the person opens the vehicle and the setup checklist shows what is left. Before With the tool Is this vehicleready to list? Checkone tool Checkanother Messagea teammate Wait fora reply An answer,maybe outdated Ask someone else Is this vehicleready to list? Open thevehicle See what’s lefton the checklist Nobody else gets interrupted Before the tool, finding out whether a vehicle was ready to list meant checking one tool, checking another, messaging a teammate, waiting for a reply, sometimes asking someone else, and ending with an answer that may be out of date. With the tool, the person opens the vehicle and the setup checklist shows what is left. Before With the tool Is it ready to list? Check one tool Check another Message a teammate Wait for a reply Maybe outdated Is it ready to list? Open the vehicle See what’s left

One record, built around every team

The teams didn’t need the same screen. They needed different parts of the same vehicle, so the structure of the tool came from who owns what.

MapWhat each team adds to the record, and gets back
Six teams each own part of a single vehicle record. Acquisition owns VIN lookup, costs, and pricing. Operations owns status and hub. The mechanic owns condition and inspections. The photographer owns photos. Marketing owns features and highlights. Sales owns leads and reservations. From that one record everyone gets the listing shoppers see, internal and external status, setup progress, stats and costs, and change history. Each team owns a part Everyone gets AcquisitionVIN lookup, costs, pricing OperationsStatus and hub MechanicCondition and inspections PhotographerPhotos and cover image MarketingFeatures and highlights SalesLeads and reservations Onevehiclerecord The listing shoppers see Internal and external status Setup progress Stats and costs Change history Six teams each own part of a single vehicle record. Acquisition owns VIN lookup, costs, and pricing. Operations owns status and hub. The mechanic owns condition and inspections. The photographer owns photos. Marketing owns features and highlights. Sales owns leads and reservations. From that one record everyone gets the listing shoppers see, internal and external status, setup progress, stats and costs, and change history. Each team owns a part AcquisitionVIN lookup, costs, pricing OperationsStatus and hub MechanicCondition and inspections PhotographerPhotos and cover image MarketingFeatures and highlights SalesLeads and reservations One vehicle record Everyone gets The listing shoppers see Internal and external status Setup progress Stats and costs Change history
Each team adds the part only they know, and nobody has to retype anyone else’s. Everything they get back comes from the same record, so it can’t disagree with itself.

The design decision

Organize the profile by kind of work, with one tab for each. Each team can go straight to its part, on the same record as everyone else.

The trade-off

A tool that serves six teams shows each of them things they don’t need, and a single record means agreeing on who owns what. That’s worth it to have one version of every vehicle.

03. The core model

One vehicle, two statuses

Two questions kept coming up about every vehicle: where is it in our process, and what can shoppers see? Those are separate questions, so they got separate statuses.

Two parallel status tracks. Internal status moves through Incoming, In-Transit, In Recon, Photography, and In Stock. External status moves through Not Listed, Coming Soon, For Sale, Sale Pending, Sold, and Returned. A vehicle can only become Coming Soon once its five setup sections are complete, and For Sale once its photos are done. If a purchase falls through, a Sale Pending vehicle goes back to For Sale. Internal: where it is in our process Incoming In-Transit In Recon Photography In Stock External: what shoppers see Purchase falls through Not Listed Coming Soon For Sale Sale Pending Sold Returned Needs all five setup sectionsNeeds photos Two parallel status tracks. Internal status moves through Incoming, In-Transit, In Recon, Photography, and In Stock. External status moves through Not Listed, Coming Soon, For Sale, Sale Pending, Sold, and Returned. A vehicle can only become Coming Soon once its five setup sections are complete, and For Sale once its photos are done. InternalExternal Incoming In-Transit In Recon Photography In Stock Not Listed Needs all five sections Coming Soon Needs photos For Sale Sale Pending Sold Returned

The design decision

Keep internal and external status as two separate fields, both visible at the top of every vehicle. Nobody has to work out one from the other.

Readable at a glance

Each status has its own coloured dot, so someone scanning a long inventory list can pick out where vehicles stand without reading every row.

04. Adding a vehicle

Start from the VIN, not a blank form

Duplicate entry was the biggest pain, so it was the first thing to design out. Most of what a new vehicle needs can be worked out from its VIN.

FlowThe three outcomes of entering a VIN
Entering a VIN has three outcomes. A match fills in the vehicle's details for review. A VIN already in inventory links to the existing vehicle. A VIN with no match offers manual entry. Matched and manual vehicles then continue to the setup sections. Enter the VIN Match found Already in inventory No match Details filled in for review Link to the existing vehicle Manual entry Finish setup Entering a VIN has three outcomes. A match fills in the vehicle's details for review. A VIN already in inventory links to the existing vehicle. A VIN with no match offers manual entry. Matched and manual vehicles then continue to the setup sections. Enter the VIN Match found In inventory No match Details filled in Link to existing Manual entry Finish setup

The design decision

Ask for the VIN first and use it to fill in the year, make, model, trim, specs, and likely features. Staff check the details and add what only they know, like mileage.

Fields filled in from the VIN are highlighted, so staff can see what to check.

Duplicates caught early

If the VIN is already in inventory, the tool says so straight away and links to that vehicle, so nobody starts a second record for the same car.

New vehicle page with an error under the VIN field saying this VIN is already in inventory as a 2019 Toyota RAV4 XLE, with a link to open it

05. Getting it ready

A vehicle can’t go live until it’s ready

Several people contribute to a vehicle over days or weeks, so it’s easy to lose track of what’s still missing. The tool keeps track instead, and it won’t let an incomplete vehicle reach shoppers.

The dashboard says how many sections are done and continues with the next one. A progress pill beside the vehicle’s name opens to what’s left on every tab, and a dot marks each tab that still needs attention.

The design decision

Trying to publish too early doesn’t just fail. The tool lists what’s missing and takes you to the next section to finish.

The trade-off

A hard requirement adds a step when a team is in a hurry to list a vehicle. It’s worth it, because an incomplete listing costs shoppers’ trust. Coming Soon gives teams a way to show a vehicle’s on its way before it’s ready for sale.

06. The vehicle profile

Everything about a vehicle, in one place

The profile is the centre of the tool. Each team goes straight to its own part of the vehicle, and everyone works from the same record.

The vehicle’s details

General Info

General Info holds all of the vehicle’s details, each in a field staff can edit. It also tracks where the vehicle is: its inventory hub decides where it’s listed, while its current location can be a hub, the reconditioning centre, or in transit.

Specs

The full technical data sits in groups that open when needed, with the details people ask about most in a short summary beside them.

Features

Features lists everything the vehicle comes with, grouped by type: value adds, exterior, interior, tech, and safety.

The design decision

Features that match the vehicle’s year, make, model, and trim are already added. Staff only need to check or uncheck what’s different.

Beyond the standard list

Value adds, like winter tires or floor mats, get their own group and appear on the listing. Anything missing can be added as a custom feature.

What shoppers will see

Staff write a headline and description, then choose highlight badges or add their own. A preview of the listing card updates as they go.

Highlights tab with a headline, description, and highlight tags, next to a preview of the listing card
Alternative explored

Picking highlights from every feature

Concept: a Highlights tab where staff select 10 feature highlights from the vehicle’s features and 3 larger vehicle highlights

An earlier version had staff pick 10 feature highlights from the vehicle’s full list of features, plus 3 larger vehicle highlights.

Why I turned back

  • It didn’t cover the whole listing.The headline and description weren’t part of it, so marketing still had to write them somewhere else.
  • It was more work.Finding the right highlights meant going through every feature on the vehicle.
  • The same ones kept getting picked.The team settled on the highlights that got the most clicks, like 0 accidents, so the choice rarely changed from one vehicle to the next.

Photos

Staff drag photos in, put them in order, and choose the cover shown on the website. Each photo opens full size, and removing one can be undone.

Photos tab with an upload area and a gallery, with the first photo marked as the cover

07. Pricing

Setting a price with the numbers beside it

A price affects both Curbie’s profit and whether a vehicle sells, so the person setting it needs the costs and the market in view at the same time.

As staff enter the acquisition cost, reconditioning, and a market adjustment, the profit and suggested price update straight away. Curbie’s pricing model, MARVIN, and Canadian Black Book values sit beside them for comparison.

The design decision

Experimenting with the numbers never changes the list price. Applying the suggested price is a separate step, with a confirmation showing the change and the profit at the new price. Once confirmed, the new price applies right away, can be undone, and is logged in a price history with the date, the change, and who made it.

How it compares to the market

A market position bar shows at a glance whether the price is below market, fair, or above it. The market figures follow the selected province and can be refreshed, and the comparable vehicles behind them open in a sortable table.

Comparable vehicles modal with a sortable table of similar vehicles, their mileage, location, days listed, and price compared to this one

When a price goes stale

Once a vehicle has been on the market for 45 days and is priced above the middle of its range, the tool suggests a price, and the vehicle’s dashboard links to it too. Using it goes through the same confirmation, so a suggestion never changes the price on its own.

08. Condition and history

The paperwork lives with the vehicle

A vehicle’s records come from different places, but the people working on it need them together, on the vehicle itself.

The 240 point inspection is attached as a file, and the profile shows who added it and when. More files can be added beside it, and each one can be opened, downloaded, replaced, or removed from its row.

The design decision

Paste a Carfax link and the tool imports the accidents, owners, service records, and in-service date, then works out a vehicle grade. It’s one more place nobody has to retype.

Provincial inspections

A vehicle can have an inspection for each province it might be sold in. Each one records its status, date, station, certificate number, expiry, and certificate, and shows as a single row until someone needs the details. Once a pass runs out, it shows as expired.

An inspection dialog with its province, status, date, station, certificate number, expiry, and attached certificate

Warranty, recalls, and liens

  • WarrantyEnter the length and kilometre limit for the drivetrain, manufacturer, and any extended coverage, and the tool works out whether each one is active, expired, or over its limit.
  • Recalls and liensEach check records its result, date, source, reference number, and report, and stays on the vehicle. Any problem it finds is flagged.

09. Monitor and track

From one vehicle to the whole inventory

Setup is only half of it. Once a vehicle is in the system, teams need to find it, see how it’s doing, and know what’s changed.

The inventory table

This is where every team starts. Filter by status, province, hub, make, body type, website status, or setup progress, search by name, VIN, or stock number, and sort any column. The status column shows the external status for vehicles on the website and the internal one for everything else.

The design decision

Bulk actions follow the same rules as a single vehicle. Each selected vehicle gets its own statuses in one dialog, For Sale stays unavailable until setup is finished, and a summary says how many will go on the website. The change can be undone straight after.

Reserved vehicles

Vehicles with a sale pending can’t be selected for bulk actions, and Sale Pending isn’t offered there either.

A dashboard that follows the vehicle

Before a vehicle is listed, its dashboard shows setup and how long it’s spent in each internal stage.

A vehicle’s dashboard before it’s listed, with an internal progress card showing how long it spent in each stage and that it’s 3 days into photography

Once it’s listed, that changes to views, days on market, market position, and time in inventory, with a link through to the pricing insight when there is one.

A vehicle’s dashboard showing total views, days on market, market position, time in inventory, and a table of leads

Leads

Inquiries and test drive requests are listed on the vehicle they’re about. Opening one shows the customer’s message and a way to reply. As staff follow up, they move it through each stage until it’s closed.

A lead panel open beside the dashboard, showing the customer’s email, when it arrived, its status, and their message

The side rail

A rail on the right of the profile keeps quick reference panels one click away from any tab. Each one opens over the page, so staff can check a number or a record and get back to what they were doing.

The rail holds five panels. Stats turns the vehicle’s history into answers, from time in each stage and days till sold to views, leads, and failed purchases. History logs every status, price, and detail change automatically, with who made it and any reason given, and exports as a CSV. Cost summary adds up what’s been spent and what the vehicle stands to make. Protection brings the lien, recall, and warranty checks together, so nobody has to dig through a tab to confirm a vehicle is clear. Documents keeps the bill of sale and registration beside the reports from Condition & History.

10. Sale pending

When a buyer reserves a vehicle

The workflow doesn’t end at the listing. Once a buyer reserves a vehicle, editing it could change what they agreed to, and not every purchase goes through.

FlowWhat happens when a buyer reserves a vehicle
When a buyer reserves a For Sale vehicle, it becomes Sale Pending and its listing locks. If the purchase completes, it becomes Sold, and can later become Returned. If the purchase falls through, staff put it back on sale, which is logged as a failed purchase. Buyerreserves Purchasecompletes Buyerreturns it For Sale Sale PendingListing locked Sold Returned Purchase falls throughLogged as a failed purchase When a buyer reserves a For Sale vehicle, it becomes Sale Pending and its listing locks. If the purchase completes, it becomes Sold, and can later become Returned. If the purchase falls through, staff put it back on sale, which is logged as a failed purchase. For Sale Buyer reserves Sale PendingListing locked Purchase completes Sold Returned Fallsthrough,logged
A sale pending vehicle with a banner saying the listing is locked and a link to the purchase, above General Info fields that are all disabled

The design decision

A reserved vehicle becomes read-only. A banner says so and links to the purchase, because changes now belong in the purchase workflow.

The trade-off

Staff can’t quickly fix even a small mistake on a reserved vehicle from here. That’s worth it to make sure the vehicle can’t change under a buyer.

When a purchase falls through

Putting a vehicle back on sale has real consequences, so the confirmation spells them out: the buyer loses their reservation, the vehicle is relisted right away at its current price, and staff can edit it again. Staff can add a reason, which stays with the record.

The design decision

Don’t erase what happened. Each release is recorded as a failed purchase in Stats, so a vehicle that keeps falling through is visible rather than looking like it’s just been sitting.

Earned, not assumed

A vehicle can’t be marked Sale Pending until setup is complete, the same as For Sale.

After the sale

A sold vehicle shows who bought it and when, with a link to the purchase.

Returns

If it comes back, marking it Returned keeps it off the website and records the return in History, with an optional reason. Any refund or paperwork stays in the purchase.

Mark this vehicle as returned dialog, with a link to the purchase for any refund or paperwork and an optional reason

11. Real-world states

Designing for how the work really goes

A tool people use all day has to hold up when work gets interrupted or something goes wrong, not just on the ideal path.

Unsaved changes

Save only becomes active once something’s changed. If staff try to leave with unsaved edits, a dialog asks whether to keep editing, discard them, or save before leaving.

Mistakes

Deleting a vehicle needs a confirmation, and it can still be undone right after. Removing a photo, file, or inspection can be undone too. Before a vehicle is taken off sale, staff are told what shoppers will no longer see.

Similar vehicles

When a new vehicle is much like one already in inventory, staff can duplicate it. The copy keeps details like the make, model, specs, and features, but leaves anything unique to that car, like its VIN, mileage, price, and photos, blank.

12. Results

What changed

8+→1

tools needed to manage a vehicle day to day

  • ProblemEach team worked in its own tool(s), and none of them were built for the job.
  • DecisionDesign for every team on one record, with setup, pricing, records, listing, and tracking in one workflow.
  • OutcomeOlder tools were retired, and new hires had one system to learn instead of several.
21→8

times a vehicle’s details are entered by hand

  • ProblemEach team kept its own copy of a vehicle’s details, so the same information was typed in again and again. Every new vehicle added that work, so growth meant hiring.
  • DecisionGive every team the same record, so each detail is entered once, by the team that owns it.
  • OutcomeEach vehicle takes less than half the hands-on entry, so the team can handle more vehicles before it needs to grow. With one current copy, there’s also less room for wrong details to reach shoppers.
Faster to list

Less time between acquiring a vehicle and listing it

  • ProblemA vehicle can’t sell until it’s listed, and it costs money every day it waits. Re-entering details and chasing handoffs was adding days.
  • DecisionStart from the VIN, keep one record, and show every team what’s left to do.
  • OutcomeVehicles reach shoppers sooner, with less holding cost on each one.

Beyond the screens

Set the direction

Turned the research maps into the shared picture leadership used to agree on scope and on building a dedicated tool.

Shaped the system

The two-status model became the structure engineering built on, and the shared language teams used to talk about a vehicle.

Aligned the teams

Worked through competing needs with every team, including who owns each detail and who can change it.

13. Reflection

What I learned

  1. Model the problem before the screens.

    Separating internal and external status made the rest of the tool easier to design. The biggest decisions in a 0→1 product are often about structure.

  2. Let the tool remember.

    With several people working on one vehicle over time, setup progress and change history do work that used to depend on people keeping track.

  3. Internal users deserve the same care.

    Someone using a tool all day feels every extra click, so small details have an outsized effect on how fast a team can move.

Try it

Clickable prototype

Open a vehicle that’s already set up, or add a new one from its VIN and take it through to a live listing.

Loading prototype…

Stop 01AgencyAnalytics (B2B SaaS)

AI benchmarking, forecasting & anomaly detection

Read the case study