Blog · Procurement and supply chain · Procurement
Measure the time from a submitted requisition to a purchase order sent to the supplier. Define the business-day convention, calculate approval and release delays, and reconcile a completed-order cohort with exact spreadsheet formulas.
The purchase order cycle time KPI measures how long a requisition takes to become a purchase order sent to a supplier. Divide the total cycle days of completed orders by their count, using one stated timing convention. Split the elapsed time into approval and release stages to find the part of the process that needs attention.
For this article, the clock starts when the requester submits a complete requisition into the approval process. It stops when the approved purchase order is dispatched to the supplier. A draft creation date is not the start, and a purchase order number being allocated is not proof of dispatch.
Keep the original submission date if a request returns for correction. Otherwise resubmission can erase elapsed time. If your company deliberately measures only time after a request becomes complete, preserve the earlier history and label the narrower definition clearly.
Use one row per purchase order, with its linked requisition identifier. If a requisition creates several orders, each order can be an observation, but label the measure as order-weighted. Do not repeat an order for every item line: a large order would then count more heavily simply because it contains more products.
This KPI is separate from after-the-fact purchase orders, which checks whether approvals occurred in the right sequence relative to invoices or receipts. A quick order can still violate that sequence.
Order cycle time = Business days after requisition submission through purchase order dispatch
Average order cycle time = Sum of eligible completed-order cycle days / Number of eligible completed orders
Total cycle time = Submission-to-approval time + Approval-to-dispatch time
Here, working days are Monday through Friday, excluding the company's listed holidays. Exclude the submission date and include the dispatch date if it is a working day. Same-day completion is zero days. Apply the same convention to each stage so the stage totals reconcile to the complete cycle.
The Microsoft NETWORKDAYS documentation describes counting working days while excluding weekends and specified holidays. Subtracting the working-day count for the start date removes that date when it is a working day. For a different weekend pattern, choose a suitable calendar function and document it consistently. Covirage is not affiliated with Microsoft.
Dates measure whole-day differences. They cannot distinguish morning from afternoon processing. If hours matter, retain timestamps, specify the timezone and working-hour policy, and report an hourly measure separately.
An illustrative US manufacturer reviews orders dispatched during September 2026. Include orders submitted before September if their dispatch falls in the month. Exclude canceled orders and report them separately. The dates below are all in 2026, and none of the intervals includes a company holiday.
| PO | Supplier | Submitted | Approved | Dispatched | Approval days | Release days | Total days |
|---|---|---|---|---|---|---|---|
| P101 | Lake | September 8 | September 9 | September 10 | 1 | 1 | 2 |
| P102 | Lake | September 8 | September 10 | September 11 | 2 | 1 | 3 |
| P103 | Lake | September 9 | September 14 | September 15 | 3 | 1 | 4 |
| P104 | Prairie | September 10 | September 11 | September 14 | 1 | 1 | 2 |
| P105 | Prairie | September 11 | September 17 | September 18 | 4 | 1 | 5 |
| P106 | Prairie | September 14 | September 15 | September 17 | 1 | 2 | 3 |
| Total | 12 | 7 | 19 |
P103 crosses a weekend. The approval interval counts September 10, 11, and 14, giving three business days. Dispatch adds September 15, giving four days overall. P104's Friday approval to Monday dispatch adds one business day.
Put the table headers in A1:H1, with actual date values in C:E and holiday dates in L2:L20. Use these Excel formulas, then fill down through row 7:
F2 = IF(OR(C2="",D2="",D2<C2),"Check",NETWORKDAYS(C2,D2,$L$2:$L$20)-NETWORKDAYS(C2,C2,$L$2:$L$20))
G2 = IF(OR(D2="",E2="",E2<D2),"Check",NETWORKDAYS(D2,E2,$L$2:$L$20)-NETWORKDAYS(D2,D2,$L$2:$L$20))
H2 = IF(COUNT(F2:G2)<>2,"Check",NETWORKDAYS(C2,E2,$L$2:$L$20)-NETWORKDAYS(C2,C2,$L$2:$L$20))
The checks flag missing dates and reversed stage dates. Validate that imported dates are genuine date values before calculating; text that merely looks like a date needs correction. Do not convert a missing dispatch date into today's date inside a completed-order measure.
The arithmetic must close at both levels. Each row's approval days plus release days equals its total. Across the cohort, 12 + 7 = 19 order-days. Average cycle time is 19 / 6 = 3.17 business days, rounded to two decimal places.
Average approval time is 12 / 6 = 2.00 days and average release time is 7 / 6 = 1.17 days. Keep full precision in the calculations and round only for display. The aggregate stage check is:
=SUM(F2:F7)+SUM(G2:G7)-SUM(H2:H7)
It must return zero. Confirm that every order in the eligible cohort has a numeric total before publishing the average; otherwise Excel can silently omit flagged rows. Show the exception count beside the valid count.
| Measure | Calculation | Result |
|---|---|---|
| Average cycle | 19 / 6 | 3.17 days |
| Median cycle | Middle values of 2, 2, 3, 3, 4, 5 | 3.00 days |
| Orders within the illustrative three-day target | 4 / 6 | 66.67% |
| Lake average | (2 + 3 + 4) / 3 | 3.00 days |
| Prairie average | (2 + 5 + 3) / 3 | 3.33 days |
Use =AVERAGE(H2:H7), =MEDIAN(H2:H7), and =COUNTIF(H2:H7,"<=3")/COUNT(H2:H7) after resolving exceptions. Microsoft's MEDIAN guidance explains that an even-sized group uses the average of its two middle values.
Both suppliers average 2.00 approval days. Prairie's longer cycle comes from release handling: 4 / 3 = 1.33 days, compared with Lake's 3 / 3 = 1.00 day. Approval remains the largest stage overall, but the supplier comparison points to release handling for investigation and does not establish a supplier cause. A category management report provides the purchasing context for that discussion.
Completed orders answer how long finished work took. Open requisitions answer how long unfinished work has already waited. Show open age as of a stated date, grouped by current approval stage, alongside the completed-order cohort. Avoid mixing open ages into the completed-order average.
A cycle time dashboard can organize that recurring review. The downstream booking-to-invoice cycle has different start and end events and should retain its own definition.
Bring a purchasing export with requisition, approval, and dispatch dates; Covirage maps the columns, and its tools compute and check the figures. 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 a sample of your own data.
See Covirage for procurement teams for the purchasing context.
Not under the requisition-to-dispatch definition used here. The clock stops when the purchase order is sent to the supplier. Delivery lead time starts from an agreed ordering event and ends at receipt, so it needs a separate measure and supporting timestamps.
Use the convention that matches the decision, and keep it consistent. Business days help compare internal processing across weekends and holidays. Calendar days show the full elapsed wait. Publish the start event, end event, holiday calendar, and treatment of same-day orders with either measure.
A useful target reflects your approval policy, purchasing categories, and service commitments. Compare like orders under the same timing rules. Routine catalog purchases and new supplier requests involve different work, so a company average alone cannot establish whether either process is performing well.