plans: yearly back to 17% off ('2 months free' framing per pricing research)#8
Merged
Merged
Conversation
…990) Reverts common#7 (yearly @ 10% off) back to the original 17%-ish pricing expressed as exactly monthly x 10 — the mathematical form of "2 months free". Per PRICING-BEST-PRACTICES-2026-05-13.md (top recommendation #3, Athenic case study), the "2 months free" framing outperforms percentage-off copy by ~3.4x in conversion. To use that framing honestly we need yearly_cents == monthly_cents * 10. - hobby_yearly: 9720 -> 9000 cents ($97.20 -> $90/yr) - pro_yearly: 52920 -> 49000 cents ($529.20 -> $490/yr) - team_yearly: 214920 -> 199000 cents ($2149.20 -> $1990/yr) Tests: - Renamed TestYearlyDiscountIsExactly10Percent -> TestYearlyIsTwoMonthsFree (asserts (yearly/12)/monthly == 10/12 within 0.01). - Added TestYearlyIsExactlyMonthlyTimesTen — strict integer-cents lock so the "2 months free" claim is provable to the cent. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Reverts common#7 (yearly @ 10% off) back to the original ~17%-off pricing,
this time expressed as exactly
monthly_cents * 10so we can honestlyship the "2 months free" framing (pay 10, get 12).
Per
PRICING-BEST-PRACTICES-2026-05-13.mdtop recommendation #3 (Athenic case study), "2 months free" outperforms percentage-off copy by ~3.4x in conversion. The math (10/12 ≈ 16.67% off) is functionally the prior pricing — we just needed clean round numbers to use the framing.Price changes
Tests
TestYearlyDiscountIsExactly10Percent→TestYearlyIsTwoMonthsFree(asserts(yearly/12)/monthly == 10/12 ± 0.01).TestYearlyIsExactlyMonthlyTimesTen— strict integer-cents lock so the "2 months free" claim is provable to the cent.TestYearlyVariants_MirrorMonthlyLimits(limits drift guard) still passes.api/plans.yaml).Operator action required (post-merge)
The Razorpay plan IDs
RAZORPAY_PLAN_ID_HOBBY_YEARLY,RAZORPAY_PLAN_ID_PRO_YEARLY,RAZORPAY_PLAN_ID_TEAM_YEARLYcurrently point at plans priced at the 10%-off values ($97.20 / $529.20 / $2149.20). After this lands you must:RAZORPAY_PLAN_ID_*_YEARLYk8s secrets (same playbook as the original yearly rollout — see api/CLAUDE.md "k8s Secrets").Test plan
go test ./plans/...green (24 pass, 1 skip)