Procurement Control Tower Procurement Control Tower

Worked example

One requirement, from the signal to the claim.

Nineteen steps through a single purchase at a switchgear manufacturer: the stock warning that started it, three quotations in two currencies, the landed-cost comparison that reversed their ranking, the award, the shipment that arrived four weeks late, and the liquidated damages that followed. Every screen below is the product. Every number in it was calculated by the product.

About the company in these screens

Northgate Control Systems builds low-voltage switchgear and control panels, and is entirely invented — the company, its suppliers, its part numbers, its prices and its quantities. The software is not. What you are looking at is the real application running on that example data, screen by screen, in the order the work happened.

The short version

Eight lines, for anyone who has to explain this to somebody else. The long version — all nineteen steps, with the screens — is underneath.

  1. The cockpit says order now. On 20 September, 22 of 121 tracked items are below their reorder point, each with the cover it has left and the numbers that produced it. Nobody went looking.
  2. The buying team decides, and the decision is kept. A 41-minute review closes with every item carrying an outcome and a reason. The log holds 74 decisions across 56 items and none of them is unexplained.
  3. One sourcing event holds the whole enquiry. Four busbar lines, 7,200 pieces, three suppliers, the RFQ, the quotes, the comparison and the award — under one reference, NG/RFQ/2026/001.
  4. Quotes come back in three currencies, into two ports. Euros into Jeddah, dollars into Dammam, dollars into Jeddah, on different payment terms. Nothing is comparable yet.
  5. Landed cost reverses the ranking. The cheapest quotation is 175,742 SAR below the next one and lands 199,090 SAR above it. That reversal is the difference between a good decision and a defensible one.
  6. A negotiation round, then a split award. 111,400 SAR comes off the original quotations. 70/30 across two suppliers, with the reason for each line typed in beside it — including the 59,727 SAR the second source costs.
  7. The commitment slips, and the slip is classified. Supplier delay, so the date moves and the liability does not. Chased, dispatched 28 days late, received.
  8. The contract clause calculates itself. 0.75% a week after seven days' grace, capped at 3%: 33,260.22 SAR, on a statement that is ready to send.

Step 1 of 19

Nobody went looking for this

On 20 September 2026 the cockpit has 22 of 121 tracked items at Order now and 18 more falling due next month. Each row shows what produced that verdict: stock available, open sales orders, what is already on order, arrivals booked for the next three months, and the months of cover those add up to.

NG-MCB-1010 has 2 months 15 days of cover and nothing arriving. That is the entire argument for ordering it, sitting on the row, before anyone opens a spreadsheet to build it.

The cockpit: tiles reading 22 order now, 18 order next month, 81 on track across 121 active SKUs, above a table of parts with stock, open orders, three months of booked arrivals, months of cover and a recommendation pill on each row.
Tracked parts
121
Order now
22
Order next month
18
On track
81

Step 2 of 19

People decide, in a meeting, on the record

The software does not place orders. It prepares a review: the items that need a call, the numbers behind each one, and a place to put the answer. The most recent review ran 41 minutes with three people and closed with five recommendations accepted, three modified, one deferred and one replaced with something the meeting invented.

The meetings register: three completed reviews with their date, duration, attendees and a summary of how many recommendations were accepted, modified, deferred or replaced, each exportable to Excel or PDF.

Step 3 of 19

The decision is written down, with its reason

74 decisions across 56 items, four people deciding, and not one of them unexplained — the log will not take a call without a reason. Six months later, the question “why did we order half of this?” has an answer with a name and a date on it.

The log reads itself back, too. It flags the parameters being corrected by hand over and over: the available quantity on NG-BUS-1795 has been overridden twice in six weeks, which says something about the model rather than about the buyer.

The decision log: 74 decisions across 56 items, none unexplained, four people deciding, a panel listing parameters repeatedly corrected by hand, and cards showing each item's latest decision with the reason quoted.
Decisions recorded
74
Items covered
56
Without a reason
0

Step 4 of 19

