- Client
- A packaging and sourcing broker
- Industry
- Sourcing & brokerage
- Of workflow carried across intact
- 20 years
- Vendor capability codes migrated
- 93
- Margin protected in the database
- Row-level
The problem
The business ran on a SQL Server application built in 2003, sitting on a server in the office, and the people who used it had twenty years of muscle memory in it. Replacing it meant one of two bad outcomes: keep the old thing and its risks, or buy a platform priced per seat for enterprises, use a fraction of it, and reshape a genuinely unusual process to fit somebody else's model. Brokering runs on specifics. Vendor-to-vendor shipping, freight riding on the tooling line, a capability vocabulary built up over decades. No off-the-shelf system models that. Meanwhile the daily work was slower than it needed to be: around 90% of what the office does is repeat business, and duplicating a 60-line inquiry meant deleting forty items one at a time, scrolling back down after every single one.
What we built
We rebuilt the full broker lifecycle, from inquiry through RFQ, vendor pricing, customer quote, order, purchase orders, releases, shipments and billing, plus the master files it all hangs off: customers, vendors, materials, and the 93-code vendor capability vocabulary carried across intact. A CRM pipeline, a set of read-only operational reports, and an admin area for users, single sign-on and integrations sit alongside it. The design rule throughout was to halve the clicks on the work that actually happens and let the system anticipate: the new duplicate dialog asks which lines and at what quantity, rather than making someone delete forty of them by hand. Cost and sell visibility is enforced with Postgres row-level security rather than by hiding a column, so a salesperson can see that 15,000 units are being quoted and genuinely cannot see the margin. Deletes are audited, concurrent edits are caught so the second person to save can no longer overwrite the first, and two years of history was imported live with a nightly sync from the old server keeping both systems in step through the transition.
The outcome
The office kept its vocabulary, its job numbers and its workflow, so the change landed as a faster version of a familiar system rather than as a migration anyone had to be trained through. Repeat work, which is most of the work, takes roughly half the clicks it used to. Margin is protected at the database rather than in the interface, which is the part that matters when the margin is the product. Nothing is silently lost any more: deletes are audited, concurrent saves no longer overwrite each other, and every send reports where it actually went. The old data stays searchable throughout, and the extract carries the original system's own record counts, so answering "are we missing anything" is a glance rather than an afternoon.