---
title: fulfillments
description: >-
  Reference for the ShopifyQL `fulfillments` table. Every metric and dimension,
  paired with worked example queries.
api_version: 2026-07
source_url:
  html: 'https://shopify.dev/docs/api/shopifyql/latest/schemas/orders/fulfillments'
  md: 'https://shopify.dev/docs/api/shopifyql/latest/schemas/orders/fulfillments.md'
api_name: shopifyql
---

# fulfillments

The `fulfillments` [schema](https://shopify.dev/docs/api/shopifyql/latest/schemas) captures fulfillment, shipping, and delivery timing after orders move through fulfillment events. It supports operational duration reporting and shipped-or-fulfilled order counts across carriers, providers, and locations.

### Use cases

* **Timing by carrier**: Compare [`median_hours_order_to_fulfillment`](#fulfillmentsmetric-propertydetail-medianhoursordertofulfillment), [`median_hours_order_to_shipping`](#fulfillmentsmetric-propertydetail-medianhoursordertoshipping), and [`median_hours_order_to_delivery`](#fulfillmentsmetric-propertydetail-medianhoursordertodelivery) by [`shipping_carrier`](#fulfillmentsdimension-propertydetail-shippingcarrier) to see which carriers move orders fastest.
* **Fulfilled volume**: Group [`orders_fulfilled`](#fulfillmentsmetric-propertydetail-ordersfulfilled) by [`fulfillment_provider`](#fulfillmentsdimension-propertydetail-fulfillmentprovider) or [`inventory_location_id`](#fulfillmentsdimension-propertydetail-inventorylocationid) to see which locations and providers handle your volume.
* **Cross-country delivery**: Use [`fulfillment_origin_country`](#fulfillmentsdimension-propertydetail-fulfillmentorigincountry) with [`median_days_shipping_to_delivery`](#fulfillmentsmetric-propertydetail-mediandaysshippingtodelivery) to see how long cross-border shipments take to arrive.
* **Timing distribution**: Filter [`order_to_fulfillment_hours`](#fulfillmentsdimension-propertydetail-ordertofulfillmenthours) or [`fulfillment_to_shipping_hours`](#fulfillmentsdimension-propertydetail-fulfillmenttoshippinghours) buckets when building timing distributions.

Examples

### Examples

* ####

  ##### Description

  Track weekly \[\`median\_days\_order\_to\_delivery\`]\(#fulfillmentsmetric-propertydetail-mediandaysordertodelivery) this quarter, with the fulfillment and shipping stages behind it. This example charts only \`median\_days\_order\_to\_delivery\`, while the per-stage medians come back as table columns beside it.

  ##### ShopifyQL

  ```shopifyql
  FROM fulfillments
    SHOW orders_fulfilled, orders_shipped, orders_delivered,
      median_days_order_to_fulfillment, median_days_order_to_shipping,
      median_days_order_to_delivery, orders_delivered_fast_rate
    TIMESERIES week
    DURING this_quarter
    COMPARE TO previous_period
    ORDER BY week ASC
  VISUALIZE median_days_order_to_delivery TYPE stacked_area
  ```

* ####

  ##### Description

  Rank carrier-and-origin-country lanes by \`median\_days\_order\_to\_delivery\` this quarter, fastest first. This example uses \[\`HAVING\`]\(/docs/api/shopifyql/latest/syntax/having) \`orders\_delivered > 25\` to drop thin lanes from the speed ranking.

  ##### ShopifyQL

  ```shopifyql
  FROM fulfillments
    SHOW orders_fulfilled, orders_delivered, median_days_order_to_delivery,
      orders_delivered_fast_rate, orders_with_tracking_included_rate
    GROUP BY shipping_carrier, fulfillment_origin_country WITH TOTALS
    HAVING orders_delivered > 25
    DURING this_quarter
    ORDER BY median_days_order_to_delivery ASC
    LIMIT 50
  VISUALIZE median_days_order_to_delivery TYPE horizontal_grouped_bar
  ```

* ####

  ##### Description

  Track weekly median hours from order to fulfillment this quarter, with the fulfillment-to-shipping and order-to-shipping stages behind it. This example uses \[\`WITH PERCENT\_CHANGE\`]\(/docs/api/shopifyql/latest/syntax/with#percent-change-columns) with \[\`COMPARE TO previous\_period\`]\(/docs/api/shopifyql/latest/syntax/compare-to) to show how each stage moved from the quarter before.

  ##### ShopifyQL

  ```shopifyql
  FROM fulfillments
    SHOW median_hours_order_to_fulfillment, median_hours_fulfillment_to_shipping,
      median_hours_order_to_shipping
    TIMESERIES week WITH PERCENT_CHANGE
    DURING this_quarter
    COMPARE TO previous_period
    ORDER BY week ASC
  VISUALIZE median_hours_order_to_fulfillment TYPE line
  ```

* ####

  ##### Description

  Rank the 10 \`fulfillment\_provider\` values with the highest \`median\_hours\_order\_to\_fulfillment\` last month. This example pairs \[\`ORDER BY\`]\(/docs/api/shopifyql/latest/syntax/order-by) \`median\_hours\_order\_to\_fulfillment DESC\` with \`LIMIT 10\`, so the sort decides which 10 providers survive the cut.

  ##### ShopifyQL

  ```shopifyql
  FROM fulfillments
    SHOW median_hours_order_to_fulfillment
    GROUP BY fulfillment_provider WITH TOTALS
    DURING last_month
    ORDER BY median_hours_order_to_fulfillment DESC
    LIMIT 10
  VISUALIZE median_hours_order_to_fulfillment TYPE horizontal_bar
  ```

***

## Metrics

Counts and calculations that let you track key business indicators. Metrics show up as the columns when queried.

Metrics you can use when querying `FROM fulfillments`.

* **median\_​days\_​fulfillment\_​to\_​shipping**

  **DAY\_DURATION**

  The middle number of days from fulfillment to the shipping handoff for shipped orders in your results.

* **median\_​days\_​order\_​to\_​delivery**

  **DAY\_DURATION**

  The middle number of days from order placement to delivery for delivered orders in your results.

* **median\_​days\_​order\_​to\_​fulfillment**

  **DAY\_DURATION**

  The middle number of days from order placement to fulfillment for fulfilled orders in your results.

* **median\_​days\_​order\_​to\_​shipping**

  **DAY\_DURATION**

  The middle number of days from order placement to the shipping handoff for shipped orders in your results.

* **median\_​days\_​shipping\_​to\_​delivery**

  **DAY\_DURATION**

  The middle number of days from the shipping handoff to delivery for delivered orders in your results.

* **median\_​hours\_​fulfillment\_​to\_​shipping**

  **HOUR\_DURATION**

  The middle number of hours from fulfillment to the shipping handoff for shipped orders in your results.

* **median\_​hours\_​order\_​to\_​delivery**

  **HOUR\_DURATION**

  The middle number of hours from order placement to delivery for delivered orders in your results.

* **median\_​hours\_​order\_​to\_​fulfillment**

  **HOUR\_DURATION**

  The middle number of hours from order placement to fulfillment for fulfilled orders in your results.

* **median\_​hours\_​order\_​to\_​shipping**

  **HOUR\_DURATION**

  The middle number of hours from order placement to the shipping handoff for shipped orders in your results.

* **median\_​hours\_​shipping\_​to\_​delivery**

  **HOUR\_DURATION**

  The middle number of hours from the shipping handoff to delivery for delivered orders in your results.

* **orders\_​delivered**

  **INTEGER**

  Counts each order one time when it's delivered, even if the order has more than one delivery event.

* **orders\_​delivered\_​fast\_​rate**

  **PERCENT**

  The percentage of delivered orders that reached delivery within five days.

* **orders\_​fulfilled**

  **INTEGER**

  Counts each order one time when it's fulfilled, even if the order has more than one fulfillment event.

* **orders\_​shipped**

  **INTEGER**

  The number of unique orders that reached the shipping handoff in your results.

* **orders\_​shipped\_​fast\_​rate**

  **PERCENT**

  The percentage of shipped orders handed off and scanned by the carrier within 36 hours.

* **orders\_​with\_​tracking\_​included\_​rate**

  **PERCENT**

  The percentage of fulfilled orders that included a valid tracking number and carrier information.

### DAY\_DURATION

A duration measured in days.

```ts
```

### HOUR\_DURATION

A duration measured in hours.

```ts
```

### INTEGER

A whole number without decimal places, used for counts, quantities, and other discrete numeric values.

```ts
```

### PERCENT

A percentage value represented as a decimal, where 0.25 represents 25%.

```ts
```

***

## Dimensions

Attributes of your data that let you look more granularly at aspects of the data. Group and filter by dimensions to shape the rows your query returns.

Dimensions you can use when querying `FROM fulfillments`.

* **day**

  **DAY\_TIMESTAMP**

  The day a fulfillment event happened.

* **day\_​of\_​week**

  **DAY\_OF\_WEEK**

  The day of the week a fulfillment event happened, with values Monday through Sunday.

* **fulfillment\_​event\_​days**

  **INTEGER**

  The number of days taken for a fulfillment event. The duration reflects the event type, such as order to fulfillment for fulfilled events, order to shipping for shipped events, and order to delivery for delivered events.

* **fulfillment\_​event\_​hours**

  **INTEGER**

  The number of hours taken for a fulfillment event. The duration reflects the event type, such as order to fulfillment for fulfilled events, order to shipping for shipped events, and order to delivery for delivered events.

* **fulfillment\_​id**

  **IDENTITY**

  Shopify identifier for the fulfillment

* **fulfillment\_​origin\_​country**

  **STRING**

  The country where the fulfillment started, shown as a country name.

* **fulfillment\_​provider**

  **STRING**

  The name of the app or service that handled the fulfillment.

* **fulfillment\_​provider\_​id**

  **IDENTITY**

  Use [`fulfillment_provider_id`](#fulfillmentsdimension-propertydetail-fulfillmentproviderid) with [`fulfillment_provider`](#fulfillmentsdimension-propertydetail-fulfillmentprovider) to show readable fulfillment provider names.

* **fulfillment\_​to\_​shipping\_​days**

  **INTEGER**

  The number of days from fulfillment to the shipping handoff for shipped events.

* **fulfillment\_​to\_​shipping\_​hours**

  **INTEGER**

  The number of hours from fulfillment to the shipping handoff for shipped events.

* **hour**

  **HOUR\_TIMESTAMP**

  The hour a fulfillment event happened.

* **hour\_​of\_​day**

  **HOUR\_OF\_DAY**

  The hour of day a fulfillment event happened, with values 0 through 23.

* **inventory\_​location\_​id**

  **IDENTITY**

  The Shopify identifier for the inventory location connected to the fulfillment. Use [`inventory_location_id`](#fulfillmentsdimension-propertydetail-inventorylocationid) with [`inventory_location_name`](#fulfillmentsdimension-propertydetail-inventorylocationname) to show readable location labels.

* **minute**

  **MINUTE\_TIMESTAMP**

  The minute a fulfillment event happened.

* **month**

  **MONTH\_TIMESTAMP**

  The month a fulfillment event happened.

* **month\_​of\_​year**

  **MONTH\_OF\_YEAR**

  The month of the year a fulfillment event happened, with values 1 through 12.

* **order\_​id**

  **IDENTITY**

  The unique Shopify identifier for the order connected to the fulfillment.

* **order\_​to\_​delivery\_​days**

  **INTEGER**

  The number of days from order placement to delivery for delivered events.

* **order\_​to\_​delivery\_​hours**

  **INTEGER**

  The number of hours from order placement to delivery for delivered events.

* **order\_​to\_​fulfillment\_​days**

  **INTEGER**

  The number of days from order placement to fulfillment for fulfilled events.

* **order\_​to\_​fulfillment\_​hours**

  **INTEGER**

  The number of hours from order placement to fulfillment for fulfilled events.

* **order\_​to\_​shipping\_​days**

  **INTEGER**

  The number of days from order placement to the shipping handoff for shipped events.

* **order\_​to\_​shipping\_​hours**

  **INTEGER**

  The number of hours from order placement to the shipping handoff for shipped events.

* **quarter**

  **QUARTER\_TIMESTAMP**

  The quarter a fulfillment event happened.

* **second**

  **SECOND\_TIMESTAMP**

  The second a fulfillment event happened.

* **shipping\_​address\_​id**

  **IDENTITY**

  The unique Shopify identifier for the shipping address on the order.

* **shipping\_​carrier**

  **STRING**

  The carrier or tracking company for the shipment.

* **shipping\_​to\_​delivery\_​days**

  **INTEGER**

  The number of days from the shipping handoff to delivery for delivered events.

* **shipping\_​to\_​delivery\_​hours**

  **INTEGER**

  The number of hours from the shipping handoff to delivery for delivered events.

* **shop\_​id**

  **IDENTITY**

  The unique Shopify identifier for your store. Use [`shop_id`](#fulfillmentsdimension-propertydetail-shopid) with [`shop_name`](#fulfillmentsdimension-propertydetail-shopname) to show readable store labels.

* **week**

  **WEEK\_TIMESTAMP**

  The week a fulfillment event happened.

* **week\_​of\_​year**

  **WEEK\_OF\_YEAR**

  The week of the year a fulfillment event happened, with values 1 through 53.

* **year**

  **YEAR\_TIMESTAMP**

  The year a fulfillment event happened.

* **inventory\_​group\_​id**

  **IDENTITY**

  Shopify identifier for the inventory group

* **inventory\_​location\_​name**

  **STRING**

  Name of the inventory location

* **shop\_​name**

  **STRING**

  Name of your store

* **is\_​b2b\_​order**

  **BOOLEAN**

  Whether the order is a B2B order, with values `true` and `false`.

* **is\_​canceled\_​order**

  **BOOLEAN**

  Whether the order is canceled, with values `true` and `false`.

* **order\_​checkout\_​currency**

  **STRING**

  The currency the buyer saw at checkout when placing the order. Values are currency codes such as USD, CAD, EUR, and GBP.

* **order\_​fulfillment\_​status**

  **STRING**

  The order's fulfillment state, with values Fulfilled, Partial, Restocked, and Unfulfilled.

* **order\_​includes\_​duties**

  **BOOLEAN**

  Whether the order includes duties, with values `true` and `false`.

* **order\_​name**

  **STRING**

  The name or number of the order as the customer sees it.

* **order\_​payment\_​status**

  **STRING**

  The order's payment state, such as Authorized, Paid, Partially refunded, or Pending.

* **order\_​sales\_​channel**

  **STRING**

  The sales channel where the order was placed, shown as a channel name such as Online Store or POS.

* **order\_​sales\_​channel\_​id**

  **IDENTITY**

  The unique Shopify identifier for the order's sales channel. Use [`order_sales_channel_id`](#fulfillmentsdimension-propertydetail-ordersaleschannelid) with [`order_sales_channel`](#fulfillmentsdimension-propertydetail-ordersaleschannel) to show readable channel labels.

* **is\_​shop\_​referral\_​order**

  **BOOLEAN**

  Whether the order was referred from the Shop app or shop.app, with values `true` and `false`.

* **order\_​landing\_​page\_​path**

  **STRING**

  Path of the first page of the user session that resulted in the order

* **order\_​landing\_​page\_​url**

  **STRING**

  First page of the user session that resulted in the order

* **order\_​marketing\_​event\_​id**

  **IDENTITY**

  Shopify identifier for the marketing event associated with the order

* **order\_​referrer\_​domain**

  **STRING**

  Domain of the site that led to the order

* **order\_​referrer\_​name**

  **STRING**

  The readable name of the site that led to the order.

* **order\_​referrer\_​path**

  **STRING**

  Path of the site that led to the order

* **order\_​referrer\_​site**

  **STRING**

  Site that led to the order

* **order\_​referrer\_​source**

  **STRING**

  The referrer type that led to the order, such as organic or email.

* **order\_​referrer\_​url**

  **STRING**

  External page that referred a customer and led to the order

* **order\_​utm\_​campaign**

  **STRING**

  UTM name of the campaign associated with the order

* **order\_​utm\_​content**

  **STRING**

  The UTM content value associated with the order, often used to distinguish ads, links, or content variations.

* **order\_​utm\_​medium**

  **STRING**

  The UTM medium associated with the order, such as email, social, or paid search.

* **order\_​utm\_​source**

  **STRING**

  The UTM source associated with the order, such as Google, Facebook, or a newsletter.

* **order\_​utm\_​term**

  **STRING**

  The UTM term associated with the order, often used for paid search keywords or other tracked terms.

* **number\_​of\_​products\_​bought\_​together**

  **INTEGER**

  Total unique products in the same order

* **number\_​of\_​variants\_​bought\_​together**

  **INTEGER**

  The number of unique product variants in the same order, with each SKU counted a single time.

* **products\_​bought\_​together**

  **ARRAY\<STRING>**

  The product names that appear in the same order.

* **products\_​bought\_​together\_​ids**

  **ARRAY\<INTEGER>**

  The Shopify product identifiers for products in the same order.

* **variants\_​bought\_​together**

  **ARRAY\<STRING>**

  The product variant labels that appear in the same order, such as size, color, or style combinations.

* **company\_​id**

  **IDENTITY**

  The unique Shopify identifier for the company. Use [`company_id`](#fulfillmentsdimension-propertydetail-companyid) with [`company_name`](#fulfillmentsdimension-propertydetail-companyname) to show readable company labels.

* **company\_​name**

  **STRING**

  Name of the company that placed the order

* **company\_​location\_​id**

  **IDENTITY**

  The unique Shopify identifier for the company location. Use [`company_location_id`](#fulfillmentsdimension-propertydetail-companylocationid) with [`company_location_name`](#fulfillmentsdimension-propertydetail-companylocationname) to show readable company location labels.

* **company\_​location\_​name**

  **STRING**

  The company location or branch that placed the order

* **referring\_​channel**

  **STRING**

  Marketing channel that referred the customer to place the order

* **referring\_​medium**

  **STRING**

  The marketing medium that referred the customer to place the order, such as email, social, or search.

* **referring\_​platform**

  **STRING**

  The marketing platform that referred the customer to place the order, such as Google, Facebook, or Instagram.

* **traffic\_​type**

  **STRING**

  The type of traffic that led to the order, such as organic, paid, or direct.

* **order\_​marketing\_​event\_​target**

  **STRING**

  The platform or channel where the marketing activity was deployed, such as Email, Facebook, Google, or Instagram.

* **order\_​marketing\_​event\_​type**

  **STRING**

  The type of marketing activity that led to the order, such as Ad, Affiliate, Newsletter, or Retargeting. PLA means Product Listing Ads, and SEO means Search Engine Optimization.

* **market**

  **STRING**

  Market you've defined in Shopify, like a geographical market or customer group

* **markets**

  **ARRAY\<STRING>**

  Markets or customer segments associated with the order

* **order\_​cancellation\_​reason**

  **STRING**

  The reason specified for the order cancellation, such as Customer, Other, Fraud, or Inventory.

* **order\_​risk\_​level**

  **STRING**

  The fraud risk level Shopify assigned to the order, with values Low, Medium, High, None, and Pending.

* **order\_​is\_​shopify\_​protect\_​covered**

  **BOOLEAN**

  Whether the order has met Shopify Protect fulfillment requirements, including proper shipping and tracking, with values `true` and `false`.

* **order\_​is\_​shopify\_​protect\_​eligible**

  **BOOLEAN**

  Whether the order qualifies for Shopify Protect, with values `true` and `false`.

* **order\_​is\_​shopify\_​protect\_​protected**

  **BOOLEAN**

  Whether the order has full Shopify Protect coverage against fraud, with values `true` and `false`.

* **order\_​tag**

  **STRING**

  Tag associated with the order

* **order\_​tags**

  **ARRAY\<STRING>**

  Set of tags associated with the order

* **agentic\_​referring\_​channel**

  **STRING**

  The AI agent or assistant that referred the session to your online store, with values ChatGPT, Google AI Mode and Gemini, Microsoft Copilot, and Shop.

* **channel\_​handle**

  **STRING**

  Name of the marketing channel or platform that drove the marketing engagement

* **marketing\_​activity\_​id**

  **IDENTITY**

  The unique Shopify identifier for the marketing activity. Use [`marketing_activity_id`](#fulfillmentsdimension-propertydetail-marketingactivityid) with [`marketing_activity_title`](#fulfillmentsdimension-propertydetail-marketingactivitytitle) to show readable activity labels.

* **marketing\_​activity\_​status**

  **STRING**

  Current status of the marketing activity (such as Active or Paused)

* **marketing\_​activity\_​title**

  **STRING**

  Name of the marketing activity

* **marketing\_​activity\_​url\_​parameter\_​key**

  **STRING**

  URL parameter key for the marketing activity

* **marketing\_​activity\_​url\_​parameter\_​value**

  **STRING**

  URL parameter value for the marketing activity

* **marketing\_​automation\_​id**

  **IDENTITY**

  Unique ID that Shopify uses to identify the marketing automation

* **marketing\_​delivery\_​channel**

  **STRING**

  Channel through which the marketing activity is delivered

* **marketing\_​event\_​id**

  **IDENTITY**

  Unique identifier for the associated marketing event

* **marketing\_​platform**

  **STRING**

  The marketing platform that created the marketing activity, shown as a platform name.

* **page\_​host**

  **STRING**

  The host name of the session landing page.

* **page\_​path**

  **STRING**

  The path of the session landing page.

* **page\_​url**

  **STRING**

  The URL of the first page viewed in the session.

* **referrer\_​url**

  **STRING**

  External page that led to an online store session

* **utm\_​campaign**

  **STRING**

  UTM name of the campaign associated with the session

* **utm\_​content**

  **STRING**

  The UTM content value associated with the session, often used to distinguish ads, links, or content variations.

* **utm\_​medium**

  **STRING**

  The UTM medium associated with the session, such as email, social, or paid search.

* **utm\_​source**

  **STRING**

  The UTM source associated with the session, such as Google, Facebook, or a newsletter.

* **utm\_​term**

  **STRING**

  The UTM term associated with the session, often used for paid search keywords or other tracked terms.

* **shipping\_​city**

  **STRING**

  City of the shipping address

* **shipping\_​company**

  **STRING**

  Company of the shipping address

* **shipping\_​country**

  **STRING**

  Country of the shipping address (e.g., United States, Canada)

* **shipping\_​postal\_​code**

  **STRING**

  Postal code of the shipping address

* **shipping\_​region**

  **STRING**

  State or province of the shipping address (e.g., California, Ontario)

### DAY\_TIMESTAMP

A date value truncated to day precision.

```ts
```

### DAY\_OF\_WEEK

A day within a week, used for weekday-based grouping and filtering.

```ts
```

### IDENTITY

A unique identifier for a Shopify resource such as a customer, product, or order.

```ts
```

### STRING

A sequence of characters representing text data.

```ts
```

### HOUR\_TIMESTAMP

A timestamp truncated to hour precision.

```ts
```

### HOUR\_OF\_DAY

An hour within a day, typically represented as an integer from 0 to 23.

```ts
```

### MINUTE\_TIMESTAMP

A timestamp truncated to minute precision.

```ts
```

### MONTH\_TIMESTAMP

A date value representing the start of a month.

```ts
```

### MONTH\_OF\_YEAR

A month number within a year.

```ts
```

### QUARTER\_TIMESTAMP

A date value representing the start of a fiscal quarter.

```ts
```

### SECOND\_TIMESTAMP

A timestamp truncated to second precision.

```ts
```

### WEEK\_TIMESTAMP

A date value representing the start of a week.

```ts
```

### WEEK\_OF\_YEAR

A week number within a year.

```ts
```

### YEAR\_TIMESTAMP

A date value representing the start of a year.

```ts
```

### BOOLEAN

A true or false value representing binary states.

```ts
```

### ARRAY

A list of values. The element type appears inside angle brackets, such as ARRAY\<STRING>.

```ts
```

***

## Related schemas

* [`shipping_labels`](https://shopify.dev/docs/api/shopifyql/latest/schemas/orders/shipping_labels): Label-level costs and carrier spend, paired with the same carrier and lane attributes.
* [`subscriptions`](https://shopify.dev/docs/api/shopifyql/latest/schemas/sales_revenue/subscriptions): Subscription order activity when you want to track recurring fulfillment separately from one-off orders.
* [`sales`](https://shopify.dev/docs/api/shopifyql/latest/schemas/sales_revenue/sales): Sale-level data when you want to tie fulfillment timing back to revenue.

***
