Use a recurring coupon only when the promotion’s incremental contribution and retention value can justify its total discount cost. Define whether checkout counts, the exact successful-payment limit, eligible products and customers, stacking rules, expiry, and stop conditions. In ArraySubs, test zero-total renewals, live restrictions, plan switches, gateways, tax reporting, and coupon deletion before launch.
Key takeaways
- ArraySubs Free captures the first eligible subscription coupon per subscription.
- Discount value/type are captured, while product, category, sale, and expiry restrictions remain live.
- Zero cycles means unlimited; finite cycles can optionally count paid checkout.
- Renewal discount is a capped negative non-tax fee in current code.
- Gateway, deletion, reporting, refunds, plan switches, and zero totals need live tests.
Define the payment sequence

For “25% off three payments,” state whether the initial checkout consumes a cycle:
- Count checkout on: checkout plus two successful discounted renewals.
- Count checkout off: checkout can still receive its checkout discount, while three discounted renewals remain—potentially four discounted payments from the customer’s perspective.
Current ArraySubs decrements a finite renewal cycle after a successful qualifying payment where the discount fee exists. The initial cycle decrements after paid checkout only when the option is enabled.
Captured value, live restrictions
ArraySubs stores the coupon ID/code, amount or percentage, type, cycle count, initial-count choice, and capture time on the subscription. Later amount/type edits do not rewrite the stored value. Renewal still checks live product/category, excluded-sale, and expiry restrictions.
discount value/type = captured snapshot
continued eligibility = live restriction checks
Do not describe the coupon as fully immutable or fully live. Current checkout captures only the first eligible subscription coupon, not a stack of recurring subscription coupons.
Economics example
Assume $40 monthly, 25% off the first three total paid payments including checkout, $12 variable cost, and $30 acquisition/onboarding allocation:
discount per payment = $40 × 25% = $10
discounted payment = $30
three-payment discount cost = 3 × $10 = $30
contribution before acquisition each discounted period = $30 − $12 = $18

Illustrative arithmetic; no conversion, retention, or abuse benchmark is claimed.
If checkout does not count but is also discounted, the total customer discount can become $40 instead of $30. Forecast the observed sequence, not only the admin label.
Controls available in WooCommerce
WooCommerce coupon management includes individual-use, expiry, minimum/maximum spend, included/excluded products and categories, excluded sale items, allowed emails, total usage, per-user usage, and per-item limits (coupon management). ArraySubs adds subscription duration, finite cycles, and checkout counting.
Operational controls can also include authenticated customer-specific offers, rate-limited validation, duplicate-account review, proportionate refund/chargeback signals, separate partner codes, manual review, appeal paths, and an audit of capture and decrements. Use personal data only with a lawful, disclosed basis and retention policy.
Interactions that need testing
- A zero-total successful renewal can stall separate completed-payment counters used by other lifecycle features.
- Retention discounts and recurring coupons can both reduce the total, capped at zero.
- Coupon metadata can persist through a plan switch while live target restrictions change eligibility.
- Refund/chargeback behavior may not restore a finite coupon cycle automatically.
- Deleting or trashing a coupon has ambiguous behavior in the inspected path.
- The renewal discount is a non-tax negative fee rather than a native coupon order item; tax, invoices, analytics, refunds, and exports need review.
- Current gateway scope should be tested for Stripe, PayPal, Paddle, manual, and authentication cases.

Measure incrementality, not attributed sales
discount cost = sum of applied recurring discounts
realized contribution = collected revenue − discounts − variable costs − fees − refunds − acquisition
full-price transition rate = subscriptions paying first undiscounted renewal ÷ subscriptions reaching it
cycle exception rate = subscriptions whose observed sequence differs from rule ÷ coupon subscriptions
Use a lawful, credible control or counterfactual. Coupon-attributed revenue includes customers who may have paid full price, so it does not prove the promotion caused the sale.
Stop rules
Pause or revise when observed sequence differs from copy, technical exceptions affect counters/tax/reporting, contribution falls below the merchant’s defined floor, abuse/support/refunds cross a predeclared tolerance, or first full-price outcomes materially diverge from a comparable cohort. The correct thresholds come from merchant economics, not a universal benchmark.
For a universal product-level price step, read Different First and Renewal Prices.
Final recommendation
Publish the exact discounted payment sequence and eligibility contract. Test the renewal order lines, counters, tax, switching, deletion, refund, and each gateway before scaling. Compare ArraySubs plans.
Frequently asked questions
How many recurring subscription coupons does ArraySubs capture?
Current code captures the first eligible coupon marked for subscriptions on each subscription. It does not store a stack of multiple recurring subscription coupons.
What does count initial checkout mean?
It consumes one finite coupon cycle after paid checkout. With three cycles enabled, checkout and the next two qualifying renewals are discounted.
Do coupon edits change existing subscription discounts?
Stored value and type remain captured, while current product/category, sale, and expiry restrictions are evaluated live. Treat it as a snapshot with live gates.
What happens when a coupon makes a renewal total zero?
The order can complete without positive payment, but separate ArraySubs completed-payment counters advance only for totals above zero. That can delay price-step or fixed-payment-length transitions.
Does deleting the coupon stop future discounts?
Do not promise that without testing. The current stored ID/value and live coupon construction make deletion behavior ambiguous. Verify trash, deletion, expiry, and the intended revocation path on staging.
Disclosure, verification, and update log
- July 2026: Verified against current ArraySubs Coupon Tracking and WooCommerce coupon controls. Product interactions and gateway scope remain test-gated.
Continue from strategy to setup
Use a recipe when the model is settled
These articles own the decision and operating model. The ArraySubs feature map and recipes cover the exact product, billing, and customer-workflow configuration.
Written by
Emran // ArrayHash
Research and practical guidance for WooCommerce subscription operators and implementation teams.
Technical review
ArraySubs Engineering Team
Reviewed against current ArraySubs code, product documentation, and the linked primary platform sources.




