attio-deepline-enrich
Enrich records inside Attio with a clear cost gate before any credit is spent. Pull a chosen object (companies, people, or…
Build a full SaaS cohort analysis from a CRM (Attio/Stripe/CSV) joined to revenue (Stripe/Attio/CSV). Outputs a styled Excel workbook with conditional formatting (Customer Churn, MRR Churn, CAC Payback) plus per-section CSVs. Use when the user says "/cohort-analysis", "build a
Claude Code
$ npx -y skills add NachoLafuente/5050-gtm --skill cohort-analysis --agent claude-code
Codex
$ npx skills add NachoLafuente/5050-gtm --skill cohort-analysis -a codex -y
Cursor
$ npx skills add NachoLafuente/5050-gtm --skill cohort-analysis -a cursor -y
Gemini CLI
$ npx skills add NachoLafuente/5050-gtm --skill cohort-analysis -a gemini-cli -y
GitHub Copilot
$ npx skills add NachoLafuente/5050-gtm --skill cohort-analysis -a github-copilot -y
OpenCode
$ npx skills add NachoLafuente/5050-gtm --skill cohort-analysis -a opencode -y
Windsurf
$ npx skills add NachoLafuente/5050-gtm --skill cohort-analysis -a windsurf -y
name: cohort-analysis description: Build a full SaaS cohort analysis from a CRM (Attio/Stripe/CSV) joined to revenue (Stripe/Attio/CSV). Outputs a styled Excel workbook with conditional formatting (Customer Churn, MRR Churn, CAC Payback) plus per-section CSVs. Use when the user says "/cohort-analysis", "build a cohort table", "cohort analysis for <client>", "retention by signup month", or "show me NRR by cohort". One-shot, no warehouse, no cron.
Builds the full SaaS cohort suite from a CRM + money source: 11 sub-tables across 3 sections (Customer Churn, MRR Churn, CAC Payback) in a single Excel workbook with green→red conditional formatting, plus per-section CSVs for SQL/raw consumption.
Ask in order. Don't skip. Don't pick defaults silently.
1. **Where do your clients live?** (CRM source)
2. **Where's the money?** (revenue source)
3. **Want CAC payback analysis?** (optional)
4. **Gross margin?** (only if they said yes to #3)
5. **Output format?**
If they picked **Attio for money**, STOP and show this verbatim before going further:
> ⚠️ **Heads up, Attio doesn't store revenue history natively.** It only holds current attribute values, so we have to reconstruct the timeline from date attributes on each customer record. To do that I need three attribute slugs: > > 1. **Amount per period**: the recurring amount (e.g. `mrr`, `arr`, `subscription_amount`, `monthly_value`) > 2. **Date paid / first invoice**: when they started paying (e.g. `date_paid`, `subscription_start`, `first_invoice_date`) > 3. **Date churned**: *optional*. When they stopped paying. Leave blank and we'll assume they're still active today. > > Each customer becomes one event per month between date-paid and date-churned at the amount you give. **This works for steady-state subscriptions** but won't capture mid-cycle upgrades, downgrades, partial refunds, or one-off charges. For real revenue accuracy, point me at Stripe instead, or export your billing data to CSV. > > What are the three Attio attribute slugs? (paste them as `amount=mrr date_paid=date_paid date_churned=date_churned`)
Wait for them to give you the 3 slugs (or 2, if they're skipping `date_churned`).
| Source | Env var | |--------|---------| | Attio (CRM or money) | `ATTIO_API_KEY` | | Stripe (CRM or money) | `STRIPE_SECRET_KEY` | | CSV | none, just a path |
Run `python skills/cohort-analysis/run.py --check-env --crm <X> --money <Y>` to validate. If a key is missing, stop and tell the user to add it.
python skills/cohort-analysis/run.py \ --crm <attio|stripe|csv> \ --money <stripe|attio|csv> \ --cacs <path-to-cacs.csv> \ # optional, enables CAC payback section --gross-margin 0.8 \ # default 0.8 --output <all|xlsx|csv|sql|evidence> \ --out-dir /tmp/cohort-<client>-<date>
Optional flags:
Every run produces these metrics for every cohort × lifetime month:
**Customer-side (Section 1 of the workbook, 5 sub-tables)**
**Revenue-side (Section 2 of the workbook, 5 sub-tables)**
**Unit economics (Section 3 of the workbook, only if `--cacs` given)**
**Per-cohort base stats (in `00_summary.csv` and the workbook headers)**
Default output (`--ou
A growing collection of GTM skills for Claude Code, built by 5050Growth. Skills you can drop into Claude Code (or run as plain Python) to handle the GTM work that doesn't justify a SaaS subscription.
Enrich records inside Attio with a clear cost gate before any credit is spent. Pull a chosen object (companies, people, or…
B2B discovery call coach. Paste any transcript — Granola export, Fireflies, Fathom, plain text, a file path — and get a full…
Read-only CFO data dashboard for bootstrapped startups. Two modes, CSV templates (works with any stack: Attio/HubSpot/Salesforce…
Generate a tight pre-discovery-call prep brief from an intro email, referral, or company name. Outputs a 3-section scan doc (who…
Pull Google Search Console health (sitemap status, indexing coverage, 28-day search analytics) for a verified GSC property, then…
A build-measure-learn loop for your LinkedIn. Ingests your Creator analytics export, keeps a persistent belief model of what…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…