Help Center

Commercial Agreements & Catalog

Last updated: 9/23/2026

Commercial Agreements & Catalog

The agreements catalog (menu Purchasing → Agreements) collects the currently valid negotiated prices you have with each supplier, so you can check them quickly before going out to request quotes again. Agreements can come from four places: an imported price list, a tender awarded to the catalog, an express quotation, or a manual entry.

Enabling it

This is an organization-level module. If you don't see "Agreements" in the menu, ask an admin of your organization to enable it from the account settings.

Importing a price list

  1. From the agreements list, choose Import list and upload an Excel or CSV file.
  2. The AI automatically proposes a column mapping (which column is code, description, price, currency, etc.). You can review and correct the mapping before continuing.
  3. A preview is shown with the valid rows ready to import and, separately, the rows with problems (missing price, duplicate code, etc.) so you can fix or discard them.
  4. You confirm the import specifying the supplier, validity period (from/to) and currency of the agreement. The agreement is created with all its items and becomes available in the catalog.

Catalog search

From the search tab you can ask "do I have a price for this?": search by item name or code and the system shows every valid agreement that covers it, marking which one is the best option (most convenient price) among the available suppliers.

Agreement detail

Opening a specific agreement shows its items (with search and pagination), the price history of each item (to see whether it went up or down over time), and the option to cancel it if it's no longer valid.

Expiration indicator

In the list, each agreement shows a color indicator based on its validity: active, about to expire, or expired, so you can tell at a glance which ones are worth renegotiating.

What happens when a PR matches the catalog?

If your organization has automatic purchase order generation enabled (in addition to the catalog itself), when a PR is created the system first checks whether any of its items already has a valid catalog price. For every supplier with covered items, a draft purchase order is generated without needing to request quotes again, and you'll get a notification about it.

That draft order is there for your review: open it from its own view, where you can also see which other supplier alternatives were available for the same item (price transparency), and issue it from there once you agree. If you'd rather not use it, you can revert the draft: the PR goes back to its previous status and you follow the normal quoting path instead.

If the PR has some items in the catalog and others that aren't, coverage is partial: the draft order is generated only for what's covered, and the rest of the items follow the normal supplier quoting process.

Express agreements

When you award a quotation, the system checks whether the supplier kept the same prices they had been using (for example, if their reply said something like "I'll hold these prices for 60 days") and proposes creating an express agreement with a single click — no need to manually import a list. Before confirming it you can edit the proposed validity period. The agreement becomes available in the catalog just like any other.

Revalidating expired prices

If an express agreement expires and you later create a PR with those same items, the system doesn't hold up that quotation: it asks the supplier whether they still hold that price in parallel to the normal quotation for that PR (same email, same reply you were already going to get). If the supplier confirms the price is unchanged, the catalog is extended automatically with a new validity period. If they quote a different price, the change isn't applied on its own — it's left pending your approval from the agreement detail page, where you can see the difference before deciding.

Agreement tender