The requirement becomes a sourcing event

NG/RFQ/2026/001. Category Switchgear & Protection, four copper busbar lines, 7,200 pieces in total, wanted by 11 August, prepared by M. Haddad and verified by D. Whitfield. One reference now carries the whole enquiry through to the award.

The second line already knows what it cost last time — PO 454604, 558.05 SAR landed — so the benchmark is on the screen before a single quotation arrives. Lines stay in the order the buyer typed them; Reorder is how that order changes, and all of it saves in one go rather than one slow write per move.

Step one of a sourcing event: the RFQ reference, category, dates and the people who prepared and verified it, above four material requirement lines with quantities, delivery plant, quantity per container and the last purchase order placed for each.

Step 5 of 19

Three suppliers, three sets of terms

Halden Elektrik quotes euros into Jeddah on 30 days from bill of lading. Aolin Electric quotes dollars into Dammam against a letter of credit. Sundar Switchgear quotes dollars into Jeddah, half in advance. All three are CFR, so the same legs of the journey are theirs and the same legs are Northgate's.

The number to watch is the factor under each card — 4.779, 4.913 and 4.575 landed riyals per unit of that supplier's own currency. It carries the exchange rate, the freight, the duty and the charges from port to plant, and it is what will make three incomparable quotations comparable four steps from now.

Three supplier cards side by side, each with the supplier's contact, port of receipt, incoterm, currency and payment terms, and under each one the landed-cost factor computed for that combination.

Step 6 of 19

The enquiry goes out on the company's letterhead

One click assembles it: the company's own logo, the event details, the four lines with their quantities, the quality and technical clauses, the commercial terms and the closing. Copy RFQ (formatted) puts the whole document on the clipboard with its formatting intact, to be pasted straight into an email.

The format is held once per category in master data, not per enquiry. Change a clause there and every future RFQ in that category carries it — which is the difference between a template and six slightly different templates on six people's desktops.

The request for quotation as the supplier will receive it: company letterhead, an event details table with the reference, category and response date, and a material requirements table listing the four busbar lines with an empty unit price column.

Step 7 of 19

Quotes come back, each in its own currency

Prices are entered exactly as the supplier sent them — euros from Halden, dollars from Aolin and Sundar — along with the delivery time, payment terms, validity and any deviation the supplier noted. Nothing is converted at this point, because converting early is how the wrong number ends up in the minutes.

The first price saved against a supplier becomes the benchmark and is never overwritten. That is why each cell here carries a second line: orig 113.74 · saves 3.27. This screenshot is the grid after the negotiation of step 10 — the original quotation is the smaller figure, still there, still the thing any saving will be measured against. Twenty entries are in this event's price-change log.

The quotes grid: four part numbers down the side, three suppliers across the top with their currency and incoterm, each cell holding the current unit price and, beneath it, the original quotation and what the negotiation saved. Rows underneath hold delivery time, payment terms, price validity and deviations.

Step 8 of 19

What the material will actually cost

Landed cost is built up in one line, printed at the top of the screen so nobody has to take it on trust: quoted price, to CIF by exchange rate in each cost's own currency, plus duty per part, plus the landing charges from port to plant, divided by the quantity a container holds. Hover any number and it shows its own formula and where each input came from.

On the first line, Halden's EUR 110.47 becomes 527.94 SAR landed, and Aolin's USD 112.96 becomes 554.92.

The comparison table: the landed-cost formula stated across the top, then a row per part with quantity, duty, previous cost and previous purchase order, and a price and landed column for each of the three suppliers, with the lowest landed figure on each row highlighted. Summary rows above show each supplier's average factor, total landed value and percentage against the previous purchase.

Step 9 of 19 · same screen

The cheapest quotation is not the cheapest purchase

Converted at the day's rates, Aolin's quotation is the lowest of the three: 3,126,660 SAR against Halden's 3,302,402 — cheaper by 175,742 SAR. Landed, Halden totals 3,896,835 and Aolin 4,095,925 — dearer by 199,090 SAR. Same quotations, opposite answer.

