sm_order_type field classifies whether an order is a subscription or one-time purchase. SourceMedium determines this at the line-item level first, then rolls those line-level signals up to the order. This classification is used in subscription analytics, cohort analysis, and LTV reporting.
Order Type Values
When you only need the subscription vs one-time split, filter on
is_subscription_order = TRUE. It is true for subscription, subscription_prepaid, and subscription_&_one_time.
How Order Type Is Determined
Order type classification uses a multi-signal approach evaluated at the line-item level, then rolled up to the order.General signal sources
SourceMedium can use several signal families:- Direct subscription-platform line-item mappings such as ReCharge, Stay AI, Chargebee, or Amazon Subscribe & Save
- Shopify line-item metadata and property-based signals
- Shopify order tags and app/source signals
- Platform fields such as
is_from_subscription
Amazon Seller Central nuance
Amazon does not provide full subscription lifecycle data through Seller Central, such as subscription IDs, active subscriber status, cancellation dates, or active subscription counts. However, when Amazon provides order-item promotion or program signals that identify Subscribe & Save activity, SourceMedium uses those signals to classify eligible Amazon Seller Central orders and order lines as subscription. This improves subscription-vs-one-time reporting for Amazon, but should still be interpreted as order-level Subscribe & Save classification rather than a complete subscriber lifecycle dataset.Shopify signal precedence
Where your subscription platform supplies line-level data we use it. Otherwise we use Shopify line-item metadata, then order tags (tag classification only where SourceMedium has enabled it for your store). Tag-only classification is the weakest signal; explicit one-time metadata always wins over it.
Placeholder metadata, such as a Shopify
subscription_id of 1, is ignored. Free-gift metadata does not make a line a subscription.
Subscription tag patterns
When tags are the only signal, an order counts as subscription if a tag matches one of these patterns:- A tag containing a word that starts with
subscription, such asSubscription,SubscriptionActive, orsubscription_order_loop recurring_orderorrecurring-orderLuna Subscriptionbulksubscription
prepaid alongside a subscription tag classifies the order as subscription_prepaid.
Related Dimensions
is_subscription_order
A boolean convenience field derived fromsm_order_type:
is_subscription_order = TRUE when you want a simple subscription filter.
order_sequence
Customer lifecycle classification based on order position:subscription_order_sequence
Subscription-specific lifecycle classification commonly appears as:Line-level subscription fields
For product-level analysis, useobt_order_lines instead of relying only on the order rollup:
order_line_typeis_order_line_subscriptionsubscription_order_indexsubscription_order_sequence
Using Order Type In Analysis
Filter to subscription orders
Separate subscription vs one-time metrics
Use line-level fields when carts can be mixed
Best Practices
Prefer direct subscription-platform integrations
If you have ReCharge, Skio, Stay AI, Loop, Retextion, Chargebee, or another supported subscription platform, the most reliable classification comes from direct line-level platform data.Preserve explicit Shopify line-item metadata
For Shopify stores, explicit line-item metadata is more reliable than tag-only logic. If your app emits explicit subscription or one-time properties, preserve them.Validate with source-platform data
If you have a direct subscription-platform integration, compare SourceMedium classifications to that platform’s line-level or order-level data when troubleshooting mismatches.Use line-level fields for product analysis
Use order-level fields for order and customer retention analysis. Use line-level fields when the business question is about products, bundles, subscription mixes, or gifts inside a cart.Related Resources
Subscription Flags
Understand order-level and line-level subscription fields
obt_order_lines
Review line-level subscription field definitions

