Seller Profit Guard

Where should Shopify subscription margin inputs come from?

Last updated: 2026-08-09

Written and reviewed by Seller Profit Guard Editorial Team.

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records.

subscription lineage map from billing model and fulfillment evidence through contribution, CAC payback, decision, and restoration
Original subscription lineage map diagram using invented values and no subscriber records.

Fingerprint the subscription evidence set

Version product, variant, app, selling plan, billing and delivery frequency, charge event, payment fee, checkout disclosure, policy, contract state, order state, scheduled fulfillment, inventory, shipping, refund, costs, cohort, CAC, owner approval, and restoration proof.

Store source acquisition and seller-policy dates separately; a public help page defines a boundary but does not prove one store's protected configuration.

Keep subscriber data outside lineage

Use invented fixtures and approved aggregate cohorts. The public lineage records source class, grain, period, aggregation rule, minimum count, owner, reviewer, checksum, expiry, and exclusions without names, emails, addresses, contract IDs, order IDs, payment methods, or raw exports.

Private source access and public evidence summaries remain distinct artifacts.

Selling-plan source

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records. Record source owner, access date, period, currency, aggregation rule, privacy class, and accepted version. Checkpoint 1 in the subscription lineage map records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For selling-plan source, preserve monthly charge, prepaid amount, scheduled or expected shipments, product cost, payment allocation, fulfillment, app cost, reserve, churn, CAC, policy, checkout, inventory, and contract state as separate fields. A missing field changes the decision rather than disappearing into an average.

Product and price source

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records. Record source owner, access date, period, currency, aggregation rule, privacy class, and accepted version. Checkpoint 2 in the subscription lineage map records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For product and price source, preserve monthly charge, prepaid amount, scheduled or expected shipments, product cost, payment allocation, fulfillment, app cost, reserve, churn, CAC, policy, checkout, inventory, and contract state as separate fields. A missing field changes the decision rather than disappearing into an average.

Payment-event source

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records. Record source owner, access date, period, currency, aggregation rule, privacy class, and accepted version. Checkpoint 3 in the subscription lineage map records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For payment-event source, preserve monthly charge, prepaid amount, scheduled or expected shipments, product cost, payment allocation, fulfillment, app cost, reserve, churn, CAC, policy, checkout, inventory, and contract state as separate fields. A missing field changes the decision rather than disappearing into an average.

subscription lineage map: payment-event source
Original explanatory diagram for payment-event source without customer or order data.

Fulfillment-cost source

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records. Record source owner, access date, period, currency, aggregation rule, privacy class, and accepted version. Checkpoint 4 in the subscription lineage map records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For fulfillment-cost source, preserve monthly charge, prepaid amount, scheduled or expected shipments, product cost, payment allocation, fulfillment, app cost, reserve, churn, CAC, policy, checkout, inventory, and contract state as separate fields. A missing field changes the decision rather than disappearing into an average.

Subscription-app source

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records. Record source owner, access date, period, currency, aggregation rule, privacy class, and accepted version. Checkpoint 5 in the subscription lineage map records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For subscription-app source, preserve monthly charge, prepaid amount, scheduled or expected shipments, product cost, payment allocation, fulfillment, app cost, reserve, churn, CAC, policy, checkout, inventory, and contract state as separate fields. A missing field changes the decision rather than disappearing into an average.

Contract-state source

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records. Record source owner, access date, period, currency, aggregation rule, privacy class, and accepted version. Checkpoint 6 in the subscription lineage map records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For contract-state source, preserve monthly charge, prepaid amount, scheduled or expected shipments, product cost, payment allocation, fulfillment, app cost, reserve, churn, CAC, policy, checkout, inventory, and contract state as separate fields. A missing field changes the decision rather than disappearing into an average.

Inventory and schedule source

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records. Record source owner, access date, period, currency, aggregation rule, privacy class, and accepted version. Checkpoint 7 in the subscription lineage map records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For inventory and schedule source, preserve monthly charge, prepaid amount, scheduled or expected shipments, product cost, payment allocation, fulfillment, app cost, reserve, churn, CAC, policy, checkout, inventory, and contract state as separate fields. A missing field changes the decision rather than disappearing into an average.

