Seller Profit Guard · How it works · CSV privacy

Shopify subscription product margin calculator

Compare pay-as-you-go and prepaid Shopify subscription economics at fulfilled-shipment grain. The calculator shows recognized revenue, payment allocation, contribution, contribution margin, modeled term contribution, CAC payback shipments, and Ready, Review, or Block from seller-entered evidence.

Maintained by Seller Profit Guard Editorial Team. Last reviewed: 2026-07-29.

Monthly and prepaid Shopify subscription packets flowing through price, scheduled fulfillment costs, contribution, CAC payback, and evidence decisions
Separate recurring charges from prepaid cash, then compare both at one fulfilled-shipment grain.

Separate billing models before arithmetic

Scenario A is one pay-as-you-go monthly subscription. Scenario B is one prepaid order with a fixed number of scheduled fulfillments. They use different payment timing, revenue recognition, cancellation exposure, inventory timing, and refund evidence.

Do not rename a monthly packet as prepaid or divide a prepaid order only after seeing the desired result. Preserve the selling plan, product, cadence, payment, fulfillment schedule, and policy snapshot.

Use contribution per fulfilled shipment

For either packet, contribution per shipment equals recognized shipment revenue minus allocated payment cost, product cost, fulfillment, subscription-app cost, refund reserve, and other attributable variable cost.

This is not complete profit. It excludes fixed overhead, tax, duties, financing, unentered support work, advertising beyond the entered CAC, and any future outcome outside the declared retention or fulfillment packet.

Model monthly retention as an assumption

The monthly packet converts a constant seller-entered monthly churn percentage into expected fulfilled shipments using one divided by churn as a bounded planning assumption.

A churn assumption is not observed cohort retention. Zero churn is invalid because it implies an unbounded lifetime. Replace the planning value with a closed cohort when enough renewals mature.

Allocate prepaid revenue by scheduled fulfillment

The prepaid packet divides the collected prepaid amount by the exact number of scheduled fulfillments to produce recognized revenue per shipment.

Cash collected at checkout is not contribution for the first box. Shopify documents that prepaid orders remain scheduled across multiple fulfillments, so cost and revenue comparisons need the same fulfillment grain.

Allocate payment cost at the correct charge event

Pay-as-you-go payment cost is calculated on each recurring charge. Prepaid payment cost is calculated on the lump-sum checkout charge and allocated across scheduled fulfillments.

Do not apply a fixed payment fee to every prepaid shipment when it was charged once, or allocate a monthly recurring charge across future shipments that have not yet billed.

Keep subscription price and discount evidence together

Use the actual selling-plan price after its subscription discount. Preserve whether a product is subscription-only or also available as a one-time purchase.

Do not subtract the same discount twice. Verify checkout presentation because Shopify displays subscription frequency and discount details in the order summary.

Use product cost at shipment grain

Enter the inventory cost consumed by one fulfilled subscription shipment, including the correct variant, quantity, inserts, consumables, and replacement policy.

Prepaid inventory is not automatically reserved for every future cycle when the initial order is created. Shopify documents reservation at the applicable fulfillment date unless fulfilled early.

Record fulfillment for every delivery

Enter packaging, pick, pack, label, fulfillment service, and other shipment-level delivery cost. Use a separate amount when prepaid packaging or service differs.

Shipping shown per delivery and actual fulfillment cost are different evidence. Do not confuse customer shipping collected, free-shipping promotion, and seller carrier expense.

Allocate subscription-app cost deliberately

Normalize the app's recurring, usage, or contract-related charge to the same period and retained subscription shipments before entering a per-shipment amount.

Do not insert an entire app invoice into one box or assume the first-party app's current price proves every store's app cost. Keep developer-billed charges and Shopify-billed charges distinct.

Create a refund and cancellation reserve

Enter a per-shipment reserve for refunds, prepaid unfulfilled obligations, failed renewal handling, reshipments, customer support, and other expected loss not already counted.

A reserve is a planning assumption, not permission to retain customer money. Shopify documents separate cancellation and refund steps for subscription contracts and prepaid orders.

Treat acquisition cost as a cohort entry cost

Customer acquisition cost is entered once per acquired subscription customer and divided by contribution per fulfilled shipment to estimate contribution payback shipments.

Do not subtract CAC from every renewal. Payback does not prove lifetime value, incrementality, attribution, cash recovery, or that the customer will complete the modeled shipments.

Calculate the monthly fixture

The invented monthly packet charges USD 48 per shipment. Product, fulfillment, app, and reserve total USD 26.50; payment cost at 2.9% plus USD 0.30 is USD 1.69.

Displayed contribution is USD 19.81 per shipment, margin is about 41.27%, constant 20% churn implies five expected shipments, and USD 50 CAC pays back in about 2.52 fulfilled shipments.

Calculate the prepaid fixture

The invented prepaid packet collects USD 240 for six scheduled fulfillments, so recognized revenue is USD 40 per shipment. Its single payment cost is allocated across all six shipments.

Product, fulfillment, app, and reserve total USD 25 per shipment. Displayed contribution is USD 13.79, margin is about 34.48%, total scheduled contribution is USD 82.74, and USD 50 CAC pays back in about 3.63 shipments.

Compare like-for-like outputs

Compare contribution per shipment, contribution margin, expected or scheduled contribution before CAC, contribution after CAC, and payback shipments.

Do not compare monthly collected cash with prepaid recognized revenue, one shipment with an entire prepaid term, or modeled expected shipments with completed renewals.

Use two decision thresholds

The seller enters a minimum contribution margin and maximum CAC payback shipments. A valid packet missing either boundary returns Review.

Thresholds are internal controls. They are not Shopify approval, accounting policy, a guaranteed retention level, a marketing budget authorization, or consumer disclosure.

