Sample output from the Order Fulfillment Performance Tracker 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

Operations analysis · NetSuite TD3016323

Order Fulfillment Performance

Fill rates, on-time shipment, backorders, and fulfillment cost over twelve months, with the three-month decline traced to one location.

Prepared 2026-09-23 · Scope: sales orders dated October 2025 to August 2026, fulfillments through September 2026, open lines account-wide · Source: NetSuite via SuiteQL · Prompt: Order Fulfillment Performance Tracker, NetSuite AI Prompt Library v1 · Standard Review depth

Executive Summary

Scope: Standard Review. Sales orders dated October 2025 through August 2026, 360 orders, so that every order in scope had at least three weeks to ship before the test date. Fulfillment documents linked to those orders through September 2026. Open order lines across the whole account for the backorder assessment.

For the year as a whole the numbers are good: 91.9% of orders shipped complete, 94.3% of shipped orders went out by their promised date, and the median order ships the day it is entered. For the last three months they are not. Complete-order rate fell from 100% in every month through May to 82% in June, 78% in July, and 70% in August, and on-time shipment fell to 75%. The deterioration has one address. All 20 late shipments in the period came from the Los Angeles Distribution Center, 18 of them exactly a month late, and the center's complete-order rate is 74% against 98% to 99% at the three stores.

Behind the shipped orders sits an open-line population of 222 lines on 73 orders, at least $121,041 of value, and 19 of those orders are already billed without having shipped. Shipping charges billed to customers rose from about $300 a month to $6,200 in August, in step with the delays.

Order fill rate
91.9%
331 of 360 complete
On-time shipment
94.3%
of 351 shipped; all 20 late from LA DC
August 2026 fill rate
70%
down from 100% through May
Open lines
222
$121,041 and rising
Read the days-to-ship figure with care. Fulfillments in this account are dated on the order date in the overwhelming majority of cases, so the median days to ship is zero and the 90th percentile is zero. The promised ship date is three days after the order on 365 of 418 orders. On-time performance is therefore trivially met unless an order waits a month, which is exactly what happened at the distribution center. The informative signals are completeness and the age of open lines, not the average lead time.

Fulfillment Performance Scorecard

MetricCurrent (12 months)Latest monthTargetGapTrend
Order fill rate (complete orders)91.9%69.8% (Aug 2026)95%-3.1 ptsfalling
Line fill rate90.7%95%-4.3 pts
Unit fill rate94.9%98%-3.1 pts
On-time shipment (of shipped orders)94.3%75.0% (Aug 2026)92%+2.3 ptsfalling
Perfect order rate (complete and on time)91.9%90%+1.9 pts
Median days to ship02flat

Calculated as: order fill rate = orders with every line shipped in full / orders; line fill = lines shipped in full / lines; unit fill = units shipped / units ordered; on-time = orders whose last fulfillment is dated on or before the order's promised ship date / orders with a fulfillment; perfect order = complete and on time / all orders (the prompt's definition also requires damage-free delivery and an accurate invoice, which the data cannot test). Targets are the prompt's "low materiality" boundaries.

Fill Rate Analysis

50%62%74%86%98%25/1025/1125/1226/0126/0226/0326/0426/0526/0626/0726/08Complete %On time % of shipped
MonthOrdersCompletePartialNo units shippedOn time, of shipped
2025-1029100%00100%
2025-1130100%00100%
2025-1229100%00100%
2026-0132100%00100%
2026-0231100%00100%
2026-0332100%00100%
2026-0431100%00100%
2026-0524100%00100%
2026-063482%5185%
2026-074578%6486%
2026-084370%7675%

Eight months of perfect fulfillment followed by three months of decline is not a capacity story, because order volume in June through August (34, 45, 43) is not far above the earlier months (24 to 32). It is a location story. The table below is the same population split by the fulfilling location.

LocationOrdersCompleteOn timeMedian days to ship
01: San Francisco Store12897.7%100.0%0
02: New York Store9899.0%100.0%0
03: Los Angeles Distribution Center8974.2%76.7%0
05: Miami4497.7%100.0%0
Unassigned10.0%0.0%n/a
01: San Francisco Store98%02: New York Store99%03: Los Angeles Distribution Cente74%05: Miami98%Unassigned0%

On-Time Delivery Analysis

20 shipped orders missed their promised date, every one from the Los Angeles Distribution Center, and every one ordered in June, July, or August. 18 of them shipped 30 or 31 days late against a 15-day promise, which means a batch of orders promised in mid-August was fulfilled in mid-September in one pass. Two shipped a day late. The lateness is not scattered; it is a queue that was cleared once.