Cancellation and refund source

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records. Record source owner, access date, period, currency, aggregation rule, privacy class, and accepted version. Checkpoint 8 in the subscription lineage map records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For cancellation and refund source, preserve monthly charge, prepaid amount, scheduled or expected shipments, product cost, payment allocation, fulfillment, app cost, reserve, churn, CAC, policy, checkout, inventory, and contract state as separate fields. A missing field changes the decision rather than disappearing into an average.

Retention cohort source

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records. Record source owner, access date, period, currency, aggregation rule, privacy class, and accepted version. Checkpoint 9 in the subscription lineage map records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For retention cohort source, preserve monthly charge, prepaid amount, scheduled or expected shipments, product cost, payment allocation, fulfillment, app cost, reserve, churn, CAC, policy, checkout, inventory, and contract state as separate fields. A missing field changes the decision rather than disappearing into an average.

CAC attribution source

Use current selling-plan and product records, protected checkout tests, payment statements, app bills, fulfillment invoices, inventory records, cancellation and refund policy, aggregate renewal cohorts, scheduled fulfillment evidence, and an approved CAC attribution packet. Publish invented values or aggregates, never subscriber records. Record source owner, access date, period, currency, aggregation rule, privacy class, and accepted version. Checkpoint 10 in the subscription lineage map records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For cac attribution source, preserve monthly charge, prepaid amount, scheduled or expected shipments, product cost, payment allocation, fulfillment, app cost, reserve, churn, CAC, policy, checkout, inventory, and contract state as separate fields. A missing field changes the decision rather than disappearing into an average.

Selling-plan source: verification test 1

Create a synthetic counterexample for selling-plan source. Change one input only, retain the prior packet, and show the resulting contribution per shipment, margin, modeled term contribution, contribution after CAC, payback shipments, and Block, Review, or Ready state.

Then reconcile the counterexample against current selling-plan, product, payment, app, contract, scheduled fulfillment, inventory, cancellation, refund, cohort, owner, reviewer, backup, stop-rule, and restoration evidence. Do not expose any subscriber or order record.

Product and price source: verification test 2

Create a synthetic counterexample for product and price source. Change one input only, retain the prior packet, and show the resulting contribution per shipment, margin, modeled term contribution, contribution after CAC, payback shipments, and Block, Review, or Ready state.

Then reconcile the counterexample against current selling-plan, product, payment, app, contract, scheduled fulfillment, inventory, cancellation, refund, cohort, owner, reviewer, backup, stop-rule, and restoration evidence. Do not expose any subscriber or order record.

Payment-event source: verification test 3

Create a synthetic counterexample for payment-event source. Change one input only, retain the prior packet, and show the resulting contribution per shipment, margin, modeled term contribution, contribution after CAC, payback shipments, and Block, Review, or Ready state.

Then reconcile the counterexample against current selling-plan, product, payment, app, contract, scheduled fulfillment, inventory, cancellation, refund, cohort, owner, reviewer, backup, stop-rule, and restoration evidence. Do not expose any subscriber or order record.

subscription lineage map: payment-event source: verification test 3
Original explanatory diagram for payment-event source: verification test 3 without customer or order data.

Fulfillment-cost source: verification test 4

Create a synthetic counterexample for fulfillment-cost source. Change one input only, retain the prior packet, and show the resulting contribution per shipment, margin, modeled term contribution, contribution after CAC, payback shipments, and Block, Review, or Ready state.

Then reconcile the counterexample against current selling-plan, product, payment, app, contract, scheduled fulfillment, inventory, cancellation, refund, cohort, owner, reviewer, backup, stop-rule, and restoration evidence. Do not expose any subscriber or order record.

Subscription-app source: verification test 5

Create a synthetic counterexample for subscription-app source. Change one input only, retain the prior packet, and show the resulting contribution per shipment, margin, modeled term contribution, contribution after CAC, payback shipments, and Block, Review, or Ready state.

Then reconcile the counterexample against current selling-plan, product, payment, app, contract, scheduled fulfillment, inventory, cancellation, refund, cohort, owner, reviewer, backup, stop-rule, and restoration evidence. Do not expose any subscriber or order record.

Contract-state source: verification test 6

