AugmentClaude

Data Analysis

Profile datasets, check for errors, and compute reliable metrics with full traceability.

Installation

  1. Make sure Claude is on your device and in your terminal.

    Skills load from ~/.claude/skills/ when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then run claude in any terminal to verify.

    One-time setup
    npm i -g @anthropic-ai/claude-code

    Already have it? Skip ahead.

  2. Paste into Claude Code or into your terminal.

    This copies the whole skill folder into ~/.claude/skills/data-analysis-damianvtran/ — the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.

    Faster alternative (instruction-only skills)

    Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.

    Quick install (SKILL.md only)
    Sign up to copy
  3. Restart Claude Code.

    Quit and reopen Claude Code (or any other agent that loads from ~/.claude/skills/). New skills are picked up on startup.

  4. Just ask Claude.

    Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.

Prefer to read the source first? Open on GitHub.

When Claude uses it

Analysing data rigorously: profile before trust (keys, missingness), reproducible queries, provenance per number, units and sanity checks. Use when exploring datasets, computing metrics, or answering data questions.

What this skill does

Data analysis

Numbers that survive scrutiny: profile first, keep queries reproducible, carry provenance, sanity-check the result.

Profile before trust

CheckWhy it matters
Shape: rows, columns, time rangeKnow what you have before asking questions of it
Types and units per columnA text date, or cents read as dollars, corrupts every downstream number
Keys and duplicatesDuplicate keys silently change every aggregate
Missingness per columnNull-heavy columns change what a rate means
Distributions and rangesOutliers and impossible values (negative ages, future dates) surface here
Timezone and calendar of timestampsDay boundaries move with zones

Keep the profile as a small set of queries you can rerun, not ad-hoc typing.

Reproducible queries

  • Keep the exact query behind every number in the report. A number nobody can re-derive is a rumour.
  • Deterministic: pin the snapshot or time window, make ordering explicit before any limit, and avoid "latest row" ambiguity.
  • Work in steps; save intermediates. After changing an input, rerun the step rather than mentally adjusting its output.

Guard silent joins and filters

  • Count rows before and after every join. An inner join on an incomplete key drops rows without an error.
  • Check filter semantics: inclusive or exclusive bounds, null membership, timezone edges. Apply each filter once.
  • State the population: "of the 4,210 rows matching X" beats "of the data".

Provenance and checks

  • Every reported number carries its source (table, snapshot), filter, and derivation. Derive it, or say where it came from.
  • Reconcile: totals equal the sum of their parts; an independent cut of the same data reproduces the number.
  • Units on everything: counts, rates, currency. Percentages name their denominator. Magnitudes are checked against expectation; a 1000x jump is a units or join error until proven otherwise.
  • Small n: below your stated threshold, report the count, not a rate. "60% (n=5)" misleads; "3 of 5" does not.

Output

  • Separate raw from summary: show the summary and keep the raw one step away so the reader can drill down.
  • State assumptions in the report: time window, definitions, exclusions, null handling.

Red flags

  • Answering from the first query without looking at the data's shape.
  • A join with no row count before and after.
  • A percentage with no denominator; a total with no source.
  • Dropping rows to "clean" data without recording the rule.
  • A distribution treated as stable when it trends over time.

Related skills