Sample output from the Vendor Fill Rate and OTIF Risk Analyzer prompt in the NetSuite AI Prompt Library, run against a NetSuite test account. Every name and number here is test data. Back to the post · The library

Supply chain performance · NetSuite TD3016323

Vendor Fill Rate and OTIF Analysis

Fill rate, on-time delivery, and on-time-in-full performance by vendor over the trailing twelve months, with the receiving gaps that explain every miss.

Prepared 2026-09-23 · Scope: purchase orders dated after 2025-09-23 with a due date on or before 2026-09-23 · Source: NetSuite via SuiteQL · Prompt: Vendor Fill Rate and OTIF Risk Analyzer, NetSuite AI Prompt Library v1 · Standard Review depth

Executive Summary

Inbound supply performed well over the trailing twelve months. Of 382 purchase orders that came due, 377 were received in full and 355 on or before their due date, for an OTIF of 92.9% against a 95% target. Unit fill rate is 100.0%: 20,446 of 20,452 units ordered were received. The three largest vendors by order value, Bedline, Broyhill, and The Apparel Co, together account for $835,000 of orders and delivered every one of their 182 purchase orders complete and on time.

Every OTIF failure in the window is the same failure: a purchase order with no item receipt. 27 orders have none. For two vendors, Core4Solutions and Johnson Supply, no order in the window has a receipt, which pulls their OTIF to zero. Both are marked fully billed, which points to receiving through the vendor bill rather than an item receipt. That is a process gap in how receipts are recorded, not evidence of late delivery, and it means the account cannot measure those vendors at all. Fixing the receiving practice is the first recommendation, ahead of any vendor conversation.

OTIF
92.9%
355 of 382 POs, target 95%
In full
98.7%
unit fill 100.0%
On time
92.9%
receipt on or before PO due date
POs without a receipt
27
the only failure mode found
Read the on-time figure with care. In this account every purchase order carries a due date three days after the order date, and receipts are dated on the order date itself. Average delivery is therefore "three days early" for every vendor, and lead time computes to zero. The on-time metric is real but not discriminating here; the informative metrics are the receipt gaps and the in-full rate.

OTIF Scorecard

Calculated as: OTIF = share of purchase orders that were both received in full (received units at or above ordered units on every line) and received on or before the PO due date. Fill rate = units received / units ordered. Scope: purchase orders dated in the trailing twelve months with a due date on or before 2026-09-23, so that every order had the chance to arrive.

VendorPOsUnit fillOn timeOTIFTargetGapNo receiptBills, 12 moRating
Bedline35100.0%100.0%100.0%95%+5.0 pts0$363,960Excellent
Broyhill38100.0%100.0%100.0%95%+5.0 pts0$249,378Excellent
The Apparel Co Inc.109100.0%100.0%100.0%95%+5.0 pts0$224,757Excellent
Generation N4499.8%93.2%93.2%95%-1.8 pts3$579,187Excellent
Lotion Co38100.0%97.4%97.4%95%+2.4 pts1$53,885Excellent
Mac Oca & Co.41100.0%100.0%100.0%95%+5.0 pts0$46,956Excellent
Health and Beauty Supplies29100.0%93.1%93.1%95%-1.9 pts2$18,457Excellent
Hestra6100.0%100.0%100.0%95%+5.0 pts0$8,430Excellent
Core4Solutions9100.0%0.0%0.0%95%-95.0 pts9$8,287Critical
Betty Black, Inc.15100.0%86.7%86.7%95%-8.3 pts2$7,657Good
Johnson Supply7100.0%0.0%0.0%95%-95.0 pts7$24,799Critical
Coleman3100.0%100.0%100.0%95%+5.0 pts0$2,316Excellent
Crown Equipment Corporation10.0%0.0%0.0%95%-95.0 pts1$29,034Critical
Flexsteel6100.0%83.3%83.3%95%-11.7 pts1$4,110Needs improvement
China Manufacturer10.0%0.0%0.0%95%-95.0 pts1$750Critical
Core4Solutions0%Johnson Supply0%Crown Equipment Corporation0%China Manufacturer0%Flexsteel83%Betty Black, Inc.87%Health and Beauty Supplies93%Generation N93%Lotion Co97%Bedline100%Broyhill100%The Apparel Co Inc.100%Mac Oca & Co.100%Hestra100%Coleman100%

Component Analysis

Fill rate

Fill is effectively complete. Across 7,721 order lines in the 24-month population, only two lines in scope show fewer units received than ordered, both on orders that are still open. There are no partial receipts followed by backorders, which means the "first-time fill" and "in-full" measures coincide. The one vendor below 99% unit fill, Generation N at 99.8%, is there because three of its 44 orders have no receipt yet.

On-time delivery

Every receipt in the window is on or before its due date. The on-time rate is therefore identical to the share of orders with any receipt. On-time failures by vendor: Generation N 3, Health and Beauty Supplies 2, Betty Black 2, Lotion Co 1, Flexsteel 1, Crown Equipment 1, China Manufacturer 1, and all 16 orders for Core4Solutions and Johnson Supply.

Where the order value sits