Create a synthetic counterexample for contract-state source. Change one input only, retain the prior packet, and show the resulting contribution per shipment, margin, modeled term contribution, contribution after CAC, payback shipments, and Block, Review, or Ready state.

Then reconcile the counterexample against current selling-plan, product, payment, app, contract, scheduled fulfillment, inventory, cancellation, refund, cohort, owner, reviewer, backup, stop-rule, and restoration evidence. Do not expose any subscriber or order record.

Inventory and schedule source: verification test 7

Create a synthetic counterexample for inventory and schedule source. Change one input only, retain the prior packet, and show the resulting contribution per shipment, margin, modeled term contribution, contribution after CAC, payback shipments, and Block, Review, or Ready state.

Then reconcile the counterexample against current selling-plan, product, payment, app, contract, scheduled fulfillment, inventory, cancellation, refund, cohort, owner, reviewer, backup, stop-rule, and restoration evidence. Do not expose any subscriber or order record.

Cancellation and refund source: verification test 8

Create a synthetic counterexample for cancellation and refund source. Change one input only, retain the prior packet, and show the resulting contribution per shipment, margin, modeled term contribution, contribution after CAC, payback shipments, and Block, Review, or Ready state.

Then reconcile the counterexample against current selling-plan, product, payment, app, contract, scheduled fulfillment, inventory, cancellation, refund, cohort, owner, reviewer, backup, stop-rule, and restoration evidence. Do not expose any subscriber or order record.

Retention cohort source: verification test 9

Create a synthetic counterexample for retention cohort source. Change one input only, retain the prior packet, and show the resulting contribution per shipment, margin, modeled term contribution, contribution after CAC, payback shipments, and Block, Review, or Ready state.

Then reconcile the counterexample against current selling-plan, product, payment, app, contract, scheduled fulfillment, inventory, cancellation, refund, cohort, owner, reviewer, backup, stop-rule, and restoration evidence. Do not expose any subscriber or order record.

CAC attribution source: verification test 10

Create a synthetic counterexample for cac attribution source. Change one input only, retain the prior packet, and show the resulting contribution per shipment, margin, modeled term contribution, contribution after CAC, payback shipments, and Block, Review, or Ready state.

Then reconcile the counterexample against current selling-plan, product, payment, app, contract, scheduled fulfillment, inventory, cancellation, refund, cohort, owner, reviewer, backup, stop-rule, and restoration evidence. Do not expose any subscriber or order record.

Shopify Subscription Data Source Map: evidence exercise 1

Reperform selling-plan source using the invented monthly USD 48 packet and prepaid USD 240 six-fulfillment packet. Keep payment timing explicit: one charge per monthly shipment versus one prepaid charge allocated across scheduled fulfillments.

Stress churn, prepaid term, price, product cost, fulfillment, payment fee, app allocation, reserve, CAC, margin target, payback limit, inventory, policy, checkout, contract status, ownership, or restoration one at a time. Exact cents do not convert a modeled assumption into observed lifetime value.

Shopify Subscription Data Source Map: evidence exercise 2

Reperform product and price source using the invented monthly USD 48 packet and prepaid USD 240 six-fulfillment packet. Keep payment timing explicit: one charge per monthly shipment versus one prepaid charge allocated across scheduled fulfillments.

Stress churn, prepaid term, price, product cost, fulfillment, payment fee, app allocation, reserve, CAC, margin target, payback limit, inventory, policy, checkout, contract status, ownership, or restoration one at a time. Exact cents do not convert a modeled assumption into observed lifetime value.

Shopify Subscription Data Source Map: evidence exercise 3

Reperform payment-event source using the invented monthly USD 48 packet and prepaid USD 240 six-fulfillment packet. Keep payment timing explicit: one charge per monthly shipment versus one prepaid charge allocated across scheduled fulfillments.

Stress churn, prepaid term, price, product cost, fulfillment, payment fee, app allocation, reserve, CAC, margin target, payback limit, inventory, policy, checkout, contract status, ownership, or restoration one at a time. Exact cents do not convert a modeled assumption into observed lifetime value.

subscription lineage map: shopify subscription data source map: evidence exercise 3
Original explanatory diagram for shopify subscription data source map: evidence exercise 3 without customer or order data.

