What Is ServicePeriod in Shipping Schema?
ServicePeriod is a structured-data type that represents a shipping duration together with the business days and cutoff time that control how the duration is counted.
In merchant shipping policies, it can describe handling time for a ShippingService or transit time for a ShippingConditions rule. Its duration is a QuantitativeValue range. The surrounding calendar and cutoff keep a one-day duration from being misread as one calendar day under every order circumstance.
- Identify the exact page, asset, entity or relationship described in this section.
- Inspect the live implementation and retain the observed evidence.
- Compare the observation with the intended meaning and its primary specification.
- Correct any mismatch, then retest the live result.
- Record the accountable owner and review date.
| Property | Purpose | Example |
|---|---|---|
| duration | Minimum and maximum delay | 0–1 DAY |
| businessDays | Days that count | Monday–Friday |
| cutoffTime | Daily processing boundary | 14:30:00-07:00 |
| handlingTime | Warehouse period | ServicePeriod |
| transitTime | Carrier period | ServicePeriod |
- Use a defensible whole-day range.
- Define the operating calendar.
- Make cutoff time unambiguous.
Use the free backlink checker while reviewing linked product destinations.
Primary specification: Schema.org definition for ServicePeriod.
ServicePeriod is accurate when duration, business days, and cutoff reproduce the operational timing rule together.
Where Does ServicePeriod Belong?
ServicePeriod belongs in policy-level handlingTime on ShippingService and in transitTime on ShippingConditions, with each placement describing a different phase of fulfillment.
Handling is often shared by a warehouse or service, while transit varies by destination and shipping condition. Putting one handling period inside every route duplicates data; placing one transit period at service level can hide regional differences. The entity hierarchy should follow operational ownership.
- The exact page, asset, entity or relationship covered by this section
- The live implementation rather than an editor-only preview
- The primary specification or first-party record defining the expected behavior
- The validation result, accountable owner and review date
| Placement | Phase | Scope |
|---|---|---|
| ShippingService.handlingTime | Order receipt to dispatch | Service-wide processing |
| ShippingConditions.transitTime | Dispatch to delivery | Matched route and condition |
| OfferShippingDetails.deliveryTime | Offer-level total components | Product-specific implementation |
| Product root | None | Do not detach timing here |
- Map the Organization and ShippingService.
- Identify shared handling behavior.
- Split destination-specific conditions.
- Attach transit periods to those conditions.
- Validate the rendered policy graph.
Review ShippingConditions and ShippingDeliveryTime for the surrounding models.
ServicePeriod and ShippingDeliveryTime solve related but distinct modeling problems. ServicePeriod is useful in the reusable ShippingService policy graph, where handling can be shared and transit can vary by condition. ShippingDeliveryTime packages handling and transit inside OfferShippingDetails for a product-specific Offer. Do not publish both structures merely to repeat the same timing claim. Choose the scope that owns the rule, keep any required override narrower than the shared policy, and confirm that the resulting customer ETA is identical. If two models remain on the site, audit precedence and freshness so an old Offer override cannot silently defeat a newer merchant policy.
Correct placement separates service-wide processing from route-specific carrier travel.
How Does duration Work?
Duration uses QuantitativeValue with non-negative whole-number minValue and maxValue plus unitCode DAY to express the expected service period.
The minimum must not exceed the maximum. Zero can represent same-day processing under the stated cutoff. A broad range should be based on normal performance rather than the fastest and slowest outliers. If two services have materially different timing, create separate policies or conditions.
- Identify the exact page, asset, entity or relationship described in this section.
- Inspect the live implementation and retain the observed evidence.
- Compare the observation with the intended meaning and its primary specification.
- Correct any mismatch, then retest the live result.
- Record the accountable owner and review date.
| Range | Meaning | Assessment |
|---|---|---|
| 0–1 DAY | Same-day to next-day handling | Valid when operationally supported |
| 1–3 DAY | One to three counted days | Useful range |
| 3–1 DAY | Reversed range | Invalid logic |
| -1–2 DAY | Negative duration | Invalid |
| 1.5–2.5 DAY | Fractional days | Avoid for whole-day contract |
- Measure timestamped operational intervals.
- Choose a normal defensible range.
- Keep numeric values whole and non-negative.
- Recheck after service-level changes.
Duration does not state whether weekends count; businessDays supplies that missing calendar context.
A valid duration is an ordered, whole-day range grounded in actual service behavior.
How Do businessDays Work?
BusinessDays lists the weekdays that count toward the ServicePeriod, allowing processing and transit calendars to differ from ordinary calendar days.
A Monday-through-Friday warehouse can hand orders to a carrier that delivers Saturday. Those are two calendars, not one. Policy markup should reflect the calendar for the specific period. If a warehouse temporarily processes weekends during peak season, the data and ETA engine must change together.
- The exact page, asset, entity or relationship covered by this section
- The live implementation rather than an editor-only preview
- The primary specification or first-party record defining the expected behavior
- The validation result, accountable owner and review date
| Period | Possible calendar | Reason |
|---|---|---|
| Warehouse handling | Monday–Friday | Staffed processing days |
| Ground transit | Monday–Saturday | Carrier delivery schedule |
| Premium transit | Seven days | Service-specific availability |
| Regional service | Local business week | Market operations differ |
- Document the warehouse calendar.
- Document each carrier calendar.
- Assign the correct days to each period.
- Test orders spanning weekends.
- Review temporary calendar changes.
A list of weekdays should be generated from the same service configuration used by checkout, not maintained as SEO-only copy.
BusinessDays keeps duration honest by counting only the weekdays when the relevant operation actually moves.
How Should cutoffTime and Time Zones Work?
CutoffTime should state the daily order boundary with an explicit offset so orders before and after the same instant enter the correct handling day.
A time such as 14:30 without a zone is ambiguous across US warehouses and customers. A value such as 14:30:00-07:00 identifies the local offset at that moment. Daylight-saving changes require the source system to preserve the intended local operational time rather than freezing the wrong UTC offset year-round.
- Identify the exact page, asset, entity or relationship described in this section.
- Inspect the live implementation and retain the observed evidence.
- Compare the observation with the intended meaning and its primary specification.
- Correct any mismatch, then retest the live result.
- Record the accountable owner and review date.
| Representation | Clarity | Risk |
|---|---|---|
| 14:30:00-07:00 | Exact offset | Update seasonal offset when needed |
| 21:30:00Z | Exact UTC instant | Local display may shift |
| 2:30 PM | Human-readable only | No timezone |
| 14:30 | Incomplete context | Ambiguous zone |
- Choose the operational timezone authority.
- Store a timezone identifier upstream.
- Render an unambiguous time value.
- Test before and after the boundary.
A one-minute cutoff error can add an entire business day to handling.
CutoffTime is trustworthy when one timezone-aware rule drives both structured data and checkout ETA.
How Do Handling and Transit ServicePeriods Differ?
A handling ServicePeriod measures merchant processing before carrier handoff, while a transit ServicePeriod measures carrier movement from handoff to delivery.
The endpoint of handling should equal the starting event of transit so a delay is neither omitted nor counted twice. Made-to-order production belongs in handling. Carrier sorting, line haul, customs movement, and last-mile delivery belong in transit. Customs preparation by the merchant may require an explicit operational definition.
- The exact page, asset, entity or relationship covered by this section
- The live implementation rather than an editor-only preview
- The primary specification or first-party record defining the expected behavior
- The validation result, accountable owner and review date
| Activity | Period | Owner |
|---|---|---|
| Picking and packing | Handling | Warehouse |
| Manufacturing | Handling | Producer |
| Carrier line haul | Transit | Carrier |
| Last-mile delivery | Transit | Carrier |
| Pre-handoff documentation | Handling | Merchant or broker |
- Define order-received timestamp.
- Define carrier-handoff timestamp.
- Define delivery timestamp.
- Measure both intervals independently.
- Reconcile the total ETA.
Publishing transit alone as total delivery creates an optimistic promise whenever handling is nonzero.
Handling and transit remain accurate when they share one handoff boundary and cover the full delivery journey without overlap.
How Should Holidays and Seasonal Calendars Work?
Holiday closures and peak-season schedules should update the operational calendars or temporary policy conditions that generate ServicePeriod, because weekday lists alone do not capture exceptional dates.
ServicePeriod does not encode a complete holiday database. The merchant needs an upstream calendar that adjusts handling and transit promises for Thanksgiving, Christmas, warehouse shutdowns, carrier embargoes, and regional holidays. Temporary changes must have start and end controls.
- Identify the exact page, asset, entity or relationship described in this section.
- Inspect the live implementation and retain the observed evidence.
- Compare the observation with the intended meaning and its primary specification.
- Correct any mismatch, then retest the live result.
- Record the accountable owner and review date.
| Event | Timing effect | Control |
|---|---|---|
| Warehouse holiday | Handling pauses | Shared closure calendar |
| Carrier holiday | Transit pauses | Service calendar |
| Peak backlog | Handling range expands | Temporary policy update |
| Weather disruption | Regional transit uncertainty | Current honest range |
| Seasonal weekend work | More handling days | Bounded calendar override |
- Use one operational holiday source.
- Segment merchant and carrier closures.
- Schedule temporary changes.
- Verify return to normal afterward.
When precise arrival cannot be defended, widen or remove the promise rather than publish false certainty.
Seasonal timing stays accurate when temporary calendars and ranges follow real operations and expire on schedule.
What ServicePeriod Schema Mistakes Are Common?
Common mistakes include reversed duration ranges, missing units, timezone-free cutoffs, using one business calendar for handling and transit, and publishing carrier time as total delivery.
Another defect is copying one ServicePeriod across regions or service levels with different behavior. Static policies can survive warehouse changes, carrier migrations, and holiday schedules. Syntax validation cannot prove that an order placed at a real cutoff receives the advertised date.
- The exact page, asset, entity or relationship covered by this section
- The live implementation rather than an editor-only preview
- The primary specification or first-party record defining the expected behavior
- The validation result, accountable owner and review date
| Mistake | Consequence | Fix |
|---|---|---|
| min above max | Invalid duration logic | Validate range ordering |
| unitCode omitted | Duration ambiguous | Add DAY |
| Cutoff lacks offset | Processing day differs by zone | Add timezone context |
| Calendar reused | Weekend behavior is wrong | Separate period calendars |
| Transit shown as total | ETA too short | Add handling |
- Extract each ServicePeriod and parent.
- Trace its range, calendar, and cutoff.
- Repair the authoritative service source.
- Test boundary order times.
- Recrawl the rendered policy.
A source-level repair prevents the same timing defect from affecting every product under the service.
ServicePeriod errors require operational timing reconciliation, not only valid property names.