Blog · Procurement and supply chain · Procurement
Build a procurement KPI register that names each input, denominator, owner and approved target. This reusable layout includes purchasing rows, spreadsheet formulas and reconciliation checks for a monthly review.
A procurement KPI template connects each purchasing result to its inputs, formula, approved target and owner. Use it as a reusable calculation register, with separate sections for source rows and the review output. A status color is useful only after the population and arithmetic have been checked.
The layout below measures a US distributor's September 2026 purchasing activity. Its targets are illustrative internal approvals for this example, not suggested industry standards. Amount-based coverage measures use addressable AP invoice spend; purchase-order cycle time uses completed purchase orders.
| KPI ID | Measure | Source fields | Calculation | Approved target | Direction | Owner |
|---|---|---|---|---|---|---|
| CONTRACT | Contracted share | AP amount; category; supplier; contract scope and effective dates | Eligible spend covered by a valid contract / eligible spend | 75% | Higher is better | Category manager |
| PO | Approved-PO coverage | AP amount; PO reference; approval timestamp; purchase commitment date | Eligible spend supported by a timely approved PO / eligible spend | 90% | Higher is better | Purchasing manager |
| CYCLE | PO approval cycle | Request complete date; approval date; PO status | Total elapsed calendar days / completed POs | 5 calendar days | Lower is better | Purchasing operations |
Add reporting period, definition version, source filename, extraction date, target approver and data-quality status to the register. Give each rule an effective date so a later policy change does not silently rewrite earlier results.
The existing procurement KPI definitions cover a wider set of measures. This template focuses on how to hold the inputs and calculations together rather than introducing another competing list.
Use one row per invoice line, retain signed amounts and keep the stable source identifier. Bring supplier, category, entity and date fields in the working file even though the compact example below shows only the calculation columns. All amounts here are USD on the agreed purchasing basis.
The addressable flag follows the approved scope. The contract flag requires a matching supplier, covered category and applicable dates. The approved-PO flag requires evidence of approval before purchase commitment, not merely a PO number added after invoicing.
| A: Invoice line | B: Net spend (USD) | C: Addressable | D: Valid contract | E: Timely approved PO |
|---|---|---|---|---|
| I01 | 12,000 | Y | Y | Y |
| I02 | 8,000 | Y | N | Y |
| I03 | 10,000 | N | N | N |
| I04 | 6,000 | Y | Y | N |
| Total | 36,000 |
I03 is excluded by the approved purchasing scope. Its exclusion remains visible rather than being removed from the AP reconciliation. For this example, all required evidence is present and the Y/N decisions have been reviewed.
In a real export, use a separate unresolved status when a contract date or approval record is missing. An unresolved line should not be automatically relabeled N or dropped. Either resolve it before publication or label the affected KPI provisional and disclose its amount.
With the AP table in A1:E5 in Google Sheets, eligible spend is:
=SUMIFS(B2:B5,C2:C5,"Y")
That is $12,000 + $8,000 + $6,000 = $26,000. Google's SUMIFS documentation describes summing values that meet the specified criteria. Use the same eligibility criteria in each coverage denominator.
Calculate contracted share and timely approved-PO coverage:
=SUMIFS(B2:B5,C2:C5,"Y",D2:D5,"Y")/SUMIFS(B2:B5,C2:C5,"Y")
=SUMIFS(B2:B5,C2:C5,"Y",E2:E5,"Y")/SUMIFS(B2:B5,C2:C5,"Y")
Contract-covered eligible spend is $12,000 + $6,000 = $18,000. Contracted share is $18,000 / $26,000 = 69.23%. Timely approved-PO spend is $12,000 + $8,000 = $20,000, giving $20,000 / $26,000 = 76.92%.
Do not replace a zero denominator with a successful result. Check eligible spend first and show an explicit review status when there is no eligible population. Round displayed percentages to two decimal places while retaining full precision for target comparisons.
An invoice can refer to a PO with several lines, so calculating cycle time over joined invoice rows can give that PO extra weight. Use one row per completed PO instead. In this example, elapsed time means calendar days from a complete request to approval; open requests remain in a separate backlog review.
| A: PO | B: Request complete | C: Approved | D: Elapsed calendar days |
|---|---|---|---|
| P01 | September 1, 2026 | September 5, 2026 | 4 |
| P02 | September 2, 2026 | September 8, 2026 | 6 |
| P03 | September 3, 2026 | September 11, 2026 | 8 |
| P04 | September 4, 2026 | September 6, 2026 | 2 |
| Total | 20 |
In D2, enter =C2-B2 and fill down. The completed-PO average is:
=SUM(D2:D5)/COUNT(D2:D5)
The result is 20 / 4 = 5 calendar days. Check for missing approvals before treating requests as completed:
=COUNTIFS(A2:A5,"<>",C2:C5,"")
Google documents COUNTIFS as counting records meeting all supplied criteria. This check returns zero for the displayed completed population; also reject approval dates earlier than request completion dates.
| KPI | Numerator: spend (USD) or calendar days | Denominator: spend (USD) or POs | Actual | Target | Gap to target | Status | Direction |
|---|---|---|---|---|---|---|---|
| Contracted share | 18,000 | 26,000 | 69.23% | 75.00% | -5.77 percentage points | Review | Higher |
| Approved-PO coverage | 20,000 | 26,000 | 76.92% | 90.00% | -13.08 percentage points | Review | Higher |
| PO approval cycle | 20 | 4 | 5 days | 5 days | 0 days | Meets target | Lower |
Store actuals and targets as numbers, using percentage or day display formats rather than adding text to the values. For an actual in D2, target in E2 and direction in H2, the status formula in G2 is:
=IF(H2="Higher",IF(D2>=E2,"Meets target","Review"),IF(D2<=E2,"Meets target","Review"))
Validate direction values before applying this formula. Gate the output on data-quality checks so a failed reconciliation produces a review of the inputs before a performance judgment.
Keep the calculation register when you build a procurement dashboard. The existing KPI dashboard template illustrates a general presentation layout; it does not replace these purchasing definitions or supply a separate procurement workbook download.
The AP identity is $36,000 = $26,000 addressable + $10,000 excluded. Within addressable spend, contract coverage reconciles as $26,000 = $18,000 covered + $8,000 uncovered. Preserve these checks alongside the result, and make sure joins have not increased the number of invoice lines.
Covirage is not affiliated with Google.
Bring your AP lines, purchase-order export, contract file and approved KPI definitions. Covirage maps the columns, and its tools compute and check the purchasing comparisons; the external AI model explains the results with every figure traced to its rows. Create a free Covirage account, then set up your business and bring a sample of your own files.
See Covirage for procurement teams for the purchasing context.
Include a measure identifier, business definition, source export and fields, reporting period, eligibility rule, numerator, denominator, calculation, target, direction and owner. Add a data-quality status so missing contracts or incomplete approvals do not appear as confident performance results.
Have the accountable procurement and finance owners approve targets using the company's purchasing policy, baseline and operating requirements. Record the approval date and effective period. The example targets in this layout illustrate status calculations; they are not external benchmarks.
The calculation template defines and proves the numbers. A dashboard presents the approved results for review. Build the input rules and checks first so a dashboard cannot show a favorable status based on the wrong denominator or an incomplete source population.