When creating a tender you can choose its purpose: "standard" (a one-off purchase) or "agreement" (you're looking to lock in prices for the catalog). With the agreement purpose, each item also carries a material code and, if you have purchase history for that code, the system shows a suggested annual consumption (which you can adjust). You can also import the items from Excel instead of entering them one by one.

What the supplier sees

A supplier invited to an agreement tender can respond in three equivalent ways: download an Excel template with the items already pre-loaded and fill in their prices, upload their own price list (Excel or CSV) and let the AI match it against the requested items, or enter prices directly in the proposal grid. For both file-based options, before confirming they see a validation screen where they review which item each row was matched to (and can fix any the AI couldn't match with confidence) before submitting the proposal.

Consumption-weighted comparison

When the tender's items have annual consumption loaded, the comparison between suppliers doesn't just show price per item: it builds an annual basket (price × consumption for each item) and calculates, for each supplier, what percentage of items they cover and what percentage of total spend that coverage represents — useful for spotting the supplier who covers few items but high-consumption ones, or the other way around.

Awarding by item to the catalog

Awarding an agreement tender is done per item, not per whole supplier: for each item you choose which supplier to award it to (there can be several different winners within the same tender). No purchase orders are generated: each winning supplier gets a new agreement in the catalog (with the items awarded to them), with the validity period you set and, if applicable, a price adjustment clause for that period.

The catalog maintains itself

Before an agreement expires, the system checks every day whether it's worth preparing a renewal: if one is coming due, it automatically builds a draft agreement tender with the items and the real annual consumption for that period (taken from your purchase orders), with suggested suppliers based on history. You get a notification to review it — the tender stays in draft, nobody launches it for you: you publish it once you agree with the proposed items and suppliers.

If the agreement has an agreed adjustment clause (for example, "review every 6 months"), when that date arrives the system automatically writes to the supplier asking them to confirm or update their prices. The same happens proactively for express agreements before they expire: there's no need to wait for a new PR to ask the supplier whether they still hold the price.

Price control report

When the supplier replies with new prices (for example, attaching an updated list), the system builds a control report item by item: how much each price changed and, if you have a reference index configured (inflation or another one), whether that change exceeds it or stays within what's expected. Items flagged as "exceeds the index" are the ones worth reviewing more closely before approving.

Approval is done per item: you can accept all the changes, accept only some and leave the rest at the previous price, or reject the whole request. Approved items update the catalog with the new price and extend its validity; rejected or unselected items keep the price they already had. Either way, the supplier gets an email with the outcome of your decision.

Activity tray

Everything the catalog's automatic maintenance does (renewals prepared, update requests sent, supplier confirmations, reports ready, approvals and rejections) gets logged. From the general catalog you have an activity tab showing what's pending review across all your agreements, and from each specific agreement's detail page you'll find its own timeline with everything that happened to that particular agreement.

Where agreements come from, and how to move around the list

An agreement can have four sources, and the list shows and filters by them: Imported (you uploaded the supplier's price list), Tender (you awarded an agreement tender to the catalog), Express (when awarding a quotation the supplier said they hold those prices) and Manual entry (you created it by hand with New agreement).

Every agreement has a status: Draft, Active, Expiring soon, Expired or Cancelled. You can filter by status and by source, or search with “Search by agreement, code or supplier...”. The list has no pager: as you scroll down it loads the next agreements on its own.

There are three tabs at the top. Agreements is the list. Search catalog answers “do I have a price for this?”: search by exact code or by part of the description across all active agreements, and the Best option among the suppliers that cover that item is highlighted. Activity gathers what happened across all your agreements (price requests, supplier replies, reports ready, approvals and rejections); each agreement's detail also has its own timeline.

Approval of catalog purchase orders

If your organization uses purchase order approval, the order generated from the catalog is not left as a draft: it starts as pending approval and goes through the same chain as any other order. Only once it is approved does it go back to draft so you can issue it.

If the approval chain is not configured correctly, no catalog order is generated: the PR follows the regular quotation path and the organization's administrators get a notice to fix the configuration.

Expiry notice

An agreement shows as Expiring soon during the 30 days before its expiry date and as Expired once that date has passed. From then on its prices no longer apply to new requests. You can filter the list by these statuses.

When an imported, express or manually created agreement becomes Expiring soon, you get a notification and an email. If it is still valid, extend its expiry date or import the supplier's new price list: as soon as you extend it, the notice is armed again for the new expiry date. For agreements that came from a tender, the notice arrives earlier (90 days) together with the draft renewal tender.

Reply from an unrecognized email

A price update request is only processed if the reply comes from the supplier's email or one of its active contacts. If someone else replies from an email that isn't on file, the reply is not processed (for security), it is logged in the agreement's activity and you get a notice: add that email as a supplier contact and ask them to resend the price list.

Editing the agreement's items

From the detail of an active agreement you can edit each catalog item on its own. You can change the price, the lead time, the minimum order quantity, the description and the item's own validity. The code, the currency and the unit cannot be edited: to change them, deactivate the item and add a new one.

A price change takes effect immediately and requires a reason (mandatory, kept together with the previous price in the item's history). If the new price differs from the current one by more than 50%, you'll be asked to confirm the change before saving. If there are open catalog purchase orders (draft or pending approval) generated from this item, you'll see a warning listing them with a link: those orders stay at the previous price, they are not updated automatically.

Deactivating an item stops it from matching new purchases; it is not deleted (purchase orders already generated keep pointing to it) and you can reactivate it anytime, unless another active item in the agreement already has the same code. A deactivated item is also left out of the agreement's renewal tender. Adding an item requires a code that isn't already in use among the agreement's active items; the unit is optional (without a unit, the item matches purchases of any unit, and it can't be changed once created) and its own validity is also optional (without it, the item inherits the agreement's validity).

There are three situations where an item is locked for editing: if there is a pending price update request, no item in the agreement can be edited until it's resolved or cancelled; if an item is under revalidation with the supplier, only that item is locked; and if the agreement is cancelled, nothing can be edited.

Creating an agreement by hand

With New agreement you fill in the supplier, name, validity dates and default currency; the agreement starts as a draft and is not used in purchases until you activate it. While it's a draft you can load catalog items (add, edit, deactivate) without any of the restrictions that apply to an active agreement.

Activate requires at least one active item, a future expiry date and the supplier to be active in your organization. If you set a future start date, the agreement still becomes active right away, but it only starts matching purchases from that day on. Discard deletes the whole draft (it never generated any purchase order, so nothing is left behind).

Just like an imported agreement, when an agreement created by hand is 30 days away from expiring we notify you in the platform and by email, so you can extend its validity in time.

Agreement documents

From an agreement's detail you can attach the signed contract and other supporting files. The same types as material attachments are accepted (PDF, images, Word, Excel, CSV, plain text and ZIP), up to 20 MB per file, with a maximum of 10 active documents per agreement.

You can download any document (read-only users too) and remove one you no longer need: removing a document is a soft delete, it stops being available on the agreement but is not deleted.

Cancelling a pending price update request

While a price update request is pending (whether or not the supplier has replied yet), you can cancel it from the agreement's banner. The supplier gets no email: the request closes as if it had been rejected ahead of time, and it's logged in the agreement's activity.

If the request came from an adjustment clause, the next automatic request moves one period forward, same as if you had rejected it. If it came from an agreement that's expiring soon (express), no automatic request goes out again until you extend the agreement's expiry date. If the supplier replies anyway, after it was cancelled, that reply comes into the system as an unexpected reply.

Buying by agreement from Triage

Triage (ERP requisition) lines whose material code has an active agreement show a badge with the agreement, the supplier and the price; it turns amber when the agreement is expiring soon. When you launch the package as a spot purchase, the Use active agreements option comes checked: those lines are bought straight through the catalog instead of going to quotation. They're generated as catalog purchase orders (draft, or pending approval if your organization approves POs) within the same request, and the lines without an agreement still go to quotation as usual.

If every line in the package has an agreement there is nothing left to quote, so the request is closed right there: it stays Closed in the request history (AWARDED in the detail), just like any other award, with the notice “The purchase orders were automatically generated from the catalog - review and issue them”. If you were launching several packages in a row, the supplier selector tells you “This PR was purchased through an active agreement: the PO has already been generated, so there are no suppliers to choose” and moves on to the next one.

The order created from the catalog records as its buyer the user who launched the package, with the date it was generated: that's why the order shows its Award Information block (Awarded By and date), shows up when you filter the order history by that buyer, and its approval goes out in that person's name.

All of this works even if your organization has automatic catalog PO generation turned off; it only needs the agreements module enabled. The badge and launch option details are on the Triage page.

Who can see and who can edit

Approver and requestor have read-only access to Agreements: they can see the list, each agreement's detail, search the catalog, see the price history and the activity, and download the attached documents. They cannot edit items, create agreements or upload documents.

Buyer and organization admin have full edit access.

From a catalog purchase order's detail, and from its approval card, you'll see the link “Agreement AGR-xxxxx” that takes you straight to the agreement that order came from.

Agreement consumption: leakage and overcost

In each agreement's detail, the Consumption section shows what was bought of the agreement's materials during its validity, both through the agreement and outside it. Amounts are in USD.

  • Bought through the agreement: orders generated from the catalog.
  • Off-agreement purchases: what was spent on those materials without respecting the agreement.
  • Overcost: how much more was paid than the agreed price on those purchases.
  • Agreement is above market: what was bought cheaper from another supplier. It is a signal to renegotiate the price, not a buyer mistake.
  • % within the agreement: of the spend on materials with an active agreement, how much respected the agreement.

What counts as leakage: buying the material from another supplier, or from the agreement's supplier at a higher price than agreed. Buying from the same supplier at the agreed price or less counts as within the agreement, even if it didn't go through the catalog. Each purchase is compared with the agreement price valid on the purchase date, and if two agreements cover the same material the purchase is assigned to only one: the one Sourced would have picked when buying (the same rule Triage uses).

Which purchases are included: Sourced orders (draft, created, sent or confirmed; not those awaiting approval, rejected or cancelled) and orders entered directly in the ERP without going through Sourced.

Notes may appear below the totals: purchases in another unit of measure, purchases without a price or exchange rate, ERP purchases whose supplier isn't identified in Sourced, and purchases valued with an approximate exchange rate. They don't count as leakage, but they are shown so nothing is hidden.

The table with each off-agreement purchase (date, order, supplier, price paid vs agreed, type and Difference) is visible only to buyers and company admins; other users see the totals.