[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-0a7e0f89-2d52-4c10-9f3c-02dc97add844":3,"$fYi71W_ryvlKYKPJpjizs2mMFAmV5YLy99k4c-Rwu-_Y":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"0a7e0f89-2d52-4c10-9f3c-02dc97add844","monetization","数字产品货币化策略与实施 - Stripe、订阅、定价实验、免费增值、升级流程、流失预防、收入优化和SaaS商业模式。","cat_life_career","mod_other","sickn33,other","---\nname: monetization\ndescription: \"Estrategia e implementacao de monetizacao para produtos digitais - Stripe, subscriptions, pricing experiments, freemium, upgrade flows, churn prevention, revenue optimization e modelos de negocio SaaS.\"\nrisk: none\nsource: community\ndate_added: '2026-03-06'\nauthor: renat\ntags:\n- monetization\n- stripe\n- saas\n- pricing\n- subscriptions\ntools:\n- claude-code\n- antigravity\n- cursor\n- gemini-cli\n- codex-cli\n---\n\n# MONETIZATION - Do Produto ao Revenue\n\n## Overview\n\nEstrategia e implementacao de monetizacao para produtos digitais - Stripe, subscriptions, pricing experiments, freemium, upgrade flows, churn prevention, revenue optimization e modelos de negocio SaaS. Ativar para: integrar Stripe, criar planos de assinatura, pricing strategy, upgrade\u002Fdowngrade, webhook de pagamento, trial gratuito, churn, LTV\u002FCAC, unit economics, modelo de negocio.\n\n## When to Use This Skill\n\n- When you need specialized assistance with this domain\n\n## Do Not Use This Skill When\n\n- The task is unrelated to monetization\n- A simpler, more specific tool can handle the request\n- The user needs general-purpose assistance without domain expertise\n\n## How It Works\n\n> Price is what you pay. Value is what you get. - Warren Buffett\n> A monetizacao perfeita captura valor proporcional ao valor entregue.\n\n---\n\n## A Regra De Ouro\n\nUsuarios pagam quando:\n1. O produto resolve um problema real (need)\n2. A solucao e melhor que alternativas (differentiation)\n3. O preco e percebido como justo (value perception)\n4. O momento de cobranca e natural (timing)\n\n## Erros Classicos\n\n- Cobranca antes de mostrar valor (kill activation)\n- Preco muito baixo (sinaliza baixa qualidade)\n- Planos demais (paralisia de escolha)\n- Trial sem carta de credito (baixa conversao)\n- Churn invisivel (sem alertas de cancelamento iminente)\n\n---\n\n## Setup Inicial\n\n```bash\npip install stripe\n\n## Ou\n\nnpm install stripe\n```\n\n```python\n\n## Config.Py\n\nimport stripe\nimport os\n\nstripe.api_key = os.environ[\"STRIPE_SECRET_KEY\"]\nSTRIPE_WEBHOOK_SECRET = os.environ[\"STRIPE_WEBHOOK_SECRET\"]\n\nPLANS = {\n    \"free\": None,\n    \"pro\": os.environ[\"STRIPE_PRICE_PRO\"],\n    \"business\": os.environ[\"STRIPE_PRICE_BIZ\"],\n}\n```\n\n## Criar Customer E Subscription\n\n```python\ndef create_customer(email: str, name: str, user_id: str) -> str:\n    customer = stripe.Customer.create(\n        email=email,\n        name=name,\n        metadata={\"user_id\": user_id}\n    )\n    return customer.id\n\ndef create_subscription(customer_id: str, price_id: str, trial_days: int = 14):\n    subscription = stripe.Subscription.create(\n        customer=customer_id,\n        items=[{\"price\": price_id}],\n        trial_period_days=trial_days,\n        payment_behavior=\"default_incomplete\",\n        expand=[\"latest_invoice.payment_intent\"],\n    )\n    return {\n        \"subscription_id\": subscription.id,\n        \"client_secret\": subscription.latest_invoice.payment_intent.client_secret,\n        \"status\": subscription.status\n    }\n```\n\n## Checkout Session (Recomendado Para Conversao)\n\n```python\ndef create_checkout_session(\n    customer_id: str,\n    price_id: str,\n    success_url: str,\n    cancel_url: str,\n    trial_days: int = 14\n) -> str:\n    session = stripe.checkout.Session.create(\n        customer=customer_id,\n        mode=\"subscription\",\n        line_items=[{\"price\": price_id, \"quantity\": 1}],\n        subscription_data={\"trial_period_days\": trial_days},\n        success_url=success_url + \"?session_id={CHECKOUT_SESSION_ID}\",\n        cancel_url=cancel_url,\n        allow_promotion_codes=True,\n    )\n    return session.url\n```\n\n## Customer Portal (Self-Service)\n\n```python\ndef create_portal_session(customer_id: str, return_url: str) -> str:\n    session = stripe.billing_portal.Session.create(\n        customer=customer_id,\n        return_url=return_url,\n    )\n    return session.url\n```\n\n## Webhook - Processar Eventos\n\n```python\nfrom fastapi import Request, HTTPException\nimport stripe\n\nasync def stripe_webhook(request: Request):\n    payload = await request.body()\n    sig_header = request.headers.get(\"stripe-signature\")\n\n    try:\n        event = stripe.Webhook.construct_event(\n            payload, sig_header, STRIPE_WEBHOOK_SECRET\n        )\n    except ValueError:\n        raise HTTPException(status_code=400, detail=\"Invalid payload\")\n    except stripe.error.SignatureVerificationError:\n        raise HTTPException(status_code=400, detail=\"Invalid signature\")\n\n    handlers = {\n        \"customer.subscription.created\": handle_subscription_created,\n        \"customer.subscription.updated\": handle_subscription_updated,\n        \"customer.subscription.deleted\": handle_subscription_deleted,\n        \"invoice.payment_succeeded\": handle_payment_succeeded,\n        \"invoice.payment_failed\": handle_payment_failed,\n        \"customer.subscription.trial_will_end\": handle_trial_ending,\n    }\n\n    handler = handlers.get(event[\"type\"])\n    if handler:\n        await handler(event[\"data\"][\"object\"])\n\n    return {\"status\": \"ok\"}\n```\n\n## Verificar Status Da Subscription\n\n```python\ndef get_subscription_status(customer_id: str) -> dict:\n    subscriptions = stripe.Subscription.list(\n        customer=customer_id,\n        status=\"all\",\n        limit=1\n    )\n    if not subscriptions.data:\n        return {\"tier\": \"free\", \"status\": \"none\"}\n\n    sub = subscriptions.data[0]\n    return {\n        \"tier\": get_tier_from_price(sub.items.data[0].price.id),\n        \"status\": sub.status,\n        \"trial_end\": sub.trial_end,\n        \"current_period_end\": sub.current_period_end,\n        \"cancel_at_period_end\": sub.cancel_at_period_end,\n    }\n```\n\n---\n\n## Framework De Pricing Para Saas\n\n**Metodo 1: Value-Based Pricing (Recomendado)**\n```\n1. Calcule o valor economico entregue ao usuario\n   Ex: produto economiza 2h\u002Fsemana = R$ 200\u002Fmes de valor\n2. Capture 10-30% do valor criado\n   Ex: R$ 29\u002Fmes = 14% do valor\n3. Valide com pesquisa de willingness-to-pay\n4. Teste 3 price points (A\u002FB test)\n```\n\n**Metodo 2: Competitive Anchor**\n```\nReferencia: ChatGPT Plus = $20\u002Fmes (R$ 100)\nAnchor: Notion = R$ 32\u002Fmes\nPosicao: Pro = R$ 29\u002Fmes (mais barato que ChatGPT, similar ao Notion)\nMensagem: Tudo que o ChatGPT faz, por voz no Alexa\n```\n\n## Psicologia De Pricing\n\n```\nR$ 29\u002Fmes (nao R$ 30 - efeito do digito esquerdo)\nPlano anual com desconto claro: R$ 249\u002Fano (economize R$ 99)\nDestaque no plano que voce quer vender (visual hierarchy)\nAncoragem: mostra o plano caro primeiro\nTrial sem cartao para ativacao, com cartao para retencao\nBadge Mais popular no plano middle\n```\n\n## Estrutura De Planos (3 E O Numero Certo)\n\n| Feature             | Free    | Pro        | Business   |\n|---------------------|---------|------------|------------|\n| Preco               | Gratis  | R$ 29\u002Fmes  | R$ 99\u002Fmes  |\n| Conversas\u002Fmes       | 50      | Ilimitado  | Ilimitado  |\n| Memoria             | 7 dias  | 1 ano      | Permanente |\n| Board especialistas | Nao     | Sim        | Sim        |\n| Multi-usuarios      | Nao     | Nao        | Ate 10     |\n| API access          | Nao     | Nao        | Sim        |\n| Suporte             | Nao     | Email      | Priority   |\n\n---\n\n## Sinais De Churn Iminente\n\n```python\nCHURN_SIGNALS = {\n    \"high_risk\": [\n        \"nao logou nos ultimos 14 dias\",\n        \"uso caiu >70% em 2 semanas\",\n        \"abriu cancelamento mas nao concluiu\",\n        \"ticket de suporte aberto sem resolucao\",\n    ],\n    \"medium_risk\": [\n        \"nao logou em 7 dias\",\n        \"uso caiu >40%\",\n        \"nao completou onboarding\",\n        \"nunca usou feature core\",\n    ]\n}\n```\n\n## Sequencia Anti-Churn\n\n```\nDia 0:  Usuario nao usa por 7 dias\n        -> Email: Sentimos sua falta. O que aconteceu?\n\nDia 3:  Sem resposta\n        -> Push\u002FEmail: case study de usuario similar com sucesso\n\nDia 7:  Nao voltou\n        -> Email: oferta especial (20% off por 3 meses)\n\nDia 14: Trial expirando\n        -> In-app modal + email urgente: Sua conta vai dormir em 3 dias\n\nDia 30: Cancelou\n        -> Offboarding email: Lamentamos ver voce ir.\n        -> 3 meses depois: reativacao com novidades\n```\n\n## Exit Survey (Obrigatorio)\n\n```python\nCANCELLATION_REASONS = [\n    \"Muito caro\",\n    \"Nao uso o suficiente\",\n    \"Falta funcionalidade X\",\n    \"Encontrei alternativa melhor\",\n    \"Problemas tecnicos\",\n    \"Outro\"\n]\n\n## Falta Feature -> Roadmap + Notificacao Quando Lancar\n\n```\n\n---\n\n## Calculos Essenciais\n\n```python\ndef calculate_unit_economics(\n    mrr: float,\n    customers: int,\n    new_customers: int,\n    churned: int,\n    cac_total: float,\n):\n    arpu = mrr \u002F customers\n    churn_rate = churned \u002F customers\n    ltv = arpu \u002F churn_rate\n    cac = cac_total \u002F new_customers\n    ltv_cac = ltv \u002F cac\n    months_to_recover_cac = cac \u002F arpu\n\n    return {\n        \"ARPU\": f\"R$ {arpu:.2f}\",\n        \"Churn Rate\": f\"{churn_rate*100:.1f}%\",\n        \"LTV\": f\"R$ {ltv:.0f}\",\n        \"CAC\": f\"R$ {cac:.0f}\",\n        \"LTV\u002FCAC\": f\"{ltv_cac:.1f}x\",\n        \"Payback\": f\"{months_to_recover_cac:.1f} meses\",\n        \"Status\": \"Saudavel\" if ltv_cac > 3 else \"Otimizar\"\n    }\n```\n\n## Benchmarks Saas B2C Brasil\n\n| Metrica               | Ruim  | Ok     | Bom    | Excelente |\n|-----------------------|-------|--------|--------|-----------|\n| Churn Mensal          | >7%   | 5-7%   | 2-5%   | \u003C2%       |\n| LTV\u002FCAC               | \u003C1x   | 1-3x   | 3-5x   | >5x       |\n| Payback               | >18m  | 12-18m | 6-12m  | \u003C6m       |\n| Conversao trial->pago | \u003C3%   | 3-8%   | 8-15%  | >15%      |\n| MoM Growth            | \u003C5%   | 5-10%  | 10-20% | >20%      |\n\n---\n\n## Dashboard De Revenue (Metricas Diarias)\n\n```\nMRR atual: R$ XX.XXX\n  New MRR (novos assinantes): +R$ X.XXX\n  Expansion MRR (upgrades): +R$ XXX\n  Contraction MRR (downgrades): -R$ XXX\n  Churned MRR (cancelamentos): -R$ XXX\n  Net New MRR: +\u002F- R$ XXX\n\nARR (Annualized): R$ XX.XXX x 12\nChurn Rate: X.X%\nNet Revenue Retention: XXX% (meta: >100%)\n```\n\n## Automacao De Revenue Com Stripe\n\n```python\nasync def check_usage_and_upsell(user_id: str, usage: dict):\n    if usage[\"conversations_this_month\"] >= 45:\n        await send_upgrade_prompt(\n            user_id=user_id,\n            message=\"Voce esta usando 90% do seu limite. Faca upgrade para Pro.\",\n            cta_url=f\"\u002Fupgrade?utm=usage-limit\"\n        )\n```\n\n---\n\n## 7. Comandos Rapidos\n\n| Comando              | Acao                                     |\n|----------------------|------------------------------------------|\n| \u002Fstripe-setup        | Configura Stripe do zero                 |\n| \u002Fpricing-analysis    | Analisa estrategia de pricing atual      |\n| \u002Fchurn-playbook      | Sequencia anti-churn personalizada       |\n| \u002Funit-economics      | Calcula LTV\u002FCAC e saude financeira       |\n| \u002Fupgrade-flow        | Design do fluxo de upgrade               |\n| \u002Frevenue-dashboard   | Template de dashboard de revenue         |\n| \u002Ftrial-optimization  | Otimiza conversao de trial               |\n\n## Best Practices\n\n- Provide clear, specific context about your project and requirements\n- Review all suggestions before applying them to production code\n- Combine with other complementary skills for comprehensive analysis\n\n## Common Pitfalls\n\n- Using this skill for tasks outside its domain expertise\n- Applying recommendations without understanding your specific context\n- Not providing enough project context for accurate analysis\n\n## Related Skills\n\n- `analytics-product` - Complementary skill for enhanced analysis\n- `growth-engine` - Complementary skill for enhanced analysis\n- `product-design` - Complementary skill for enhanced analysis\n- `product-inventor` - Complementary skill for enhanced analysis\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,195,793,"2026-05-16 13:29:22",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"其他","other","mdi-page-next-outline","其他类型Skill",5,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"职场发展","career","mdi-briefcase-outline","面试准备、简历优化、职业规划",4,575,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"80680446-746c-4c58-a6da-1b002eea717b","1.0.0","monetization.zip",4872,"uploads\u002Fskills\u002F0a7e0f89-2d52-4c10-9f3c-02dc97add844\u002Fmonetization.zip","862997b7658d137161122d544018171fcf13f57864bf909c9a5d181d1980950c","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":11861}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]