Verified against Claude · 2026-08-02
Turn a raw CSV into a statistics report with charts, code included
A prompt for Claude's built-in analysis tool that requires every number in the report to come from actual executed code shown alongside it, plus explicit data-quality and statistical-caveat sections, instead of a narrated conclusion nobody can verify against the underlying data.
The prompt
Ready to copy — highlighted parts are example details you can swap.
Use the analysis tool (run actual code against the data) for this — do not eyeball the data and describe a conclusion from memory. Every number in your report should be something the code actually computed, and I should be able to see the code that computed it. DATASET A CSV export of 2,400 customer feedback survey responses with columns: response_id, submitted_at, nps_score, plan_tier, region, free_text_comment. The data itself is attached or pasted below. If the dataset includes a column whose meaning is not obvious from its header alone, state your interpretation of what it represents before using it in any calculation, so a wrong assumption about a column's meaning is visible rather than baked silently into every downstream number. QUESTIONS TO ANSWER 1. Does NPS score differ meaningfully by plan tier? 2. Has average NPS trended up or down over the last two quarters? 3. Is there a regional pattern in low scores (0-6) specifically? AUDIENCE FOR THIS REPORT A product manager who understands averages and basic charts but is not a statistician — avoid unexplained jargon like 'p-value' or 'confidence interval' without a one-clause plain definition. Calibrate statistical vocabulary and how much methodology detail to spell out versus summarize based on this audience. WHAT TO PRODUCE 1. For each question, the direct answer stated first, followed by the actual code that produced it — real, runnable code, not pseudocode or a narrated description of a calculation. Show intermediate results for any multi-step calculation, not just the final number — if computing a growth rate requires first aggregating by month, show the aggregated table, not just the rate that came out the other end. 2. At least 3 charts that would help someone else understand the pattern, not just the number — choose the chart type that fits the data shape (distribution, trend over time, comparison across categories), and say in one sentence why that chart type was the right choice for this particular question, not just a default. 3. A DATA QUALITY section: missing values, obvious outliers, duplicate rows, or inconsistent formatting the code encountered while running — say exactly how each was handled (dropped, imputed, kept as-is) rather than silently making a choice inside the code with no comment on it. 4. A section on statistical caveats: sample size, whether any correlation found could plausibly be explained by a confound not in this dataset, whether the pattern found is large enough to matter practically or just large enough to be visible in a chart, and whether it would likely hold on a larger or different sample or is plausibly a quirk of this specific dataset's size. CONSTRAINTS - If a question can't actually be answered from the columns present in the dataset, say so explicitly rather than computing something adjacent and presenting it as if it answered the original question. - Do not round or simplify a number in the narrative differently from what the code actually output — if the code says 23.7%, the sentence says 23.7%, not "about a quarter," unless rounding is explicitly requested. - If there's an industry-benchmark NPS figure commonly cited for this product category, note it as external context, clearly separated from anything computed from this dataset. AFTER THE REPORT In two sentences, name the single finding you'd flag first to someone with five minutes to read this, and the one thing about the data that makes you least confident in that finding — a real limitation, not a boilerplate disclaimer.
Customize
Optional — swap in your own details for the highlighted parts above.
Why this works
The analysis tool actually runs code against the real data rather than describing it from a skim, and the failure this targets is a model that, given a large pasted dataset, pattern-matches a plausible-sounding conclusion from what a dataset of this shape usually shows rather than genuinely computing it; requiring the code alongside every number makes a fabricated statistic visible as fabricated, since the code either produces that specific number when run or it doesn't, which is a much harder thing to fake convincingly than confident phrasing in a narrative paragraph. Requiring literal number-for-number consistency between code output and narrative rounding closes a specific, easy-to-miss failure where a model paraphrases its own computed result loosely — 'about a quarter' standing in for 23.7% — and across several such loosenings in one report, the narrative drifts from what the code actually established without any single sentence being outright false on its own. Column-meaning disambiguation before computation matters because spreadsheet-shaped data regularly has columns whose name doesn't fully specify what's in them — is region the customer's billing region or the rep's territory — and a wrong silent assumption there corrupts every downstream number derived from that column while looking completely normal in the finished report. The statistical-caveats requirement — sample size, confound plausibility, practical versus merely-visible significance — targets the gap between 'the chart shows a pattern' and 'the pattern is a real, generalizable finding,' which a purely computational tool has no built-in incentive to flag on its own since the code will happily compute and chart a pattern regardless of whether it's meaningful; naming the caveat as a required section, rather than leaving it to discretion, is what actually gets it included in the output instead of silently assumed away. Requiring a one-sentence chart-type justification matters for the same underlying reason as the code requirement: a chart chosen because it is the tool's default rendering for that data shape, rather than because it genuinely fits the specific question, can visually imply a pattern — a trend, a comparison, a distribution — that the underlying numbers do not actually support as strongly as the picture suggests, and naming the reasoning makes that choice checkable instead of assumed correct by default.
Verified against
Claude Sonnet 4.6 (Analysis Tool) · 2026-08-02
Changelog
- 2026-08-02 — Initial publish, verified against Claude Sonnet 4.6 with the analysis tool enabled.
Building this for real?
This is a free starting point. If you'd rather have what Scult builds built and running for your business, that's Scult's day job.
EXPLORE WHAT SCULT BUILDS
