SyteLine customer on-time shipments: which dates to compare and how to report OTD
syteline customer on time shipments
Also searched as
- syteline on time delivery report
- how to measure on time delivery in syteline
- syteline OTD sql query
Short answer
On-time shipment in SyteLine is the actual ship date on the shipment record compared with a target date on the order line, either the customer due date or your promise date. Decide which target you are measured against, then count lines shipped on or before it. A SQL query against the shipment and order line tables gives you OTD percent by customer, product or month.
Applies to: Infor SyteLine 8.x / CloudSuite Industrial, on-prem SQL Server. Table and column names should be confirmed in your version.
Measure on-time shipments in SyteLine
- 1Agree the definition first: on or before customer due date, on or before promise date, or within a window (for example 0 days early to 0 days late).
- 2Confirm that ship confirmation is posted through Customer Order Shipping, so a ship date is written for every shipment.
- 3Identify the order line fields for the due date and promise date (coitem), and the shipment records (co_ship) for the actual ship date and quantity.
- 4Decide the unit: order lines, order releases, or quantity. Many customers score by line.
- 5Run the SQL query below in a read-only copy or reporting database, filtered by Site and date range.
- 6Group by customer (cust_num), item, or month to find the drivers of late shipments.
- 7Compare the result against the customer's own scorecard, which may use a different date or tolerance.
- 8Save the query as a SQL view or a report in your reporting tool so the number is repeatable.
Which dates exist and which one counts
Each customer order line in SyteLine carries a due date (what the customer asked for) and often a promise date (what you committed to). The shipment record carries the date the goods were actually shipped. On-time delivery against due date measures how well you met the customer's request; against promise date it measures how well you kept your own commitment. Report both if you can, because a gap between them shows how much slack your promising process adds.
A third date, the date the customer received the goods, is not in the ERP unless you capture proof of delivery. If a customer scores on receipt date, ship date plus a standard transit time is only an estimate. Say so in the report instead of presenting it as fact.
Partial shipments are the usual source of disagreement. Decide whether a line is on time when the first piece ships, when the full quantity has shipped, or by quantity-weighted share. Write the rule down and apply it consistently.
A starting SQL query for OTD percent
The query below scores each shipment row against the line due date and rolls up by customer and month. It assumes the standard shipment table co_ship joined to coitem and co. Column names can differ by release and by customisation, so check them with a quick SELECT TOP 10 before relying on the output. Run it against a reporting copy, not production during peak hours.
To score against the promise date, replace due_date with promise_date and handle NULL promise dates explicitly, for example with ISNULL(promise_date, due_date). To score full-line completion rather than each shipment, aggregate to the last ship date per line first.
SELECT c.cust_num,
FORMAT(s.ship_date, 'yyyy-MM') AS ship_month,
COUNT(*) AS shipments,
SUM(CASE WHEN CAST(s.ship_date AS date) <= CAST(i.due_date AS date) THEN 1 ELSE 0 END) AS on_time,
100.0 * SUM(CASE WHEN CAST(s.ship_date AS date) <= CAST(i.due_date AS date) THEN 1 ELSE 0 END) / COUNT(*) AS otd_pct
FROM co_ship s
JOIN coitem i ON i.co_num = s.co_num AND i.co_line = s.co_line AND i.co_release = s.co_release
JOIN co c ON c.co_num = s.co_num
WHERE s.ship_date >= '2026-01-01'
GROUP BY c.cust_num, FORMAT(s.ship_date, 'yyyy-MM')
ORDER BY ship_month, otd_pct;Standard reports and where they fall short
SyteLine ships with order and shipping reports (for example back order and shipping status style reports) that show open lines past due. Those are useful for managing today's late orders, but they look at open demand, not at the history of what shipped on time. For a historical OTD metric you normally need the SQL approach above, a reporting tool such as SQL Server Reporting Services or Power BI, or an Infor reporting product your site already licenses.
Check the data before trusting any trend. Due dates edited after the fact, orders re-promised many times, and lines closed without shipment (cancelled or short closed) will all distort the number. Exclude cancelled lines, and decide how to treat customer-requested pushouts.
Try it here, free
On-Time Delivery Calculator
Enter shipped lines, on-time lines and in-full lines to get OTD, OTIF, late and early rates and the gap to your target.
Common pitfalls
- !Comparing ship date with order entry date or a planned date instead of the customer due or promise date.
- !Editing due dates after the order is late, which makes OTD look better than the customer experienced.
- !Counting a line as on time on the first partial shipment when the customer scores on full quantity.
- !Ignoring multi-site data: filter or group by site_ref so one plant's numbers are not mixed with another's.
- !Mixing time zones or datetime values with date-only values, which flips same-day shipments to late.
- !Using customised column names from memory without checking your own schema.
How an ERP-grounded AI assistant handles this
An AI assistant grounded in SyteLine can take the plain question 'what was our on-time shipment rate by customer last quarter, against promise date' and generate the read-only query, show it to you, and run it with your existing role permissions. That removes the dependency on someone remembering the table joins. Netray's ERPray and SyteRay work this way on SyteLine, including on-prem deployments where the model runs on your own hardware and no order data leaves your network.
Frequently asked questions
What is a good on-time delivery percentage in manufacturing?
It depends on the industry and the customer contract. Many manufacturers target the mid 90s percent against promise date, but aerospace and automotive customers often set their own thresholds and tolerances. Use your customer scorecard definition first, then your own internal target, rather than a generic benchmark.
Should I use due date or promise date in SyteLine?
Report both. Due date shows how well you meet what the customer asked for. Promise date shows whether you keep your commitments. The difference between them shows how much lead time you add when you promise a date.
Where is the ship date stored?
Shipment history is held on shipment records written when you confirm shipping, with the line-level ship date also reflected on the order line. Confirm the exact table and column names in your release by browsing the schema.
Can I do this without writing SQL?
You can run the delivered open-order and shipping reports for current lateness, but a history-based OTD metric usually needs a query, a custom report, or a reporting tool connected to the database.
Related
SyteLine Customer Order to Invoice: Step by Step
A SyteLine customer order flows from Order Entry through pick, pack, and Customer Shipment, then to invoicing, either through the Auto Invoice batch utility or manual Invoice Entry, posting revenue and relieving inventory once the shipment is confirmed.
How-toInfor VISUAL report builder: build a custom work order report
VISUAL reports are commonly built in Crystal Reports connected to the VISUAL SQL Server database, and then added to the application so users can run them. A work order report joins WORK_ORDER, OPERATION and optionally REQUIREMENT and PART, filters by work order, and formats it for the shop floor.
How-toInfor VISUAL query tool and shop resource maintenance
To query VISUAL data, use a read-only SQL login in SQL Server Management Studio or a reporting tool against the VISUAL database, or the in-application query and reporting options your build provides. Shop resources, the machines and work centers that operations are scheduled on, are maintained in the Shop Resource area and drive scheduling, load and costing.
Error fixFixing SyteLine's 'Object reference not set to an instance of an object' error
This is a generic .NET NullReferenceException surfacing through the SyteLine IDO Runtime, not a SyteLine-specific error code. It almost always means a form, script or IDO method referenced a field, row or object that came back null, usually after a customization, a missing related record, or a view/IDO method call before the form finished loading. Turn on detailed client logging and check the most recent customization or form event first.
Error fixDiagnosing and fixing SyteLine session timeout errors
SyteLine session timeouts come from one of three independent layers: the IDO Data Service session timeout on the app server, the IIS/application pool idle timeout for the web (Mongoose Web) client, or a load balancer/proxy idle timeout in front of a CloudSuite hosted environment. Fixing the wrong layer is the most common mistake - you need to identify which layer is actually expiring the session before changing anything.
Error fixResolving SyteLine multi-site replication conflict errors
A replication conflict in SyteLine's multi-site architecture means the same record (commonly an item, customer, or BOM) was changed independently at two sites between replication cycles, and the replication engine could not automatically merge the two versions. Check the replication conflict log first to see which record and which fields collided, then decide which site's version should win before resuming the queue.
AI for ERPAI for Infor SyteLine and CloudSuite Industrial
Add grounded AI to Infor SyteLine or CloudSuite Industrial: natural-language answers, agents over IDOs and ION, on-prem or CloudSuite deployment.
AI for ERPAn Air-Gapped Private LLM for SyteLine, Built for Defense Suppliers
Deploy a private LLM on an air-gapped network alongside Infor SyteLine for defense suppliers: no internet egress, ITAR and CMMC-aware architecture.
Stuck on Infor SyteLine (CloudSuite Industrial)?
Talk to engineers who work inside Infor SyteLine (CloudSuite Industrial) every week, and who build private AI that answers these questions from your own ERP data.
Keep exploring
Free tools
- On-Time Delivery CalculatorEnter shipped lines, on-time lines and in-full lines to get OTD, OTIF, late and early rates and the gap to your target.
- Aerospace Supplier OTD and Quality Rating CalculatorCompute on-time delivery, lot acceptance rate, defective PPM and a weighted supplier rating from your receiving data.
- Make to Order Promise Date and Lead Time CalculatorCompute the calendar days to promise a customer from material arrival, queue, setup, run hours at your efficiency, and ship time.
ERP fixes and how-tos
- How to Ship a Customer Order in SyteLine (Partial and Backorder)Ship customer order lines in SyteLine: picks, partial quantities, backorders, packing slips and what must be true before the invoice can be created.
- How to Build SQL Views for Custom SyteLine ReportingWhy custom SyteLine reports should read from purpose-built SQL views, not core tables directly, and how to build and place those views safely.
- SyteLine Customer Order to Invoice: Step by StepWalk a SyteLine customer order from entry through shipment to invoice: pick and pack, confirm the shipment, then run Auto Invoice or enter it manually.
Runs with your ERP
- UPS WorldShip and FedEx Ship Manager with Infor SyteLine: native parcel integrationHow the native Infor SyteLine integration passes Pick, Pack and Ship data to UPS WorldShip or FedEx Ship Manager and writes tracking and freight back.
- SyteLine Shipping and Logistics with Pacejet: pick, pack, ship and rate shopHow Single Source Systems' SyteLine Shipping and Logistics and Pacejet handle pick, pack, ship and parcel or LTL rate shopping for SyteLine manufacturers.
- RF Plus (Portable Intelligence) with Infor SyteLine: barcode receiving, production, counts and shippingHow Portable Intelligence RF Plus connects to Infor SyteLine for receiving, production tracking, counts and shipping, plus setup, pitfalls and an AI layer.
Guides
- A Practical Guide to SyteLine's Core SQL TablesA practical guide to the core SyteLine SQL tables, customer orders, lines, items, purchasing, jobs, their join paths, _mst conventions, and site_ref scoping for correct queries.
- Manufacturing KPI Setup and Tracking in SyteLineConfigure key manufacturing KPIs in Infor SyteLine. Track OEE, on-time delivery, inventory turns, and production efficiency using SyteLine ERP data sources.
- How to Configure Shipping Parameters in Infor SyteLineStep-by-step guide to configuring shipping parameters in Infor SyteLine. Set up ship via codes, freight terms, packing slip formats, and shipping integration.
AI on your ERP
- AI for Infor SyteLine and CloudSuite IndustrialAdd grounded AI to Infor SyteLine or CloudSuite Industrial: natural-language answers, agents over IDOs and ION, on-prem or CloudSuite deployment.
- On-Prem AI for CloudSuite Industrial, Without the Multi-Tenant Cloud MoveAdd generative AI to CloudSuite Industrial without moving to Infor's multi-tenant cloud. On-prem private LLM options for CSI, with governance and audit built in.
Integrations
- How to connect Power BI to Made2ManageConnect Power BI to Made2Manage: SQL Server views, the on-premises data gateway, shop-floor and finance dashboards, and adding natural-language questions.
- How to automate email in Infor SyteLineAutomate inbound purchase orders, RFQs and vendor confirmations from shared mailboxes into Infor SyteLine with review queues, IDO methods and audit trails.