Menu
Automotive

Dealer-to-dealer vehicle marketplace with two-tier trade-in appraisal

A B2B marketplace where dealers browse and trade each other's inventory, and trade-in appraisal runs as a structured workflow — a salesperson-manager negotiation alongside bids solicited from other dealers — instead of a set of parallel phone calls.

Client — a dealer-to-dealer vehicle trading network
Concept visuals — not actual screenshots
01 — Challenge

Wholesale trading between dealers had no shared visibility: dealers relied on auctions, brokers and personal relationships to know what was available elsewhere. Trade-in appraisal was worse — a salesperson, a manager, market data and often competing bids from other dealers all had to be reconciled verbally while a customer waited in the showroom.

Vehicle data compounded both problems. Decoded VIN data, dealer feed imports and manual entry all produced makes, models, trims and options in inconsistent shapes, and a marketplace's search and valuation are only as good as the taxonomy underneath them. Inventory also had to stay current without dealers listing manually, which meant ingesting feeds from dealer FTP/SFTP endpoints on a schedule, with partial failures that had to be visible rather than silently dropped.

02 — Approach

Built a specification normalisation service that reconciles decoded VIN data into the platform's own taxonomy — makes, models, trims, bodies, engines, fuels, colours and options — with decoding attempts logged and status-tracked so a disputed specification can be traced to its source. Automated inventory ingestion from dealer feeds as scheduled commands, recording each import run and its errors as structured data instead of letting failures disappear.

The appraisal workflow — internal salesperson-manager offers and counter-offers running alongside external dealer bidding on the same vehicle — was modelled as a single dedicated service owning every state transition, the relationship between the internal and external positions, and the resulting notifications, rather than being spread across controllers. An explicit dealer connection graph plus blacklisting, including at brand level, governs which dealers can see which inventory and which customer vehicles, with permission changes recorded in an audit log. Real-time chat runs over a hosted websocket service so negotiation conversation sits alongside the formal offers, and the mobile app carries role-specific screen sets for salespeople, managers, bidders and buyers from one Laravel API.

03 — Impact

Dealers search and filter each other's inventory instead of working through relationships and auctions, and inventory stays current without manual listing because it arrives on a schedule from dealer feeds with import errors surfaced as data. Trade-in appraisal became a managed workflow with internal approval and external bidding running in parallel, decision support for the manager computed directly rather than reconstructed from raw numbers, and a full offer/decision trail retained for review. Visibility between competing dealers is governed by an explicit, audited configuration rather than left open by default.

Stack
LaravelMySQLReact NativeLaravel 8MySQLLaravel PassportPusherReact NativeGoogle Cloud Storage
More work
Online vehicle purchase and finance journey over an existing core platform→

Something holding you back?

New build, rebuild, or adding AI to what you already have — I'll take a look and give you an honest perspective.

Get in touch ↗