Skip to content

Work/B2B supply

Quotations assembled from client context

When a customer asks three suppliers and two answer within the day, the third is not really in the running. This client was routinely the third.

Sales and pricing4 min read

Sector, size, and function are stated. The client is not.

A salesperson’s desk in a B2B supply office, a finished quotation on screen and a ring binder of contract terms open beside the keyboard
The pricing logic, written down

At a glance

Sector
B2B supply
Function
Sales and pricing
Data cleaned first
Product master, contract terms per account, purchase history, and cost data that had no refresh cadence
Written down for the first time
The pricing logic
Extended to
Spare parts, project, framework, renewals
Engagement
Rules capture, then build, priced per phase

The short version

Turnaround moved from days to the same working day

Enough to be one of the two suppliers who answer while the customer is still deciding, which was the entire commercial point.

Discount leakage became visible for the first time

Every deviation from policy now carries a logged reason, so the pattern can be read rather than guessed at.

Coverage extended to four more quote types

Spare parts, project, framework and renewals, none of them in the original scope. The client asked for all four after go-live.

Why context, not calculation, was the bottleneck

A salesperson spent hours on a single quote. Pricing logic lived partly in a system, partly in contracts, and substantially in the heads of three long-serving people. Two salespeople quoting the same customer for the same items could land in different places. They often did, and the customer noticed.

The hard part is assembling context, not calculating a price. What the client bought, what they rejected, which terms apply, which lead time is realistic. That assembly is where the hours went, and that is what a system can do at speed.

Writing down what three people knew

This is the part that outlives the software.

Sessions with sales, pricing, and finance. Most of the effort went into writing down pricing logic that had never been written down: volume breaks, contract terms, freight treatment, currency handling, lead-time surcharges.

A sample of past quotes was reviewed to find where discretion had been applied and why. Some of it was good commercial judgment, and that got encoded. Some of it was habit, and that got stopped.

Approval thresholds were agreed.

The data work covered product master cleanup, unit-of-measure normalization, contract term mapping per account, and a fixed refresh cadence for cost data. A quotation built on stale cost is worse than a slow one. It is fast and wrong, and it gets signed.

What was built, and where it still fails

The sequence is simple. Getting the inputs right was not.

A quotation agent running one sequence, start to finish.

Intake

Email, portal, or call note.

Context

Identifies the account, its contract terms, and its purchase history.

Assembly

Line items, then pricing rules, then a commercial narrative drafted in the customer’s own language.

Output

A finished document. Sales checks and sends.

The quotation assembly screen: account context, a line table with a rule tag on each line, one line flagged as outside discount policy and routed to an approver, and a cost-data freshness chip
Every line carries the rule that produced it. The amber line is the one routed to an approver, with its reasoning attached rather than negotiated by email.

Discounts outside policy route to an approver with the reasoning attached, rather than being negotiated by email.

Wrong prices still go out occasionally. Sales is the check, and the check is not perfect. Every correction is logged against the rule that produced it, and rules have been amended that way ever since.

Noted at handover
The real output of this project was not the agent. It was the pricing logic, written down and testable for the first time, having lived in three people’s heads for two decades. One of them retires next year.

bearingbridge.ai project record, phase Build

Where it stands after a few months

Turnaround moved from days to the same working day.

Discount leakage became visible for the first time, because every deviation is now logged with a reason.

The client extended the system to spare parts quotes, project quotes, framework agreements, and renewals. None of that was in the original scope, which is the clearest signal the thing works. Each extension took additional rules work, so the extensions were not free.

Months later, quote volume per salesperson was up and the pricing rules had been amended repeatedly, each amendment traceable to the correction that prompted it.

Three things that made it work

The undocumented logic got documented

That was the project, and it would have been worth doing whether or not an agent got built on top of it.

Discretion was audited rather than preserved

Judgment got encoded. Habit got stopped. Telling the two apart took a week of reading old quotes with the pricing manager.

Cost data now has a refresh cadence

Fresh inputs are the whole difference between fast, and fast and wrong.

Figures on this page are client-verified and published with permission. Where a figure is absent, the outcome is described in operational terms instead.

Talk to us

Talk to us about AI.

A conversation with the senior team about your markets, your data, and where AI would actually pay back for you. No slides, no obligation, and if the honest answer is that AI is not your next move, you will hear that too.