OrderCustomerOrderedPromisedShippedDays lateValue
SO4285Meetz Industries2026-08-082026-08-232026-09-2331$1,653
SO4274Meetz Industries2026-06-082026-06-232026-07-2330$1,653
SO4271Godric Motors2026-06-032026-06-182026-07-1830$1,627
SO4282Godric Motors2026-08-032026-08-182026-09-1831$1,627
SO4275Design Excellence Ltd. Desig2026-07-022026-07-172026-08-1630$1,604
SO4278Hugo Limited2026-07-072026-07-222026-08-2130$1,604
SO4284Hugo Limited2026-08-052026-08-202026-09-2031$1,604
SO4280Blockster Inc. Blockster Inc2026-07-122026-07-272026-08-2630$1,601

Backorder Assessment

Open lines: 222 sales order lines where ordered quantity exceeds shipped, on 73 orders, 1,134 units. Value is at least $121,041; 116 of the lines carry no rate, so the true figure is higher. By order status: Pending Fulfillment 40, Billed 19, Pending Approval 13, Pending Billing/Partially Fulfilled 1.

0-30120 lines31-6040 lines61-9032 lines>9030 lines

Two of those groups need attention ahead of the others. Nineteen orders are billed but not shipped, which means customers have been invoiced for goods still in the warehouse; those are a customer service problem today and a revenue-cutoff problem at period end. And 30 lines are more than 90 days old, which under the prompt's definition are candidates for cancellation and lost-sales analysis rather than fulfillment. 31 lines belong to orders dated after the test date and are excluded from the aging.

OrderCustomerOrderedStatusOpen value
SO4322Magna Tech Limited Magna Tec9/11/2026Pending Approval$13,682
SO4150Davis Supplies Davis Supplie7/5/2026Pending Fulfillment$11,480
SO4312Blockster Inc. Blockster Inc9/11/2026Pending Fulfillment$10,580
SO4321Global Information9/10/2026Pending Approval$8,235
SO4308Bryan Scott9/23/2026Pending Fulfillment$7,495
SO430278 Josh Feil9/24/2026Pending Fulfillment$5,433
SO4175Jones Manufacturing9/22/2026Pending Approval$5,104
SO4309Design Excellence Ltd. Desig9/29/2026Pending Fulfillment$4,755

Four items account for 64 of the open lines, 16 each: INV_BLD100, INV_ELC001, INV_FRM100, and INV_HDW001. Four items ordered together in the same quantities on sixteen orders is a kit or a bill of materials being sold as components, and it is the first place to look for a stock-out.

Orders in scope with no shipment

OrderCustomerOrderedStatusValue
SO4150Davis Supplies Davis Supplie2026-07-05Pending Fulfillment$12,594
SO4161Hugo Limited2026-08-09Pending Fulfillment$4,314
SO4143Realpoint inc.2026-06-15Pending Fulfillment$3,952
SO3129Susan Adams2026-08-31Pending Fulfillment$1,085
SO4297Design Excellence Ltd. Desig2026-08-01Billed$356
SO4235Xandra Underwood2026-08-17Pending Fulfillment$350
SO4196Dan Coleman2026-08-18Pending Fulfillment$94
SO4193Cynthia Rose2026-08-19Pending Fulfillment$86
SO4181Brenda Scott2026-08-07Pending Fulfillment$59

Fulfillment Cost

The account does not expose a shipping cost on fulfillments to SuiteQL, so cost per order cannot be computed and is reported as a data gap. Shipping charged to customers on invoices is available and is shown below as a proxy for freight activity. It ran at $200 to $400 a month until May 2026 and then rose to $2,313 in June, $3,522 in July, and $6,167 in August, a twenty-fold increase over three months that coincides with the distribution center delays. Whether that is expedited freight to recover late orders or a change in what is billed for delivery is a question for operations.

2025-10$2572025-11$2602025-12$3312026-01$2782026-02$3962026-03$2782026-04$3522026-05$2122026-06$2,3132026-07$3,5222026-08$6,1672026-09$786

Root Cause Analysis and Recommendations

Failure categoryShare of failuresOrdersValueRoot cause, subject to human review
Operational delay at one location69%20$21,919Los Angeles DC queue cleared a month late in September
Unshipped orders in scope31%9$22,8908 pending fulfillment, median age 45 days; largest is $12,594 at LA DC since July 5
Billed without shipmentn/a19see open linesProcess: invoicing ahead of fulfillment
Probable stock-out familyn/a16 orderssee open linesFour components open on the same 16 orders

Appendix: Data Lineage

IDTypeNameHandleScopeUsed forComplete
DL-001SuiteQLSales order linestransaction (SalesOrd) join transactionlineOct 2025 to Sep 2026, 418 orders, 1,295 linesFill rates, promised dates, locationsYes
DL-002SuiteQLFulfillment linestransaction (ItemShip) join transactionline, createdfrom13 months, 429 fulfillments, 3,180 linesShip dates, on-timeYes
DL-003SuiteQLOpen order linestransactionline, quantity greater than shipped, not closedAll open, 222 linesBackordersYes, 116 lines lack a rate
DL-004SuiteQLShipping chargedtransactionline, itemtype = ShipItemTrailing 12 monthsFreight proxyYes, cost side unavailable

