Every pricing change used to hijack our roadmap. Engineers patched JSON files, QA reran smoke tests, and finance waited for us to redeploy. We finally pulled pricing out of the codebase and into UsageBox’s catalog so product managers could run experiments without filing tickets.
How We Model the Catalog
Everything lives in Firestore:
- Products describe the services we sell.
- Plans bundle products, quotas, and commitments.
- Meters set how usage is rated.
- Entitlements toggle features on or off per plan.
Because each change is versioned, we can diff an experiment against production before anything goes live.
The Change Workflow
- Clone the current plan and name the experiment clearly.
- Adjust meters, price points, or entitlements in the dashboard.
- Assign the plan to a limited cohort, usually a handful of beta accounts.
- Schedule a rollback time so we can revert automatically if metrics trend badly.
The backend starts rating new usage with the updated rules immediately. Existing subscribers stay on their prior version until we migrate them intentionally.
Scenarios We Repeat Often
- New feature launch: add a metered add-on with an introductory price, then ratchet up once we understand adoption.
- Regional pricing: duplicate plans per currency and use customer attributes to assign them.
- Promotions: set an effective start and end date so discounts stop without manual cleanup.
Metrics That Tell Us If It Worked
- Trial-to-paid conversion for the cohort on the new plan
- Average revenue per account versus the control group
- Support tickets tagged as “pricing” or “quota”
- Upgrade/downgrade flow completion rates
Tips We Learned the Hard Way
- Keep change logs in Confluence so go-to-market teams know what shifted and why.
- Send proactive customer emails for any adjustment that could impact an invoice.
- Measure experiments for at least one full billing cycle before calling a winner.
By treating pricing as configuration instead of code, we iterate faster and spend our engineering calories on the product itself. If you’re still editing constants and shipping hotfixes, moving your catalog into UsageBox will feel like a breath of fresh air.