Order value is concentrated with the vendors performing best. Blue bars are vendors at or above 93% OTIF; red are the two at zero.

Bedline$363,960Broyhill$249,378The Apparel Co Inc.$224,757Generation N$579,187Lotion Co$53,885Mac Oca & Co.$46,956Health and Beauty Supplies$18,457Hestra$8,430Core4Solutions$8,287Betty Black, Inc.$7,657

Trend Analysis

Based on: purchase orders grouped by order-date quarter, same scope as the scorecard. OTIF held between 95% and 100% for three quarters and fell to 84% in the third quarter of 2026 on 126 orders. The drop is entirely the receipt gaps: fourteen orders in the quarter are still pending receipt, and the two unreceipted vendors placed most of their orders in this quarter. If those orders are received in the next weeks the quarter will recover; if they are billed without receipts, the gap becomes permanent in the data.

60%70%80%90%100%25-Q426-Q126-Q226-Q3OTIFIn full
QuarterPOsIn fullOn timeOTIF
2025-Q479100%95%95%
2026-Q154100%100%100%
2026-Q2123100%98%98%
2026-Q312696%84%84%

Risk Flags

Risk levelVendorsOrder valueAction required
Critical (OTIF < 75%)4$62,870Immediate review: all four are receiving-record gaps, see Risk Flags
Needs improvement (75-85%)1$4,110Performance plan
Good or excellent (> 85%)10$1,554,983Monitor

30 / 60 / 90 day framing

Appendix: Data Lineage

IDTypeNameHandleScopeUsed forComplete
DL-001SuiteQLPO linestransaction (PurchOrd) join transactionline24 months, 740 POs, 7,721 linesOrdered vs received units and valueYes
DL-002SuiteQLItem receiptstransaction (ItemRcpt) join transactionline, createdfrom24 months, 7,967 linesReceipt datesYes
DL-003SuiteQLVendors and billsvendor join transaction (VendBill)Trailing 12 monthsNames, billed spendYes

Adaptations from the prompt's templates: receipts link to purchase orders through transactionline.createdfrom on the receipt lines, not a header field; received quantity comes from transactionline.quantityshiprecv on the PO line; transaction.subsidiary is not exposed to SuiteQL, so no subsidiary filter was applied. The prompt's on-time template counts receipts; this analysis counts purchase orders, so that an order with several receipts is one observation.

Queries
SELECT po.id, po.tranid, po.entity, po.trandate, po.duedate, BUILTIN.DF(po.status),
       tl.id, tl.item, tl.itemtype, ABS(tl.quantity), NVL(tl.quantityshiprecv, 0), ABS(tl.rate), ABS(NVL(tl.foreignamount, tl.netamount)), tl.expectedreceiptdate, tl.isclosed
FROM transaction po JOIN transactionline tl ON tl.transaction = po.id
WHERE po.type = 'PurchOrd' AND tl.mainline = 'F' AND tl.taxline = 'F' AND tl.itemtype IN ('InvtPart','NonInvtPart','Assembly')
  AND po.trandate >= ADD_MONTHS(SYSDATE, -24)

SELECT r.id, r.tranid, r.trandate, tl.createdfrom AS po_id, tl.item, ABS(tl.quantity)
FROM transaction r JOIN transactionline tl ON tl.transaction = r.id
WHERE r.type = 'ItemRcpt' AND tl.mainline = 'F' AND tl.taxline = 'F' AND tl.itemtype IN ('InvtPart','NonInvtPart','Assembly')
  AND r.trandate >= ADD_MONTHS(SYSDATE, -24)

SELECT v.id, v.companyname, COUNT(t.id), SUM(t.foreigntotal)
FROM vendor v LEFT JOIN transaction t ON t.entity = v.id AND t.type = 'VendBill' AND t.posting = 'T' AND t.trandate >= ADD_MONTHS(SYSDATE, -12)
GROUP BY v.id, v.companyname

Appendix: Assumptions and Verification

AssumptionCategoryRationaleSensitivityImpact if wrong
On time = last receipt on or before PO due dateBusiness logicPrompt definitionLow here (see call-out)On-time rate
In full = received units at or above ordered units on every lineBusiness logicStrict definitionLowIn-full rate
Orders due after 2026-09-23 excludedMethodThey could not yet have failedMediumScope of 382 orders
Bills, not orders, represent spendMethodBills are the posted costLowSpend column only
TestObjectiveResult
G1-001PO-receipt linkagePass every receipt line links to a PO in the population
G1-002Date fields populatedPass due date on 705 of 740 POs; the 35 without are unapproved or pending and out of scope
G1-003Quantities non-negativePass absolute values used; no negative ordered quantities
G2-001Fill rate arithmeticPass 20,446 / 20,452 = 99.97%
G2-002OTIF = on-time and in-full per orderPass 355 orders satisfy both; equals the on-time count because every received order was complete

Confidence: 90% in the vendor OTIF figures as measures of what the account recorded; 60% that they reflect physical delivery performance, because the due-date convention and the bill-first receiving pattern both limit what the data can say.

Analysis is read-only and derived from live SuiteQL. Customer- and vendor-specific actions require human review before any account change.SuiteStep, LLC