ワンクリックで
stripe-revenue
Stripe revenue intelligence — MRR tracking, cohort analysis, LTV calculation, churn diagnostics from Stripe API
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Stripe revenue intelligence — MRR tracking, cohort analysis, LTV calculation, churn diagnostics from Stripe API
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Email marketing automation — drip sequences, deliverability, template patterns, provider APIs (Resend, SendGrid, Postmark)
Funnel diagnostics engine — bottleneck detection, cross-data correlation, AARRR benchmarks by vertical
High-Velocity Advertising (HVA) — the discipline for creative discovery at machine speed. CLEAR decision rule, the five-layer Stack, the Read Ladder, the two-clocks asymmetry, Benjamini-Hochberg correction, the Vault moat, and the Fit Boundary. The spec behind /hva, /hva-forge, /hva-lint, /hva-review, /hva-vault and the hva-desk agent.
Direct response copywriting framework for paid ads — Hormozi offers, PAS, AIDA, variation generation, LATAM hooks
Synthetic Demand Validation (SDV) — predict purchase intent, price tolerance, and objections for ad creatives, offers, and landing copy by eliciting free-text reactions from a synthetic persona panel and mapping them to Likert distributions. Comparative ranking is the headline signal. Use for "will this convert", "which variant wins", "is $X the right price", "pre-test this creative/offer/copy before spend".
Cross-channel GTM orchestration — channel sequencing, attribution models, retargeting chains, multi-touch journeys
| name | stripe-revenue |
| description | Stripe revenue intelligence — MRR tracking, cohort analysis, LTV calculation, churn diagnostics from Stripe API |
Extract, calculate, and analyze revenue metrics from the Stripe API. This skill covers MRR computation, cohort analysis, LTV calculation, and churn diagnostics for SaaS businesses.
| Object | What It Represents | Key Fields |
|---|---|---|
Customer | A paying or trial user | id, email, created, metadata |
Subscription | Recurring billing relationship | status, current_period_start/end, items, cancel_at |
Invoice | A billing event | total, status, paid, period_start/end, subscription |
PaymentIntent | A payment attempt | amount, status, created, customer |
Charge | A completed payment | amount, paid, refunded, customer |
Price | A pricing configuration | unit_amount, recurring.interval, product |
Product | What you sell | name, metadata, active |
| Status | Meaning | Count as Active? |
|---|---|---|
trialing | In free trial period | Yes (for activation metrics) |
active | Paying and current | Yes |
past_due | Payment failed, retrying | Yes (grace period) |
unpaid | All retries failed | No |
canceled | User cancelled | No |
incomplete | First payment failed | No |
incomplete_expired | First payment expired | No |
paused | Subscription paused | No |
STRIPE_SECRET_KEY=sk_live_XXXXXX # Server-side only, never in frontend
STRIPE_PUBLISHABLE_KEY=pk_live_XXXXX # Safe for frontend
STRIPE_WEBHOOK_SECRET=whsec_XXXXXX # For webhook signature verification
MRR = Sum of (subscription.items[].price.unit_amount * quantity)
for all subscriptions where status in ['active', 'trialing', 'past_due']
normalized to monthly
| Billing Interval | Normalization |
|---|---|
| Monthly | amount as-is |
| Quarterly | amount / 3 |
| Semi-annual | amount / 6 |
| Annual | amount / 12 |
| Weekly | amount * 4.33 |
New MRR: MRR from customers who subscribed this month
Expansion MRR: MRR increase from upgrades, add-ons, quantity increases
Contraction MRR: MRR decrease from downgrades, quantity decreases
Churned MRR: MRR lost from cancelled subscriptions
Reactivation MRR: MRR from previously-churned customers who resubscribed
Net New MRR = New + Expansion + Reactivation - Contraction - Churned
# List all active subscriptions (paginate with starting_after)
GET /v1/subscriptions?status=active&limit=100
# Include trialing and past_due for complete MRR picture
GET /v1/subscriptions?status=active&limit=100
GET /v1/subscriptions?status=trialing&limit=100
GET /v1/subscriptions?status=past_due&limit=100
For each subscription:
1. Sum all subscription items: item.price.unit_amount * item.quantity
2. Normalize to monthly based on price.recurring.interval
3. Apply any discount (subscription.discount or coupon)
4. Add to running MRR total
Discount handling:
- percent_off: MRR * (1 - percent_off / 100)
- amount_off: MRR - (amount_off / interval_months)
- Check coupon.duration: 'forever', 'once', 'repeating'
| Metric | Formula | Healthy Range (SaaS) |
|---|---|---|
| MRR Growth Rate | (MRR_now - MRR_prev) / MRR_prev | 10-20% MoM (early), 5-10% (growth) |
| Net Revenue Retention | (MRR_start + expansion - contraction - churn) / MRR_start | >100% (best-in-class >120%) |
| Gross Churn Rate | Churned MRR / Starting MRR | <5% monthly, <3% ideal |
| ARPU | Total MRR / Active Subscribers | Trending up = good |
| LTV | ARPU / Monthly Churn Rate | >3x CAC minimum |
| LTV:CAC Ratio | LTV / CAC | 3:1 minimum, 5:1+ ideal |
| CAC Payback Period | CAC / (ARPU * Gross Margin) | <12 months |
| Quick Ratio | (New + Expansion) / (Contraction + Churn) | >4 = very healthy |
| Trial-to-Paid Rate | Paid conversions / Trial starts | 15-30% |
| Event | What Happened | Action |
|---|---|---|
customer.subscription.created | New subscription started | Track new MRR |
customer.subscription.updated | Plan change, quantity change | Track expansion/contraction |
customer.subscription.deleted | Subscription cancelled | Track churned MRR |
invoice.paid | Payment succeeded | Confirm revenue |
invoice.payment_failed | Payment failed | Alert, track at-risk MRR |
customer.subscription.trial_will_end | Trial ending in 3 days | Trigger conversion email |
checkout.session.completed | Checkout completed | Track new customer |
| Type | Signal | Intervention |
|---|---|---|
| Voluntary | Customer cancels via UI/support | Exit survey, save offer, win-back sequence |
| Involuntary | Payment fails, card expires | Dunning emails, card update prompts, retry logic |
| Downgrade | Customer moves to cheaper plan | Understand why, improve value prop |
| Trial Churn | Trial expires without conversion | Better onboarding, trial extension offer |
Stripe's Smart Retries handle some of this, but supplement with:
customer.source.expiring event)STRIPE_SECRET_KEY=sk_live_XXXXXX # For API calls
STRIPE_WEBHOOK_SECRET=whsec_XXXXXX # For webhook verification
STRIPE_PUBLISHABLE_KEY=pk_live_XXXXXX # For frontend (Checkout, Elements)