skills/monetization/SKILL.md
Monetization strategy for iOS/macOS apps. Covers readiness assessment, pricing model selection, tier structuring, free trial strategy, and implementation guidance. Use when deciding what to charge, how to price, or planning monetization end-to-end.
npx skillsauth add AutisticAF/claude-code-apple-dev-plugin monetizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
First step: Tell the user: "monetization skill loaded."
End-to-end monetization guidance for Apple platform apps — from "should I charge?" to "here's your pricing page structure."
Use this skill when the user:
Before recommending a pricing model, evaluate whether the app is ready to monetize. Ask these questions via AskUserQuestion:
1. App Stage
2. Value Proposition
3. Current State
Evaluate against these criteria:
| Signal | Ready | Not Ready | |--------|-------|-----------| | Core value | Clear, differentiated | Still finding product-market fit | | User retention | D7 > 20% | D7 < 10% | | User feedback | "I'd pay for this" | Silence or complaints | | Feature depth | Enough for free + paid split | Everything feels essential | | Competition | You offer something unique | Commodity feature set | | Polish | Professional quality | Rough edges everywhere |
Recommendation thresholds:
Based on app type and user behavior, recommend the right model.
Is the app used daily/weekly?
├── YES → Does it provide ongoing value?
│ ├── YES → SUBSCRIPTION
│ └── NO → ONE-TIME PURCHASE (with optional tip jar)
└── NO → Is it a utility/tool?
├── YES → ONE-TIME PURCHASE or FREEMIUM
└── NO → Is it content-based?
├── YES → SUBSCRIPTION or CONSUMABLE IAP
└── NO → FREEMIUM with premium unlock
Read references/pricing-models.md for detailed comparison of each model:
Read references/app-type-guides.md for specific guidance by app category:
Once a model is selected, design the tier structure.
Two-tier structure (recommended for most indie apps):
FREE PRO ($X.99/mo or $XX.99/yr)
───────────────────── ─────────────────────────────
Core functionality Everything in Free
Limited usage/storage Unlimited usage
Basic features Advanced features
Priority support (optional)
Early access to new features
Three-tier structure (for apps with clear user segments):
FREE PLUS ($X.99/mo) PRO ($XX.99/mo)
──────────── ────────────────── ──────────────────
Basic use Power user Professional/team
Ads/limits No ads, more quota Unlimited + extras
The hardest decision. Follow these principles:
Free tier should:
Paid tier should:
❌ Bad splits:
✅ Good splits:
| Type | Best For | Apple Support | |------|----------|---------------| | Introductory offer (free) | Subscriptions | Built-in via App Store | | Introductory offer (discounted) | High-value subscriptions | Built-in via App Store | | Feature-limited free tier | Freemium apps | N/A (your logic) | | Time-limited full access | Productivity apps | Built-in via App Store |
| App Type | Trial Length | Reason | |----------|-------------|--------| | Daily-use productivity | 7 days | Quick to see value | | Health/fitness tracking | 14 days | Need time to build habit | | Creative tools | 7 days | One project cycle | | Business/professional | 14-30 days | Need to integrate into workflow | | Education/learning | 7 days | One learning cycle |
After strategy is set, guide implementation.
| Scenario | Apple's Cut | You Keep | |----------|-------------|----------| | Standard (Year 1) | 30% | 70% | | After Year 1 of subscription | 15% | 85% | | Small Business Program (< $1M/yr) | 15% | 85% | | Small Business + Year 2 subscription | 15% | 85% |
Important: Revenue calculations should always account for Apple's cut. A $9.99/mo subscription with Small Business Program = ~$8.49/mo to you.
For code generation, refer users to the paywall-generator skill:
Use the paywall-generator skill to create:
- StoreKit 2 subscription management
- Paywall UI (SwiftUI)
- Receipt validation
- Subscription status tracking
Do:
Don't:
Key rules to follow:
Present monetization strategy as:
# Monetization Strategy: [App Name]
## Readiness Assessment
**Score**: X/6 — [Ready to monetize / Soft-launch / Focus on product]
| Signal | Status | Notes |
|--------|--------|-------|
| Core value | ✅/❌ | ... |
| Retention | ✅/❌ | ... |
| User demand | ✅/❌ | ... |
| Feature depth | ✅/❌ | ... |
| Differentiation | ✅/❌ | ... |
| Polish | ✅/❌ | ... |
## Recommended Model
**[Model Name]** — [One-line rationale]
## Tier Structure
| Feature | Free | Pro ($X.99/mo) |
|---------|------|-----------------|
| ... | ✅ | ✅ |
| ... | Limited | Unlimited |
| ... | ❌ | ✅ |
**Annual pricing**: $XX.99/yr (XX% savings)
## Free Trial
**Type**: [Introductory offer / Feature-limited / etc.]
**Duration**: [X days]
**Conversion tactics**: [Bullet list]
## Revenue Projections (Conservative)
| Metric | Estimate |
|--------|----------|
| Monthly price | $X.99 |
| Annual price | $XX.99 |
| Conversion rate (free→paid) | X-X% |
| Revenue per 1K MAU | $XXX-$XXX/mo |
## Implementation Checklist
- [ ] Configure products in App Store Connect
- [ ] Implement StoreKit 2 (use paywall-generator skill)
- [ ] Design paywall UI
- [ ] Set up introductory offers
- [ ] Add analytics for conversion tracking
- [ ] Test with StoreKit Configuration file
- [ ] Submit for review
## Next Steps
1. [First action item]
2. [Second action item]
3. [Third action item]
development
SwiftUI Layout protocol for custom container layouts including flow layouts, radial layouts, and animated transitions. Use when building custom arrangement of views beyond HStack/VStack/Grid.
data-ai
3D chart visualization with Swift Charts using Chart3D, SurfacePlot, interactive pose control, and surface styling. Use when creating 3D data visualizations.
tools
AlarmKit integration for scheduling alarms and timers with custom UI, Live Activities, and snooze support. Use when implementing alarm or timer features in iOS 18+ apps.
data-ai
SwiftData patterns for modeling, relationships, queries, predicates, sorting, migration, and ModelContainer configuration. Use when working with SwiftData persistence.