Block missing subscription evidence

Block when selling plan, app, product, price, cadence, payment, cancellation policy, checkout, inventory, fulfillment, ownership, backup, stop rule, or restoration evidence is incomplete.

Favorable arithmetic cannot repair a missing contract boundary, unsupported payment configuration, unresolved customer-policy disclosure, or broken fulfillment schedule.

Distinguish pause, skip, cancel, and refund

A contract can have operational states such as skip, pause, resume, or cancel, while an order refund is a separate money movement. Preserve both contract and order evidence.

Do not infer a refund from cancellation or assume an order edit changes the subscription contract. Shopify explicitly warns these workflows can require separate actions.

Protect prepaid liabilities

Prepaid cash can fund future scheduled fulfillments and potential refunds. Keep unfulfilled obligations visible outside the contribution display.

The calculator does not produce deferred-revenue accounting, refund liability, tax treatment, or cash-flow statements. Use approved finance records for those jobs.

Keep customer records outside the browser tool

Use invented numbers or approved aggregates. The calculator runs locally in the browser and does not connect to Shopify or upload contract, payment, address, order, or customer data.

Public evidence must never include subscriber names, emails, addresses, payment methods, contract IDs, order IDs, raw exports, credentials, or private app records.

Version the retention packet

Record product, variant, selling plan, billing model, price, discount, cadence, churn cohort, fulfillment schedule, costs, CAC source, owner, reviewer, result, and restoration version.

A material change opens a new packet. Do not overwrite prior churn, prepaid term, product cost, payment method, app price, or cancellation policy.

Test adverse states

Test a higher churn rate, lower price, higher product cost, failed renewal, skipped shipment, prepaid refund exposure, inventory shortage, app-cost increase, target miss, missing policy, conflict, and restore fixture.

The quality gate checks Ready, Review, Block, reset, mobile flow, images, links, sources, metadata, privacy, noindex staging, and strict route behavior.

Interpret Ready narrowly

Ready means both synthetic packets reconcile under the entered formula, evidence, margin target, payback limit, ownership, review, backup, and restoration controls.

It does not create a selling plan, modify a contract, charge a customer, reserve inventory, fulfill an order, issue a refund, publish a product, or authorize advertising.

Require nine shared confirmations

Before calculations can be interpreted, confirm invented public data, one fulfilled-shipment grain, the subscription app and selling plans, charge-event evidence, checkout disclosure, inventory and fulfillment, contract-order separation, independent review, and restoration authority.

A missing or non-yes confirmation Blocks both packets. The arithmetic cannot infer a store configuration, policy consent, future inventory, review, or human authority.

Validate dates and closed evidence

Record a real source-review date, a seller-policy effective date no later than the reviewed source, and a positive whole minimum evidence duration. Preserve the actual cohort and fulfillment period separately.

Impossible dates, postdated seller policy, symbols in numeric inputs, words used as counts, or a fractional evidence duration Block rather than being coerced.

Quarantine twenty-one derived values

Each packet produces recognized revenue, payment cost, other cost, total variable cost, contribution, margin, modeled shipments, term contribution before CAC, term contribution after CAC, and CAC payback shipments. The comparison adds one signed contribution difference.

Any structural Block makes all twenty-one derived values Unavailable. Do not reconstruct hidden cents, percentages, term totals, or payback values outside the tool.

Separate contract actions from order actions

Skip, pause, resume, cancel, product, quantity, cadence, address, and payment-method changes belong to subscription-contract evidence. Order edits, cancellation, fulfillment, and refunds have distinct effects and may require separate app actions.

Editing an order does not update the subscription contract for future fulfillments. Cancellation does not prove that a refund occurred.

Model inventory at the fulfillment event

For prepaid subscriptions, Shopify documents that inventory is reserved when each fulfillment date arrives rather than reserving the entire subscription term when the order is created.

Record upcoming inventory, oversell configuration, insufficient-inventory billing attempts, fulfillment location, shipping profile, and high-risk handling. Do not claim that initial checkout proves future stock.

Audit checkout disclosure

The protected checkout packet records subscription frequency, discount, shipping cost per delivery, cancellation-policy agreement, and the plan-specific wording boundary.

A favorable price or margin does not repair missing consent or inaccurate disclosure. This calculator stores only an evidence summary and never accesses a customer checkout.

Version pay-per-delivery and prepaid evidence separately

Pay-per-delivery creates a new order on the recurring schedule. Prepaid collects one advance payment and moves one order through scheduled fulfillment states. Preserve separate charge, order, inventory, fulfillment, refund, and policy versions.

Do not merge the models into one cash-flow row or use one app screen as proof of every downstream state.

Keep human authority outside the calculation

The owner and independent reviewer approve evidence; authorized store operators alone may create or change products, selling plans, contracts, policies, prices, or fulfillment settings.

The calculator cannot publish, charge, pause, cancel, refund, reserve inventory, or restore a Shopify configuration. Ready is a bounded evidence result.

Release the complete cluster

Index the working tool and ten dedicated support pages together only after content, originality, official sources, images, links, accessibility, tests, backups, deployment, and live verification pass.

Search signals are later measurements rather than a release prerequisite. Quality, ordered production, rollback, and policy correctness still control publication.

Sources and further reading

Related Seller Profit Guard tools

Use the interactive tool

Enable JavaScript to open the calculator and process browser-local inputs. The explanatory content and source links remain available without JavaScript.

Related guide: Define monthly and prepaid subscription formula, churn, scheduled fulfillment, CAC, policy, evidence, decision, and restoration controls.

This tool provides operating estimates, not tax, accounting, legal, financial, or marketplace-policy advice. Verify current official sources and your own records before changing prices or operations.