Sign in

Blog · Procurement and supply chain · Procurement

Procure-to-pay analytics: delays and exceptions

Procure-to-pay analytics measures elapsed time and exceptions from approved orders through payment. Build a supplier and business-unit comparison from dated exports, with spreadsheet formulas and a reconciliation.

The short answerProcure-to-pay analytics compares the time and exceptions between an approved purchase order, goods receipt, invoice receipt and payment. Use linked transaction records to calculate each stage separately, then group completed cases by supplier and business unit. Keep open orders visible as an aging queue so a short completed-cycle average does not hide stalled work.

Procure to pay analytics measures where approved purchases wait between ordering, receiving, invoice handling and payment. Calculate the stages separately before comparing suppliers or business units. A single end-to-end average tells you how long the process took, but it cannot tell you which handoff needs attention.

Start with a case that can be followed to completion

For a US distributor, a case might be a purchase-order line with one final receipt and one final payment. Bring the order register, receiving log, invoice register and payment export. Preserve the order-line identifier across the files, and attach supplier and business unit from an agreed reference list.

This is a process-performance view. The purchase-order, invoice and paid-spend reconciliation owns the separate question of which document basis produces a spend total. For sourcing and contract stages before the approved order, use source-to-pay analytics.

Choose one approved-order cohort and a reporting cutoff. Keep completed cases in the cycle-time calculation and unfinished cases in an open queue. Publish both populations together, because excluding unfinished work without showing it can make a congested process look fast.

Define the clocks before calculating them

Use calendar days here, with the approval date excluded by ordinary date subtraction. The invoice timestamp is when accounts payable receives the invoice, rather than the date printed on it.

End-to-end days = Final payment date − Approved order date

Stage days = Later stage date − Earlier stage date

Case exception rate = Completed cases with an exception / Completed cases

The distinction between invoice receipt and acceptance matters. For federal purchasing, FAR 32.905 bases payment on a proper invoice and satisfactory contract performance and describes supporting receiving documentation. That is a federal process requirement, not a universal commercial payment deadline, but it illustrates why separate timestamps belong in the file.

Orders can legitimately receive invoices before goods arrive. Preserve that sequence and investigate what it means; do not silently replace negative stage intervals with zero. If those cases are common, show receipt and invoice processing as parallel clocks instead of presenting every interval as waiting time.

Build the comparison from four completed cases

These illustrative cases were approved and paid during January 2026. Columns A through H contain the source fields below; enter dates as spreadsheet dates. An exception flag of one means the case had at least one recorded exception, regardless of how many exception events occurred.

Case Supplier Unit Approved Received Invoice received Paid Exception flag
P1 Apex East January 1, 2026 January 3, 2026 January 4, 2026 January 14, 2026 0
P2 Apex East January 2, 2026 January 8, 2026 January 9, 2026 January 29, 2026 1
P3 Beacon West January 3, 2026 January 5, 2026 January 8, 2026 January 18, 2026 1
P4 Beacon West January 4, 2026 January 7, 2026 January 8, 2026 January 18, 2026 0

In I2, J2, K2 and L2 respectively, enter these formulas and fill down through row 5:

=E2-D2
=F2-E2
=G2-F2
=G2-D2
Case Approval to receipt days Receipt to invoice days Invoice to payment days Total days
P1 2 1 10 13
P2 6 1 20 27
P3 2 3 10 15
P4 3 1 10 14
Sum 13 6 50 69
Mean per case 3.25 1.50 12.50 17.25

Put a supplier name in N2. Calculate its completed-case count, average total days and exception rate with these formulas:

=COUNTIFS($B$2:$B$5,N2,$G$2:$G$5,">0")
=SUMIFS($L$2:$L$5,$B$2:$B$5,N2)/COUNTIFS($B$2:$B$5,N2,$G$2:$G$5,">0")
=SUMIFS($H$2:$H$5,$B$2:$B$5,N2)/COUNTIFS($B$2:$B$5,N2,$G$2:$G$5,">0")

SUMIFS adds matching values, while COUNTIFS counts rows meeting all criteria. These formulas use only the validated completed-case extract. Covirage is not affiliated with Microsoft.

Apex averages 20.00 days; Beacon averages 14.50 days. Each has one exception across two cases, or 50.0%. Because each supplier belongs to a different unit here, this example cannot separate supplier effects from unit effects. A larger comparison needs suppliers appearing across units or a clear qualification about the overlap.

Prove the total and keep open work visible

The stage sums must reconcile: 13 + 6 + 50 = 69 case-days. Dividing each sum by the same four cases gives 3.25 + 1.50 + 12.50 = 17.25 days. A spreadsheet check should return zero:

=SUM(I2:K5)-SUM(L2:L5)

Also compare the completed-case count with the source register and check that each case appears once. Report means to two decimals and percentages to one decimal, using unrounded values in calculations.

An additional order approved January 5, 2026 and still unpaid at the January 31, 2026 cutoff has an open age of 26 days. Show it in the unfinished queue rather than assigning it a payment duration of zero.

Where it goes wrong

  • Joining repeated documents. Multiple receipts and invoices can multiply an order's rows. Resolve the case boundary before counting durations.
  • Calling planned terms a delay. Read invoice-to-payment time beside payment terms compliance, rather than rewarding early payments automatically.
  • Counting events as cases. Multiple exception messages on one case should not inflate the case exception rate. Keep event totals separately; use duplicate invoice review for that specialist investigation.
  • Mixing clocks. Calendar-day and business-day intervals are different measures. Keep the definition consistent across suppliers and periods.

Compare your own procure-to-pay export in Covirage

Bring a sample of your own approved-order, receipt, invoice and payment files; Covirage maps the columns, and its tools compute and check stage times and exception comparisons. The external AI model explains the results with every figure traced to its rows. Create a free Covirage account, which takes about a minute, then set up your business and bring your files.

See Covirage for procurement teams for the supporting business context.

Questions people ask

Which dates should procure-to-pay analytics use?

Use the approved order date, the defined goods receipt date, the date accounts payable received the invoice and the final payment date. Record what each timestamp means. An invoice's printed date and the date it reaches accounts payable answer different questions.

Does a longer payment cycle mean accounts payable is slow?

Not necessarily. A longer invoice-to-payment interval can reflect agreed supplier terms, a dispute or an internal processing delay. Compare elapsed time with due dates and exception reasons before assigning responsibility or trying to shorten the interval.

How should partially received orders be measured?

Choose a consistent case boundary, such as an order line that is fully received and paid. Keep partial cases in a separate open queue. Do not combine the first receipt date on one order with the final receipt date on another without labeling the difference.