Shopify Subscription Data Source Map: evidence exercise 4

Reperform fulfillment-cost source using the invented monthly USD 48 packet and prepaid USD 240 six-fulfillment packet. Keep payment timing explicit: one charge per monthly shipment versus one prepaid charge allocated across scheduled fulfillments.

Stress churn, prepaid term, price, product cost, fulfillment, payment fee, app allocation, reserve, CAC, margin target, payback limit, inventory, policy, checkout, contract status, ownership, or restoration one at a time. Exact cents do not convert a modeled assumption into observed lifetime value.

Shopify Subscription Data Source Map: evidence exercise 5

Reperform subscription-app source using the invented monthly USD 48 packet and prepaid USD 240 six-fulfillment packet. Keep payment timing explicit: one charge per monthly shipment versus one prepaid charge allocated across scheduled fulfillments.

Stress churn, prepaid term, price, product cost, fulfillment, payment fee, app allocation, reserve, CAC, margin target, payback limit, inventory, policy, checkout, contract status, ownership, or restoration one at a time. Exact cents do not convert a modeled assumption into observed lifetime value.

Shopify Subscription Data Source Map: evidence exercise 6

Reperform contract-state source using the invented monthly USD 48 packet and prepaid USD 240 six-fulfillment packet. Keep payment timing explicit: one charge per monthly shipment versus one prepaid charge allocated across scheduled fulfillments.

Stress churn, prepaid term, price, product cost, fulfillment, payment fee, app allocation, reserve, CAC, margin target, payback limit, inventory, policy, checkout, contract status, ownership, or restoration one at a time. Exact cents do not convert a modeled assumption into observed lifetime value.

Shopify Subscription Data Source Map: evidence exercise 7

Reperform inventory and schedule source using the invented monthly USD 48 packet and prepaid USD 240 six-fulfillment packet. Keep payment timing explicit: one charge per monthly shipment versus one prepaid charge allocated across scheduled fulfillments.

Stress churn, prepaid term, price, product cost, fulfillment, payment fee, app allocation, reserve, CAC, margin target, payback limit, inventory, policy, checkout, contract status, ownership, or restoration one at a time. Exact cents do not convert a modeled assumption into observed lifetime value.

Shopify Subscription Data Source Map: evidence exercise 8

Reperform cancellation and refund source using the invented monthly USD 48 packet and prepaid USD 240 six-fulfillment packet. Keep payment timing explicit: one charge per monthly shipment versus one prepaid charge allocated across scheduled fulfillments.

Stress churn, prepaid term, price, product cost, fulfillment, payment fee, app allocation, reserve, CAC, margin target, payback limit, inventory, policy, checkout, contract status, ownership, or restoration one at a time. Exact cents do not convert a modeled assumption into observed lifetime value.

Shopify Subscription Data Source Map: evidence exercise 9

Reperform retention cohort source using the invented monthly USD 48 packet and prepaid USD 240 six-fulfillment packet. Keep payment timing explicit: one charge per monthly shipment versus one prepaid charge allocated across scheduled fulfillments.

Stress churn, prepaid term, price, product cost, fulfillment, payment fee, app allocation, reserve, CAC, margin target, payback limit, inventory, policy, checkout, contract status, ownership, or restoration one at a time. Exact cents do not convert a modeled assumption into observed lifetime value.

Shopify Subscription Data Source Map: evidence exercise 10

Reperform cac attribution source using the invented monthly USD 48 packet and prepaid USD 240 six-fulfillment packet. Keep payment timing explicit: one charge per monthly shipment versus one prepaid charge allocated across scheduled fulfillments.

Stress churn, prepaid term, price, product cost, fulfillment, payment fee, app allocation, reserve, CAC, margin target, payback limit, inventory, policy, checkout, contract status, ownership, or restoration one at a time. Exact cents do not convert a modeled assumption into observed lifetime value.

Sources and further reading

Related Seller Profit Guard tools

Next step: Open Seller Profit Guard.

This is operational planning help, not tax, accounting, legal, financial, or platform-policy advice. Review the Terms and disclaimer, and verify current platform rules and fee assumptions before changing prices.