WhatsApp us

Blog7 min read29 Oct 2026

Purchasing agent: compare supplier quotes, flag price changes

A purchasing agent lines up supplier quotes by item code and flags price changes against your last order. Setup, matching rules, checks and what a buyer decides.

Purchasing agent: compare supplier quotes, flag price changes

By KYN AI Advisory Team — AI implementation specialists, Singapore

A purchasing agent reads supplier quotes, matches each line to your item catalogue, compares unit prices across suppliers, and flags any price that moved against your last order. It produces a side-by-side table for the buyer. It does not issue a purchase order. The hard part is not the comparison. It is matching "SS 304 plate 6mm" from one supplier to the same item from another, so build the item catalogue first.

What does a purchasing agent do?

Four jobs, in order.

  1. Read. Extract lines from a quote that arrives as a PDF, spreadsheet or email body: description, quantity, unit, unit price, currency, lead time, validity.
  2. Match. Map each line to an item code in your catalogue.
  3. Compare. Line up unit prices across suppliers and against the last price you paid.
  4. Flag. Mark price rises above your threshold, expired quotes, missing lead times and lines that did not match.

The buyer sees the table, picks the supplier and raises the order. That choice stays with a person because it weighs price against reliability, terms and relationships.

Why does item matching decide whether this works?

Suppliers describe the same item in different words, units and pack sizes. A comparison that matches on text will miss pairs or join the wrong ones. Use an item code.

  • Keep one catalogue with a code, a standard description and a base unit.
  • Store each supplier's names for the item as aliases against the code.
  • Convert units before comparing: price per kilogram, per piece, per metre.
  • When the agent meets a description it cannot match, it proposes a code and marks the line "unmatched". A person confirms, and the confirmed alias is saved for next time.

This is the same approach behind our work for a manufacturer, where 10,210 vendor quotes moved into one system and the item code runs through request for quotation, comparison and purchase order. Each confirmed match makes the next quote faster.

How do you flag price changes?

Define the rule in code and show it in the report.

| Check | Rule | Output | |---|---|---| | Price rise | Unit price above the last paid price by more than your threshold | Flag with old, new and difference | | Price drop | Below the last paid price by more than the threshold | Flag, since it may signal a spec change | | Currency | Quote currency differs from the last order | Convert at a stated rate and date | | Validity | Quote expires before the expected order date | Flag | | Lead time | Missing or longer than last time | Flag | | Outlier | One supplier is far from the others on the same item | Flag for review |

Set the threshold per item class. Commodity items move often and warrant a wider band. A fixed-price component that moves at all deserves a look. Write the numbers yourself. Do not borrow a threshold from a tool.

Show the difference as an amount and a percentage computed by the script. A model should never do the arithmetic.

How do you read quotes in different formats?

Quotes arrive as clean spreadsheets and as photographed PDFs.

  • Spreadsheets: parse columns by header, with a mapping per supplier.
  • Digital PDFs: extract text and tables, then parse.
  • Scans: run text recognition, and mark every line extracted this way as "needs check".

Use a model to read messy layouts, with a fixed output schema. Then validate in code: quantity times unit price must equal the line total, and the sum of lines must equal the quote total. A line that fails the arithmetic check goes to a person. This catches most extraction errors without anyone reading every number.

What should the buyer see?

One table per request, suppliers as columns.

  • Rows: items by code, with quantity.
  • Cells: unit price, line total, lead time.
  • Marks: lowest price per row, flags from the rules above.
  • Below: totals per supplier, quote validity, payment terms.

No score and no recommendation. A buyer picks the supplier. The agent saves the time spent re-keying numbers and the risk of a missed price rise.

How do you test it?

Take 20 past quote sets where the buyer already compared by hand.

  1. Run the agent on the same quotes.
  2. Check extraction: line count, quantities, prices, totals.
  3. Check matching: how many lines matched to the right code, how many were left unmatched, how many were matched wrongly. A wrong match is worse than an unmatched line, so tune toward leaving lines unmatched.
  4. Check flags: did it catch the price rises the buyer noticed, and the ones the buyer missed?

Keep the counts by failure type so you can see where to improve.

What are the limits and controls?

  • The agent has read access to quotes and the catalogue, and write access to the comparison table only.
  • It cannot place orders, email suppliers or edit prices in the ledger.
  • Supplier documents may carry text aimed at the model. Treat them as data. See prompt injection in business AI agents.
  • Every comparison is stored with the source file, so an auditor can trace a price.

What does a comparison look like with numbers?

The figures are illustrative. They show a request for three items from three suppliers.

| Item code | Qty | Supplier A | Supplier B | Supplier C | Last paid | |---|---|---|---|---|---| | PL-304-6 | 40 | 62.00 | 59.50 | 64.00 | 58.00 | | BT-M12-50 | 500 | 0.42 | 0.45 | unmatched | 0.40 | | FL-100-3 | 20 | 18.10 | 17.90 | 18.30 | 18.00 |

Prices are per unit in one currency. The agent marks PL-304-6 for Supplier B as lowest, flags that every quote is above the last paid price of 58.00, and shows the percentage difference calculated in code. BT-M12-50 from Supplier C is unmatched because the description did not map to a code, so the buyer sees the raw line and picks the code. FL-100-3 is within a few percent of the last price for all three suppliers, so no flag.

How do you handle quotes with extra costs?

Unit price is not the whole price. Capture the other terms in the same table.

  • Freight and handling. Add as separate lines or as a per-supplier total.
  • Minimum order quantity. Flag when the requested quantity is below it.
  • Payment terms. Record days and any early-payment discount.
  • Tax. Show whether prices include GST or a similar tax.
  • Validity. Record the expiry date and flag quotes that expire before the order date.

Compare landed cost (price plus freight and handling) as a second view. The cheapest unit price is not always the cheapest delivered price.

How do you keep the catalogue clean over time?

The catalogue decays unless someone owns it. Assign a named owner and a monthly routine.

  1. Review new aliases the agent proposed and confirm or reject them.
  2. Merge duplicate codes, keeping the old code as an alias.
  3. Retire codes with no activity in a year by marking them inactive, never by deleting them.
  4. Review the thresholds per item class.

Treat unmatched lines as a work queue. If the same description keeps appearing unmatched, the catalogue is missing an item.

Where KYN fits

KYN builds purchasing agents as part of the operations system, in a cloud account in your name. For a manufacturer we moved 10,210 vendor quotes and tied item codes through quote, comparison and order. Agents run on restricted accounts, every action is logged with the actor, and money and outbound messages wait for a named person. The first 14 days are a review of your stack and interviews with your team. A full build ships in under 90 days. See integrations.

Frequently asked questions

Does the agent negotiate with suppliers?

No. Negotiation involves margin, history and judgement. The agent shows the buyer where a price moved so the buyer can raise it.

What if we have no item catalogue yet?

Build one from past purchase orders and quotes. The agent can propose codes from history, and a person confirms them. Expect this to be the largest piece of work.

Can it work from supplier emails directly?

Yes, from a mailbox it can read. It extracts the quote and attaches the source email to the comparison. It does not reply.

Checked 30 October 2026.

Curious whether Marketing agents fits your business? Talk to KYN on WhatsApp — no forms, just a conversation.

Start Building →

Written 29 Oct 2026 · Checked 29 Oct 2026