Adaptations from the prompt's templates: fulfillments link to orders through transactionline.createdfrom on the fulfillment lines, not a header field; shipped quantity is transactionline.quantityshiprecv on the order line; transaction.shippingcost is not exposed, so the cost query was replaced by shipping-item lines on invoices; transaction.subsidiary is not exposed, so no subsidiary filter was applied; the on-time test compares the order's last fulfillment date with the order's shipdate, which is the promised ship date in this account.

Queries
SELECT so.id, so.tranid, so.trandate, so.shipdate, BUILTIN.DF(so.status), so.entity, BUILTIN.DF(so.entity), so.foreigntotal,
       tl.id, tl.item, tl.itemtype, ABS(tl.quantity), NVL(tl.quantityshiprecv, 0), ABS(tl.rate), tl.isclosed, tl.location, BUILTIN.DF(tl.location), tl.expectedshipdate
FROM transaction so JOIN transactionline tl ON tl.transaction = so.id
WHERE so.type = 'SalesOrd' AND tl.mainline = 'F' AND tl.taxline = 'F' AND tl.itemtype IN ('InvtPart','NonInvtPart','Kit','Assembly')
  AND so.trandate >= ADD_MONTHS(SYSDATE, -12) AND so.trandate <= SYSDATE

SELECT f.id, f.tranid, f.trandate, f.createddate, BUILTIN.DF(f.status), tl.createdfrom, tl.item, ABS(tl.quantity), BUILTIN.DF(tl.location)
FROM transaction f JOIN transactionline tl ON tl.transaction = f.id
WHERE f.type = 'ItemShip' AND tl.mainline = 'F' AND tl.taxline = 'F' AND tl.itemtype IN ('InvtPart','NonInvtPart','Kit','Assembly') AND f.trandate >= ADD_MONTHS(SYSDATE, -13)

SELECT so.id, so.tranid, so.trandate, BUILTIN.DF(so.status), BUILTIN.DF(so.entity), tl.item, BUILTIN.DF(tl.item), ABS(tl.quantity), NVL(tl.quantityshiprecv, 0), ABS(tl.rate), tl.isclosed, tl.location
FROM transaction so JOIN transactionline tl ON tl.transaction = so.id
WHERE so.type = 'SalesOrd' AND tl.mainline = 'F' AND tl.taxline = 'F' AND tl.itemtype IN ('InvtPart','NonInvtPart','Kit','Assembly') AND tl.isclosed = 'F' AND ABS(tl.quantity) > NVL(tl.quantityshiprecv, 0)

SELECT TO_CHAR(t.trandate, 'YYYY-MM'), t.type, COUNT(DISTINCT t.id), SUM(ABS(NVL(tl.netamount, 0)))
FROM transaction t JOIN transactionline tl ON tl.transaction = t.id
WHERE tl.itemtype = 'ShipItem' AND t.type IN ('SalesOrd','CustInvc','CashSale') AND t.trandate >= ADD_MONTHS(SYSDATE, -12) AND t.trandate <= SYSDATE
GROUP BY TO_CHAR(t.trandate, 'YYYY-MM'), t.type

Appendix: Assumptions and Verification

AssumptionCategoryRationaleSensitivityImpact if wrong
On time = last fulfillment on or before the order's ship dateBusiness logicPrompt definition; ship date is the promise in this accountMediumOn-time rate
Complete = every line shipped in full; partial counts as not completeBusiness logicConservativeLowFill rate
Orders dated September 2026 excluded from fill and on-time ratesMethodToo recent to have failedMediumScope of 360 orders
Lines with no rate valued at zeroMethodNo price on 116 linesMediumBackorder value understated
Fulfilling location = location on most order linesMethodOrders are single-location in practiceLowLocation split
TestObjectiveResult
G1-001Order count validPass 418 orders in twelve months; 360 in scope; matches the transaction count by type
G1-002Ship date on or after order datePass no fulfillment predates its order
G1-003Fulfillment links validPass every fulfillment line carries an order id
G2-001Fill rate arithmeticPass computed in code; spot-checked on 5 orders
G2-002On-time arithmeticPass 331 on time plus 20 late equals 351 shipped

Confidence: 95% in the fill and on-time figures as measures of what the account recorded; 75% in the root-cause attribution to the Los Angeles DC as an operational delay rather than a data-entry pattern, since fulfillment dates in this account are set by convention; the stock-out family is a hypothesis for human review.

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