Every one of the 705 billed purchase orders on my NetSuite test account matches its bill total to the cent. Receipt lands on the order day, the bill the day after, and payment three days after that. The procure-to-pay flow, where a purchase order exists, has no bottleneck at all.

Which is why the report spends most of its length on the two places a purchase order doesn't exist, and on the one thing the account does too well. It pays early. 994 of 1,004 bill payments went out before the due date, a median of 28 days ahead of terms, and on roughly $1.7 million of annual bill volume that is about $130K of working capital permanently handed to vendors.

This is the Procure-to-Pay Object-Centric Process Mining prompt, the purchasing-side companion to the Order-to-Cash study, run on the same day against the same account. Both went into the Sonar AI Prompt Library in September. If you're new to this, Sonar AI is an AI agent that runs inside NetSuite. Every prompt in the library is a playbook that I engineered and tested against live NetSuite data, and you run it inside your own account, against your own records. Nothing leaves the account, and nothing is written to it.

The top of the Procure-to-Pay Object-Centric Process Mining sample report, with the executive summary tiles: 3,492 documents, 1,053 connected components, 98.4% conforming, and 705 of 705 PO-backed bills matching PO value to the cent.

Where the Structure Differs From Sales

The method is the same as the order-to-cash study: every document is an object, every link is an edge, and a case is a connected cluster. On the test account that meant 29,786 transaction lines streamed, 3,492 documents, 2,458 distinct edges, and 1,053 components. Unlike the sales side, though, the purchasing flow has some genuine many-to-one structure, and the report is careful to say where.

One payment settles seven bills. Nineteen purchase orders were billed from the receipt rather than from the order. And 312 bills have no purchase order at all, so they form a second population with its own reference model, bill then pay, instead of being forced into the four-step chain. The report runs two conformance checks, one per model, and the combined conforming share is 98.4%.

Then it does something the sales study can't: a three-way match at the purchase-order line level. It streamed 7,721 PO lines and classified each one by ordered, received, and billed quantity. 7,491 lines are fully received and fully billed. Zero are billed but not received, over-billed, over-received, or closed short. The only exposure is 207 lines on 19 purchase orders that were received in full and billed at zero, which is $29,706.97 of goods-received-not-invoiced that belongs in the period-end accrual. The oldest has been waiting 85 days.

Paying Early Is the Bottleneck

The bottleneck table has no bottleneck in it. Median wait on every purchase-order transition is zero or one day. So the report reframes what "waiting time" means on this account, and the interesting number turns out to be negative.

Payment is driven by bill arrival rather than by due date. 302 bills were paid the same day they were entered and 692 within a week, against terms that are Net 30 on 901 of them. The 99 payments that went out more than 30 days early are Net 30 bills paid on entry, which land at 31 or 32 days early depending on the month. Exactly one payment in the account fell on the due date.

Section 6 of the report, Bottlenecks and payment timing, with a transition table showing median waits of zero to three days, and a chart of 1,004 bill-to-payment pairs by days relative to due date, 895 of them 8 to 30 days early.

The report's working-capital estimate is shown as a formula, with the assumption visible: annual bill value times median early days divided by 365. It gives about $130K permanently ahead of terms. If an early-payment discount is being captured, then that's a choice. If it isn't, then it's float given away. And the six vendors behind the twice-monthly card-memo bills, 288 of them, are the place to ask.

The Bills With No Purchase Order

Non-PO bills are 312 of 1,017, but they carry $1,489,907.21, which is 43.8% of all bill value. Most of that is the recurring card-memo cadence from six vendors, which is at least a known pattern. The rest includes the two largest open payables in the account: Davidson Leasing at $120,000 and Cloud Consulting at $52,550, with no purchase order and no approval trail behind either. Non-PO bills are 99% of open payables.

And 999 of the 1,017 vendor bills have no document number. The vendor's invoice number wasn't captured for 98% of bills, which means that duplicate-invoice detection by reference is impossible on this account. That's listed under data quality rather than findings, but I think that it's one of the more consequential things in the report.

One Vendor Is the Sandbox

Generation N accounts for the only consolidated payment in the account, the only late payments, the only voided payment, all four vendor returns, both bill credits, the prepayment, seven of fourteen purchase orders pending receipt, and the longest case at 345 days. Seven of its bills sat 95 to 330 days past due and were all cleared in one $341,743.03 payment, net of a $89.97 credit, and the hand-check confirms that arithmetic to the cent. The voided payment was reversed and reissued the same day, which the report reads as the control working rather than a recovery due.

The report's reading is that whether this is a real supplier relationship in distress or the demonstration vendor for procurement scenarios, it warrants one consolidated review rather than eleven tickets. I think that it's the right instinct. A findings register that lists eleven separate items for one vendor is technically complete and practically useless.

What It Recommends

Three actions. Move the payment run to due dates, or confirm that a discount is being taken. Bring non-PO spend under control documents, starting with blanket POs or contracts for the six recurring vendors so their 288 bills match automatically, and clear the four bills in Pending Approval, one of which is 35 days past due. Book the accrual for the 19 received-not-billed purchase orders and correct the two whose lines show received quantity with no receipt document, which is a data-integrity item rather than a process step.

Every query is in Appendix A, verbatim, including the streamed line query with no ORDER BY and the reasons. The reducer logic is in Appendix B. The hand-check reconciles the funnel, the edges, the conformance buckets, and the consolidated payment. Nothing was altered.

Wrapping Up

The Vendor Bill Approval and Payment prompt in the same release picks up where this one leaves off. It takes the approval-and-payment tail of procure-to-pay and goes deeper on payment timing and discount windows, and on whether approval is even observable. If the early-payment finding here is the one that matters to you, then that's the next report to run.

Procure-to-Pay Object-Centric Process Mining is in the paid tier of the library. The full sample report from the test account is online, and I covered the whole September release in a separate post.

Purchasing on this account is one-to-one all the way down. The only place it consolidated anything was the one place it paid a year late.