---
title: "Machine-readable shipping information · Specoria"
description: "Machine-readable shipping information: Filters like “free shipping” or “arrives tomorrow” read this field; if it’s empty the store doesn’t appear in them."
source_url: "https://specoria.com/method/checks/shipping-machine/"
lang: "en"
---

[← All checks](https://specoria.com/method/checks/)
shipping_machine

# Machine-readable shipping information

Why it matters Filters like “free shipping” or “arrives tomorrow” read this field; if it’s empty the store doesn’t appear in them.

**Category**
Policies and trust

**Weight**
4 of 100 points

**Critical blocker**
No. If it fails, it only costs its own weight.

**Applies to**
Online stores

**Effort**
2-4 hours · developer

**Score model**
v2.4

## How we measure it

We look for machine-readable shipping details (OfferShippingDetails or ShippingService) in the offer or at Organization level and count four fields: shipping cost (shippingRate), delivery region (shippingDestination), handling time (handlingTime) and transit time (transitTime); the times may sit under deliveryTime or shippingConditions. All four pass; a definition with missing fields is a partial pass (one missing 0.75, two 0.6, more 0.5 points); no definition fails.

### What the result page says

These are the sentences in the test result; “…” is replaced by what we found on your site.

- Passed Shipping cost, delivery region, handling and transit times are defined in structured data (on the offer or the organization).
- Partial Shipping information is in structured data but incomplete: …. An agent can’t work out the total cost or the delivery date.
- Failed Shipping time and cost aren’t in structured data, so agents can’t compare your delivery terms.

## How to fix it

**Target:** Shipping rate, handling and transit times are defined with OfferShippingDetails.

### Example code

`"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": { "@type": "MonetaryAmount", "value": "0", "currency": "USD" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "US" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 3, "unitCode": "DAY" }
}
}`
Example values (example.com, product name, price) are placeholders; replace them with your own.

### How to verify it yourself

The Rich Results Test should show shipping details. Note: Merchant Center shipping settings may take precedence on Google.

### Fix it with an AI coding agent

Paste this into Claude Code, Cursor or another coding agent working on your store’s code. Review the change before you deploy it.

`You are working on my online store. Specoria’s agent readiness test checks the item below. Fix it so AI shopping agents can read the store and act on it.

## 1. Machine-readable shipping information (shipping_machine)
Target: Shipping rate, handling and transit times are defined with OfferShippingDetails.
Example fix (adapt it to this codebase and platform; example values are placeholders):
```
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": { "@type": "MonetaryAmount", "value": "0", "currency": "USD" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "US" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 3, "unitCode": "DAY" }
}
}
```
Reference: https://specoria.com/method/checks/shipping-machine/

## Rules
- First look through the codebase and tell me which files or templates you will change, before editing anything.
- Change only what these checks need, and keep the visible page and the structured data saying the same thing.
- Never invent prices, stock, shipping or return terms, reviews or product identifiers (GTIN): take them from the store’s real data or ask me.
- Don’t block or slow down real visitors and don’t add tracking.
- After deploying, run the free test again at https://specoria.com/ to verify the fix.`

## Specifications and guidance

- [schema.org/OfferShippingDetails ↗](https://schema.org/OfferShippingDetails)
- [Google: merchant listing structured data ↗](https://developers.google.com/search/docs/appearance/structured-data/merchant-listing)

The check is based on these open sources; links go to the publisher’s own pages.

## Where it sits in the 196-criteria framework

The result of this check counts as evidence for these items of the readiness framework:

- `2.4` OfferShippingDetails is machine-readable

[The framework and its source →](https://specoria.com/method/#criteria)

[← PreviousReturns page and window](https://specoria.com/method/checks/returns-human/)[Next →Shipping cost and time on the page](https://specoria.com/method/checks/shipping-human/)

[Run the free test](https://specoria.com/method/checks/shipping-machine/#test) [See the sample report →](https://specoria.com/reports/sample-report/)

## Related

- [Machine-readable return policy](https://specoria.com/method/checks/returns-machine/)
- [Returns page and window](https://specoria.com/method/checks/returns-human/)
- [Agent Readiness Index 2027](https://specoria.com/index/) How the benchmarked stores scored, with open data
- [Agentic commerce statistics](https://specoria.com/agentic-commerce-statistics/) Sourced, dated figures you can cite

FREE TEST

## Test your store now

Enter your store’s address: 27 checks on your public pages, the way a shopping agent reads them.

The free test runs in your browser and needs JavaScript. [Request the free deep audit by email instead →](https://specoria.com/#contact)

Your result opens on its own page. Want the full picture? The free deep audit and panel come next, by email.
