---
name: contract-price-compliance
description: Checks supplier invoice and purchase-order prices against signed contracts, item masters, discount schedules, and indexation clauses, quantifying overcharges and credits with clause and line citations. Use for procurement price audits, supplier recovery reviews, and contract compliance checks.
license: Apache-2.0
metadata:
  adlass.categories: "operations/supplier-management"
  adlass.industries: ""
  adlass.tags: "supplier,contract,price,audit,invoice,variance,recovery"
  adlass.adaptation: "reference-doc"
  adlass.source: "original"
  adlass.version: "1"
---

# Contract price compliance

## Purpose

Determine whether billed or ordered unit prices follow the applicable supplier agreement. The result separates contractual price, permitted adjustments, billed price, and recoverable variance for each line.

## Scope

Review supplier contracts, amendments, price lists, purchase orders, goods receipts, invoices, item masters, discount terms, and indexation notices for the selected period.

**Excluded:** supplier communication, credit-note posting, renegotiation, and legal conclusions about contract enforceability.

## Data basis

- Signed supplier agreement and amendments with item, unit, currency, effective date, discount, freight, and indexation clauses.
- Purchase-order and invoice line tables with supplier, item code, quantity, unit price, tax flag, currency, and order date.
- Item master, goods-receipt quantities, approved price list, and prior compliance findings.

## Result

A line-level compliance sheet showing contract price, adjustment formula, billed price, variance, quantity impact, clause citation, and recovery status, accompanied by a supplier summary.

## Quality criteria

- Each tested line has an agreement version or a documented no-match result.
- Price calculations retain unit and extended amounts and use the contract currency.
- Quantity impact equals unit variance multiplied by the eligible quantity.
- Every exception cites the contract clause, invoice line, PO line, or price-list row.

## Instructions

Select the agreement effective on the purchase-order or invoice date, not merely the latest agreement. Match supplier and item codes deterministically before using descriptions. Apply discounts, rebates, freight, and indexation in the clause order stated in the contract. Compare like-for-like units and currencies. Treat a missing effective date, ambiguous unit conversion, or conflicting amendment as unresolved. Flag a recovery candidate only when billed price exceeds the supported contract price and the quantity basis is evidenced.

## Adapt before use

- Map supplier, item, unit, currency, quantity, and line identifiers across contract, PO, receipt, and invoice tables.
- Add signed agreements, amendments, price lists, and the permitted adjustment formula.
- Set the review period, rounding tolerance, and recovery-status vocabulary.

## Process detail

### Build the invoice-line population

Select supplier invoice and purchase-order lines in the review period and preserve invoice, PO, item, and line identifiers.

**Data basis:** Invoice lines, PO lines, supplier master, and run-period input.

**Result:** A counted line census with quantities, units, currencies, and billed unit prices.

**Acceptance criterion:** Line count and billed extended amount reconcile to the invoice population.

**Exception:** Mark lines without an item code or review date as unmatched rather than dropping them.

### Select the governing price source

Choose the contract version, amendment, or approved price list effective on each line date.

**Data basis:** Agreement effective dates, amendment precedence, supplier, item, and currency fields.

**Result:** One governing source and clause reference per tested line.

**Acceptance criterion:** Every matched line names the source document, version/date, and price clause.

**Exception:** Retain competing versions as a conflict when effective periods overlap.

### Calculate the supported unit price

Apply base price, discount, rebate, freight, unit conversion, and indexation in the documented contractual sequence.

**Data basis:** Contract price tables, adjustment clauses, item master units, and index notices.

**Result:** Expected unit price with formula components and rounding basis.

**Acceptance criterion:** Reperforming the formula produces the stored expected price within the configured rounding tolerance.

**Exception:** Leave expected price unresolved when a required index, unit conversion, or clause input is absent.

### Compare billed and expected amounts

Calculate unit variance, extended variance, and the effect of quantity received versus quantity ordered.

**Data basis:** Invoice price and quantity, expected price, PO quantity, goods receipt quantity, and tolerance rule.

**Result:** A price-compliance result per line with pass, overcharge, undercharge, or unresolved status.

**Acceptance criterion:** Extended variance equals (billed unit price minus expected unit price) times eligible quantity.

**Exception:** Do not call an overcharge recoverable when the received quantity or contract basis is disputed.

### Summarize supplier exposure

Aggregate variances by supplier, contract, currency, item family, and invoice and rank recovery candidates.

**Data basis:** Validated line results and supplier/item master attributes.

**Result:** Supplier summary and recovery candidate list with totals and top lines.

**Acceptance criterion:** Group totals equal the sum of line results and each candidate links to cited lines.

**Exception:** Keep currencies separate unless the supplied conversion rate and date are documented.

### Document what could not be assessed

List lines lacking an agreement, effective price, item match, unit conversion, currency rate, or reliable quantity.

**Data basis:** Unmatched-line register and price-calculation exceptions.

**Result:** Open-points section naming each blocked line and its reason.

**Acceptance criterion:** Every unassessed line appears once with invoice and line citation.

**Exception:** State the unresolved line count and value even when no broader issue is found.

