attio-deepline-enrich
Enrich records inside Attio with a clear cost gate before any credit is spent. Pull a chosen object (companies, people, or custom) from Attio, fill chosen…
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
$ npx -y skills add NachoLafuente/5050-gtm --skill cohort-analysis --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/cohort-analysisContext preview
The summary Claude sees to decide when to auto-load this skill.
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
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 custom) from Attio, fill chosen…
B2B discovery call coach. Paste any transcript — Granola export, Fireflies, Fathom, plain text, a file path — and get a full coaching report: framework flags,…
Read-only CFO data dashboard for bootstrapped startups. Two modes, CSV templates (works with any stack: Attio/HubSpot/Salesforce + Qonto/Mercury/Brex + Stripe…
Generate a tight pre-discovery-call prep brief from an intro email, referral, or company name. Outputs a 3-section scan doc (who they are, ranked questions,…
Pull Google Search Console health (sitemap status, indexing coverage, 28-day search analytics) for a verified GSC property, then run Lighthouse via the…
A build-measure-learn loop for your LinkedIn. Ingests your Creator analytics export, keeps a persistent belief model of what drives your reach and engagement,…