Show HN: Causal analyst agent skill for Claude A developer released a free Agent Skill for Claude, called Causal Analyst, that lets non-data-scientists ask causal questions such as "did X actually cause Y?" against their own data and receive a one-page report with a letter grade. The skill's author reports that plain Claude matched the skill's estimate on a clean case to within a few percent, but that plain Claude twice gave confident ranges that missed the true answer, and that adjusting for the post-treatment variable "points redeemed" turns a +$10 effect into −$22. The workflow stops three times for user input, requires the expert to sign off on a causal diagram, fixes the method in advance, and includes an explicit "we can't tell" grade, as shown in four live example reports graded C, D, B and B. Causal analysis for people who aren't data scientists. An Agent Skill https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview that lets Claude answer "did X actually cause Y?" from your data. You bring the question and what you know about your business. Claude does the modelling, checks how far to trust the answer, and hands back a one-page report. When the data can't answer the question, it says so. Live example reports: Loyalty program https://htmlpreview.github.io/?https://github.com/kiritbasu/causal-analyst/blob/main/examples/loyalty-program/report.html grade C · Sales calls https://htmlpreview.github.io/?https://github.com/kiritbasu/causal-analyst/blob/main/examples/sales-calls/report.html grade D, "can't tell" · AI training https://htmlpreview.github.io/?https://github.com/kiritbasu/causal-analyst/blob/main/examples/ai-training/report.html grade B, three traps · Quick start quick-start Contents: Why this exists why-this-exists · What it's like to use what-its-like-to-use · The report the-report · Quick start quick-start · How it works how-it-works · Does it work? does-it-work · Which model to use which-model-to-use · Data and privacy data-and-privacy · Limitations and roadmap limitations-and-roadmap Good causal analysis needs two kinds of knowledge that rarely sit in one person: - Data science: which methods to use, how to check them, and what the numbers can and can't support. - Domain knowledge: what happened before what, how people ended up getting the treatment, and what important factor isn't in the data. The marketing lead knows that "points redeemed" only exists after someone joins, and that the program was pushed to big spenders. The data scientist knows that controlling for points will wreck the estimate, and that targeting big spenders creates a gap that isn't the program's doing. Usually it takes both people and a lot of back and forth. Often the domain expert simply ends up with a correlation. This skill lets the domain expert work directly with Claude. Claude handles the modelling. It asks, in plain language, only the questions that need domain knowledge, turns the answers into a causal diagram the expert confirms, then runs and checks the analysis and explains the result. The expert supplies what only they know; the skill supplies the rest. It also guards against the ways capable models go wrong. Frontier models already get the arithmetic right: in our tests plain Claude matched the skill's estimate on a clean case to within a few percent. The failures are judgment calls: - Controlling for the wrong thing. Adjusting for "points redeemed" turns a +$10 effect into −$22. - Answering a question the data can't support. If reps pick whom to call using a gut feel that isn't recorded, no amount of adjustment recovers the effect of a call. - Choosing the method after seeing the results , and quietly drifting toward the hoped-for answer. - Overstating certainty. Plain Claude twice gave confident ranges that missed the true answer. So the workflow puts those judgments in the open. Controls are confirmed as recorded before the treatment. The expert signs off the diagram. The method is fixed in advance. There's an explicit "we can't tell" grade, and the risk from hidden factors is sized. You attach a file and ask in your own words. The skill takes it from there, stopping three times for your input. You: attaches customers.csv Did our loyalty program actually raise monthly spend? We think newer customers benefit more. 1. Claude checks the data and points out anything odd before going further: 4,000 customers, 9 columns. points redeemed almost perfectly predicts who joined, which usually means it's a result of joining. And 44% of non-members have some points, which shouldn't happen. I'll flag that. 2. It confirms what each column means. Column names mislead is usage idx measured before or after the training? , so Claude writes down its reading of every column and when it was recorded, and you correct it. 3. It asks what only you know , one question at a time, as clickable options: Were income, tenure, age, city and last quarter's spend all recorded before customers joined? ○ Yes ○ Some were later ○ Not sure Is there anything that affects both who joins and how much they spend that isn't in this file? ○ No ○ Yes: ○ Not sure Could past spending have driven who joined, rather than only the other way round? ○ Yes, big spenders were targeted ○ No ○ Not sure 4. You confirm the diagram and the plan. Claude draws how it thinks things work, you correct it, and the main method is fixed before anything runs. Where you weren't sure, Claude writes down the alternative diagrams too. 5. You get the report about a minute later. It gives the answer, how much to trust it and why, who benefits most, and the randomized test that would settle it. A self-contained HTML page: it works offline, on a phone, and prints cleanly. It reads top to bottom as a story. Here is the answer; here is what it stood on; here is how sure we are; here is what to do. | | Section | What it answers | |---|---|---| | 1 | Headline + trust grade A–D | What's the effect, how sure are we, who gains most | | 2 | The data | How big it is, each column's role action, outcome, control, left out , distributions, the first few rows | | 3 | How we think it works | The causal diagram, in a picture and in words, and whether you confirmed it | | 4 | Where the raw gap comes from | How much of the naive difference is who got the action vs the action itself | | 5 | Methods side by side | Does the answer depend on the technique? | | 6 | Meet the methods | A timeline and plain-English guide to each method family | | 7 | What if our diagram is wrong? | The answer under alternative diagrams, and what the data itself suggests about the structure | | 8 | Who benefits more | Effects for the groups you asked about, with ranges | | 9 | Why the grade | Overlap, balance, hidden-factor strength, a planted-effect test on your own data, placebo and stability checks | | 10 | What this rests on | Every assumption and its status; the trap that was avoided; data issues | | 11 | Next steps and questions | A sized randomized test, and every assumption made on your behalf | | 2 · The data | 3 · How we think it works | | 4 · Where the raw gap comes from 8 · Who benefits more | 5 · Methods side by side | | 6 · Meet the methods | 7 · What if our diagram is wrong? | | 9 · Why the grade | 10 · What this rests on | | 11 · Next steps and questions | | When the data can't answer the question , the report leads with that. The diagram shows why, and the page gives what can be said: a range the true effect lies in, and how to find out. Open the full reports: loyalty program https://htmlpreview.github.io/?https://github.com/kiritbasu/causal-analyst/blob/main/examples/loyalty-program/report.html grade C · sales calls https://htmlpreview.github.io/?https://github.com/kiritbasu/causal-analyst/blob/main/examples/sales-calls/report.html grade D · AI training https://htmlpreview.github.io/?https://github.com/kiritbasu/causal-analyst/blob/main/examples/ai-training/report.html grade B: a misleadingly named mediator, a collider and reverse causation . The HTML files, data and every intermediate file are in examples/ https://github.com/kiritbasu/causal-analyst/blob/main/examples . Claude apps claude.ai / desktop : download causal-analyst.skill from Releases https://github.com/kiritbasu/causal-analyst/releases and upload it in Settings, under Skills. Then attach a data file and ask your question. The skill triggers on questions like "did our loyalty program raise spend?" or "is this cause or just coincidence?" Claude Code: copy skills/causal-analyst/ into ~/.claude/skills/ personal or .claude/skills/ project . Python dependencies are installed automatically where the environment allows. Otherwise: pip install -r requirements.txt core: numpy, pandas, scikit-learn, statsmodels, econml, dowhy, matplotlib pip install -r requirements-optional.txt optional: CausalPFN local , tabpfn-client hosted Without an agent: the toolkit is a plain CLI, so you can reproduce any report by hand: cd examples/loyalty-program S=../../skills/causal-analyst/scripts python $S/ca.py profile --data data.csv --treatment joined loyalty --outcome monthly spend --out profile.json python $S/ca.py dag spec.json --outdir . python $S/ca.py identify spec.json --out identification.json python $S/ca.py run spec.json --out results.json ~1 minute on 4,000 rows python $S/ca.py power --sd 31 --lift 5 --results results.json python $S/ca.py report results.json --narrative narrative.json --out report.html php flowchart LR A Your data + question -- B 1. Profile + codebook