Seller Profit Guard

What inputs belong in a Shopify subscription margin model?

Last updated: 2026-08-09

Written and reviewed by Seller Profit Guard Editorial Team.

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments.

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

Use strict subscription input grammar

Accept plain decimal money and percentages, safe whole scheduled-fulfillment and evidence-day controls, real YYYY-MM-DD dates, exact yes confirmations, and semantic evidence packets. Currency symbols, percent signs, exponent text, words, impossible dates, and fractional counts Block.

Preserve the rejected raw value, accepted correction, rule version, reviewer, and decision transition instead of relying on browser coercion.

Register twenty-one calculated outputs

Register ten derived values for monthly pay-per-delivery, ten for prepaid, and one signed contribution difference. The register names source inputs, units, rounding, owner, consumer, and masking behavior.

Every structural Block masks all twenty-one. A future derived value requires a matching unit test, browser assertion, interpretation note, and change-log entry.

Choose the analysis grain

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments. Use a dimensioned input ledger; never let cash timing silently change the formula grain. Checkpoint 1 in the subscription formula register records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For choose the analysis grain, 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.

Freeze monthly charge evidence

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments. Use a dimensioned input ledger; never let cash timing silently change the formula grain. Checkpoint 2 in the subscription formula register records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For freeze monthly charge evidence, 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.

Allocate prepaid checkout cash

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments. Use a dimensioned input ledger; never let cash timing silently change the formula grain. Checkpoint 3 in the subscription formula register records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For allocate prepaid checkout cash, 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 formula register: allocate prepaid checkout cash
Original explanatory diagram for allocate prepaid checkout cash without customer or order data.

Normalize payment events

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments. Use a dimensioned input ledger; never let cash timing silently change the formula grain. Checkpoint 4 in the subscription formula register records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For normalize payment events, 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.

Map product and fulfillment cost

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments. Use a dimensioned input ledger; never let cash timing silently change the formula grain. Checkpoint 5 in the subscription formula register records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For map product and fulfillment cost, 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.

Declare churn and CAC assumptions

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments. Use a dimensioned input ledger; never let cash timing silently change the formula grain. Checkpoint 6 in the subscription formula register records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For declare churn and cac assumptions, 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.

Separate official rules

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments. Use a dimensioned input ledger; never let cash timing silently change the formula grain. Checkpoint 7 in the subscription formula register records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For separate official rules, 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.

Reconcile formula units

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments. Use a dimensioned input ledger; never let cash timing silently change the formula grain. Checkpoint 8 in the subscription formula register records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For reconcile formula units, 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.

Document exclusions

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments. Use a dimensioned input ledger; never let cash timing silently change the formula grain. Checkpoint 9 in the subscription formula register records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For document exclusions, 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.

Create the input register

Model each subscription at fulfilled-shipment grain. Subtract allocated payment cost, product cost, fulfillment, app cost, reserve, and other variable cost from recognized shipment revenue; then use expected or scheduled shipments to show modeled term contribution, contribution after one acquisition cost, and CAC payback shipments. Use a dimensioned input ledger; never let cash timing silently change the formula grain. Checkpoint 10 in the subscription formula register records the value, unit, billing event, fulfillment grain, evidence date, owner, and accepted source before any output is interpreted.

For create the input register, 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.

Choose the analysis grain: verification test 1

Create a synthetic counterexample for choose the analysis grain. 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.

Freeze monthly charge evidence: verification test 2

Create a synthetic counterexample for freeze monthly charge evidence. 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.

Allocate prepaid checkout cash: verification test 3

Create a synthetic counterexample for allocate prepaid checkout cash. 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 formula register: allocate prepaid checkout cash: verification test 3
Original explanatory diagram for allocate prepaid checkout cash: verification test 3 without customer or order data.

Normalize payment events: verification test 4

Create a synthetic counterexample for normalize payment events. 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.

Map product and fulfillment cost: verification test 5

Create a synthetic counterexample for map product and fulfillment cost. 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.

Declare churn and CAC assumptions: verification test 6

Create a synthetic counterexample for declare churn and cac assumptions. 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.

Separate official rules: verification test 7

Create a synthetic counterexample for separate official rules. 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.

Reconcile formula units: verification test 8

Create a synthetic counterexample for reconcile formula units. 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.

Document exclusions: verification test 9

Create a synthetic counterexample for document exclusions. 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.

Create the input register: verification test 10

Create a synthetic counterexample for create the input register. 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 Margin Formula and Inputs: evidence exercise 1

Reperform choose the analysis grain 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 Margin Formula and Inputs: evidence exercise 2

Reperform freeze monthly charge evidence 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 Margin Formula and Inputs: evidence exercise 3

Reperform allocate prepaid checkout cash 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 formula register: shopify subscription margin formula and inputs: evidence exercise 3
Original explanatory diagram for shopify subscription margin formula and inputs: evidence exercise 3 without customer or order data.

Shopify Subscription Margin Formula and Inputs: evidence exercise 4

Reperform normalize payment events 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 Margin Formula and Inputs: evidence exercise 5

Reperform map product and fulfillment cost 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 Margin Formula and Inputs: evidence exercise 6

Reperform declare churn and cac assumptions 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 Margin Formula and Inputs: evidence exercise 7

Reperform separate official rules 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 Margin Formula and Inputs: evidence exercise 8

Reperform reconcile formula units 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 Margin Formula and Inputs: evidence exercise 9

Reperform document exclusions 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 Margin Formula and Inputs: evidence exercise 10

Reperform create the input register 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.