Worth being precise about what the screen shows and what it does not: the price column holds each supplier's own currency, so the reversal is not something you can see by eye, line by line. It is visible on the Total landed row. That is the argument for the screen existing — comparing quotations across currencies, incoterms, duty and freight is not a thing anyone eyeballs correctly.

Halden, landed
3,896,835
Aolin, landed
4,095,925
Sundar, landed
4,100,499
Ranking, ex-works
reversed

Step 10 of 19 · back to the quotes

The comparison is what the negotiation is made of

Going back to the suppliers with a landed-cost comparison is a different conversation from going back with a price list. Halden moves from 113.74 to 110.47 and Aolin from 115.78 to 112.96. Sundar does not move.

Editing a price that has already been saved asks two questions — why, and does this count as a saving — and keeps both answers. The original quotation stays put as the benchmark, which is the only reason the next step can produce a number anyone should believe.

Step 11 of 19

Two savings, and they are not the same thing

111,400 SAR, or 2.7%, against the original quotations: what the negotiation moved. 39,003 SAR, or 5.8%, against what Northgate paid last time, like for like: what the purchase actually saved the business. Procurement teams are asked for one number and usually mean the other, so the screen shows both and says which is which.

The award screen: four tiles reading awarded value 3,956,562 SAR, negotiation saving 111,400, saving versus previous 39,003 and premium versus lowest 59,727, above the first part's award split between two suppliers with quantities, landed prices, totals and a free-text reason on each row.
Awarded value
3,956,562
Negotiation saving
111,400
Versus previous
39,003
Premium vs lowest
59,727

Step 12 of 19 · same screen

The award, split, with the reasons attached

The first line goes 70/30. Halden takes 2,800 pieces at 527.94 landed — 1,478,221 SAR — against the reason “Lowest landed cost after negotiation”. Aolin takes 1,200 at 554.92 — 665,899 SAR — against “Split to protect continuity of supply”. Decided by A. Castellanos, finalised at 11:05 on 4 May.

That second source costs 59,727 SAR over awarding everything to the cheapest landed supplier, and the screen puts the number in a tile of its own rather than leaving it to be discovered. A trade-off that is hidden is the one a reader stops trusting the rest of the page over.

Step 13 of 19

The award becomes a commitment with a date on it

A schedule reference is built against the purchase order: HALDEN/SR-9001, PO 4512088, 2,800 pieces, committed to dispatch on 30 June 2026. That date is the one every later question is asked against.

It joins 59 other live commitments. 28 of them are due inside 30 days, carrying 9,444 pieces; one arrival is already overdue; 59 are still waiting on documents. None of that is anyone's memory.

The schedules screen: tiles reading 59 active entries, 1 overdue arrival, 28 arriving within 30 days covering 9,444 units, 59 documents to chase and 4,299 uncommitted pieces, above a list of 25 shipments in transit with their invoice, supplier, dispatch date, expected arrival and contents.

Step 14 of 19

Expediting, as a queue rather than a memory

Two follow-ups are overdue, two are due today, and eight open orders have never been chased at all. Each row carries the purchase order, the part, the supplier's own contact, how much is still open and what it is worth — and the last thing that supplier actually said, with the date and the person who logged it.

“Chased on the revised delivery date — no reply yet.” “Supplier confirms production complete, awaiting inspection release.” “Partial shipment agreed: balance to follow on the next vessel.” Three months later, that is the difference between a claim and an argument.

The supplier follow-up queue: tiles reading 2 overdue, 2 due today, 8 needing a first follow-up, 1 tomorrow and 46 upcoming, above rows showing priority, next follow-up date, purchase order and item, supplier contact, open quantity and value, and the text of the last follow-up with its date and author.

Step 15 of 19

The date moves. The liability does not.

Halden's own coil supplier is short, and the confirmed dispatch date moves. Recording that is not just editing a date: the revision is classified as a supplier delay, a buyer hold, or force majeure, and that choice is what decides who carries the cost.

