String
Running the operation

Cutoff Times and End of Day in ShipStation

Published

A cutoff is a promise. It is the sentence on your shipping page that says orders placed before some hour go out the same day, and it is the assumption behind every delivery date a customer sees at checkout.

ShipStation enforces one through four mechanisms — date-based holds, the Ship By Date, a Scheduled Ship Date on the label, and delayed customer notifications — with End of Day closing the day out to the carrier. Three of the four you configure once and leave alone. None of them is called cutoff, which is why they are hard to find.

What you can set

Hold an order until a date, or for a number of days. Two automation actions in the criteria and actions reference do this: Hold Until… places matched orders on hold until a specific date, and Hold the Order for… holds them a set number of days. Paired with a Ship By Date or Deliver by Date criterion, that expresses most of what a cutoff means operationally — this order does not need to go today, so keep it out of today’s queue.

Set the Ship By Date. Set Ship By Date writes the date onto the order, so a value your channel did not send can be derived from your own rules and then filtered and sorted on.

Set a Scheduled Ship Date at label creation. When you create labels in bulk, ShipStation opens the Label Batch Cost Review screen with a Scheduled Ship Date calendar. Set it and the labels carry a future ship date rather than today’s. This is the mechanism for printing tomorrow’s labels tonight, and for the orders that arrived after the cutoff and should carry tomorrow’s date even though you are printing them now.

Delay the customer’s shipment confirmation. Per store, under the Emails tab, the confirmation can wait for the first of: the shipment hitting the mail stream, a specific hour on the ship date, or a number of hours after the label was created. The full detail is below, and it is the setting that most directly determines whether your cutoff is visible to the customer as truthful.

Manifest the day with End of Day. Covered below, and the piece most often skipped.

Between them those cover the shape of a cutoff: what ships today, what waits, what the label says, when the customer is told, and when the carrier is informed.

The one you drive by hand

Orders arrive when ShipStation fetches them, and you do not control when that is.

ShipStation is direct about this. On automatic imports: “At this time, automatic imports cannot be scheduled or customized.” On store refresh: “The automatic store refresh feature currently uses an algorithm to determine the frequency of store updates. At this time, the auto-refresh feature cannot be set to run on a schedule or at specified intervals.”

Its own advice follows from that — ShipStation recommends importing manually and regularly so you are working with current orders.

This is a bigger deal than a refresh interval, because classic automation rules fire once, when an order first lands in Awaiting Shipment or On Hold. Everything downstream of import — service selection, tagging, holds, insurance — happens on ShipStation’s clock rather than yours. If your cutoff is 2pm and the fetch that would have brought in the 1:58pm order runs at 2:06, that order is on the wrong side of a line you drew.

The practical answer is unglamorous. Press the import button at the cutoff. It is the only way to make the boundary land where you said it would, and it takes a second.

Why the ship date is worth getting right

Getting the Scheduled Ship Date wrong is not cosmetic. The ship date is what the carrier and the customer both see, and a label dated today that goes out tomorrow starts a tracking clock a day early. Every downstream estimate is then a day optimistic, including any delivery date you showed at checkout.

The one people skip

End of Day is the manifest. ShipStation’s glossary defines it as the process that manifests the day’s shipments for a specific carrier, and notes that USPS calls these SCAN forms. Depending on the carrier and your account with them, it is either mandatory or optional, and it is submitted either electronically or as a printable PDF.

Whether your carriers support each form is in the feature table on each carrier’s help page, listed as End of Day (Electronic) and End of Day (PDF) separately.

The reason to care is not compliance. It is that End of Day is frequently the first tracking event.

ShipStation’s tracking documentation says a shipment shows an unknown status “until ShipStation receives the first tracking event update, usually on the first scan of the label or upon receipt of electronically submitted end of day forms,” and that a shipment is considered in transit “as soon as the carrier receives the label data, which can happen on its first scan at the carrier’s facility, or when the carrier receives the shipment data electronically.”

So skipping End of Day means a batch of parcels that the carrier does not know about until they are physically scanned. If the pickup driver scans everything, that resolves quickly. If they scan the manifest and not the parcels, which is the point of a manifest, it does not.

And there is a customer-visible consequence, covered below.

The mechanisms in sequence

Put together, an order that arrives at 1:58pm on a day with a 2pm cutoff has to survive three steps:

  1. An import that has to happen before you close the cutoff, which you should trigger rather than wait for.
  2. A ship date on the label that says today, which is the default and is correct in this case.
  3. An End of Day submission that tells the carrier the parcel exists, so that the tracking event fires and the customer’s notification fires with it.

Any of the three can silently fail and the outcome looks identical from the inside: the label printed, the parcel left, and the customer thinks nothing shipped.

Where the schedule trigger fits

Some accounts have the redesigned Automation Rules screen that groups rules into named workflows, each with a trigger. Alongside the default Orders imported trigger, I have confirmed Tag added, Tag removed and a schedule. This is not documented in ShipStation’s help centre and it appears to be rolling out gradually, so check your own settings rather than assuming.

A scheduled workflow is the closest thing to a cutoff that exists in the product. A rule that runs at a fixed time can act on whatever is sitting in Awaiting Shipment at that moment — tag it, hold it, move it to a different service — rather than acting on each order as it happens to arrive.

That changes the shape of the problem. Instead of trying to make each order’s import land on the right side of the line, you let them all arrive and then draw the line once, at the time you meant. It is a materially better answer where you have it. What it does not do is control the import itself, so an order that has not been fetched yet is not in the pool when the scheduled workflow runs.

The rest of what changes with workflow triggers is in how the rules engine actually behaves.

The customer half

Notifications are where the cutoff becomes visible outside your building.

By default ShipStation sends the shipment confirmation when you create the label. If you print tomorrow’s labels at 6pm, every one of those customers is told their order shipped at 6pm on a day it did not ship.

There is a fix, and it is the one setting in this article that is genuinely a cutoff control. In each store’s Emails settings you can delay the shipment confirmation until the first of several conditions is met:

You can select more than one and the first to occur wins.

Worth knowing about the mail stream option: ShipStation notes that for carriers submitting shipments electronically, this can fire before the carrier physically has the parcel. It is a data event, not a possession event. It is still closer to the truth than label creation.

Only the shipment confirmation can be delayed. ShipStation is explicit that delivery notifications cannot be, because those fire when the carrier reports delivery and there is nothing to schedule.

What to check

Three things, all quick.

Pick a day and compare the timestamp of your last import against your published cutoff. If the gap is more than a couple of minutes, you have orders on the wrong side of your own promise.

Pull last week’s labels and compare the ship date on each to the day it physically left. If you print ahead, some fraction will be a day out, and that fraction is the size of the problem.

Then look at your notification setting. If it is still on label creation and you print ahead, you are telling customers a shipping time you know to be wrong, which is the expectation problem rather than a shipping one.

What this does not fix

None of this makes you faster. A cutoff is a statement about capacity, and moving it later without changing anything else just moves where the queue forms.

What it does is make the cutoff true. That is worth doing on its own, because a cutoff you miss quietly is worse than a later one you keep — the customer priced the earlier promise into their decision, and the delivery date they were shown was calculated from it.

Whether this is happening in your operation

String builds and maintains logic like this inside existing ShipStation accounts — cartonization, rate selection, batching, inventory-aware holds, cold chain rules. No dashboard, nothing for your team to learn.

Typically for operations past 6,000 orders a month with a dedicated fulfillment team.

See which of the eight patterns are in your own data