This one is a supplier delay, with the reason recorded — coil shortage at the sub-supplier, revised date confirmed in writing. So the committed dispatch date moves to keep the plan honest, and the penalty basis date stays on 30 June. Every later calculation measures from the original promise.

Step 16 of 19

Dispatched, against the commitment it settles

Invoice HAL-2026-4471, dispatched and invoiced on 28 July 2026, 2,800 pieces of NG-BUS-1795. The invoice is entered once and allocated against the commitments it settles — one shipment can carry several parts against several schedule references — and the app works out the consequence: 28 days late.

One dispatch record: invoice HAL-2026-4471 from Halden Elektrik, marked received, dispatched and invoiced 28 July 2026, with a line showing 2,800 pieces of copper busbar settling against the 28 July commitment and flagged 28 days late.

Step 17 of 19 · same record

Received — which is what finalises it

Marking the shipment received closes the line. Until that happens the delay is still running: an undispatched commitment accrues against today's date, and the amount grows daily. The receipt is what turns a moving number into a final one.

Step 18 of 19

The clause most companies track by hand

Nearly every supply contract has a liquidated damages clause, and nearly every team tracks it in a spreadsheet — late, partially, or not at all. Not because it is hard arithmetic, but because the four numbers it needs live in four different places: what was committed and when, what actually shipped and when, how much of it, and at what price.

Here they are already in one system, so the clause is entered once — 0.75% of the value per week, seven days' grace, capped at 3% — and it calculates itself, per part, per schedule reference, in the purchase order's own currency.

2,800 × 527.94 = 1,478,232 SAR of delayed goods. 28 days late, less 7 days' grace, is 21 net days; 0.75% × 21/7 is 2.25% — under the 3% cap, so the proration is doing real work. 33,260.22 SAR.

The delay penalty screen: a card for Halden Elektrik showing 33,260.22 SAR across one late line, and a row giving the schedule reference, supplier, country, part, purchase order, quantity, the original dispatch commitment of 30 June, the actual dispatch of 28 July marked final, 28 days late, 21 net days and the unit price.

It comes out as a document, not a screenshot: the supplier, the schedule reference, the purchase order, the arithmetic line by line, and the terms it was calculated under, ready to print or to send.

The printable delay penalty statement: the supplier's name and country, the total penalty due of 33,260.22 SAR across one late line, a table giving the part, purchase order, delayed quantity, committed and actual dispatch dates, days late, grace, net days, unit price, value of delayed goods, penalty percentage and amount, and the penalty terms written out underneath.
Value delayed
1,478,232
Days late
28
Net of grace
21
Damages due
33,260.22

Step 19 of 19

The same work, added up

Eighteen steps for one requirement. The nineteenth is what happens when a year of them accumulates: the same records, read as a whole, with nobody rekeying anything to produce them.

On the logistics side, 29 delivery trips costing 51,428 SAR over 8,817 kilometres with two carriers — and, from those trips alone, what a kilometre actually costs on each vehicle type and at each trip length. That is a rate benchmark built out of the company's own freight invoices rather than a number a forwarder quoted.

Logistics analytics: tiles reading 29 dispatches, 51,428 SAR of delivery cost, 8,817 kilometres and two carriers, above freight rate benchmarks per vehicle type showing riyals per kilometre with the trip count and range behind each, and a rate matrix of cost per kilometre by vehicle against distance band.

On the sales side, the other end of the same stock: 1,578,380 SAR of open pipeline across six sent quotations, weighted to 947,028 by confidence, a 43% win rate and 608,551 SAR already won — broken down by region, by salesperson and by expected month.

Sales analytics: tiles for open pipeline value, confidence-weighted value, win rate and average deal, with bar charts of open value by region and by salesperson, won value, a line chart of open value by expected month, and a quotation funnel by status.

That was one line of one purchase order.

Nineteen steps, one reference, and every figure on this page produced by the software from the same example dataset — so the arithmetic survives being checked, which is the only kind worth showing.

See what else it covers