# Chart Link Analysis

> Answers questions from an Amplitude chart or dashboard link — fetch the definition, pull the data, explain or adapt it. Use when the user pastes an Amplitude URL, asks "what does this chart show", wants a report refreshed from a dashboard, or wants to clone/adapt an existing analysis.

- Skill: `amplitude/chart-link-analysis` (Agent Skill)
- Install (CLI): `npx skillmds@latest add amplitude/chart-link-analysis`
- Raw SKILL.md: https://api.skillmd.com/api/skills/amplitude/chart-link-analysis/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: amplitude (https://skillmd.com/u/amplitude)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/amplitude/chart-link-analysis

---


# Chart Link Analysis

Second most common job: the user pastes a link and wants the analysis
understood, refreshed, or adapted.

## The arc

1. **Resolve the URL.** `get_from_url` returns the entity type, IDs, and
   (for charts) the current definition. One call handles chart, dashboard,
   experiment, notebook, and cohort links — use it instead of asking the
   user for IDs.
2. **Read the definition.** For a chart: `get_amplitude_charts` with
   `include: 'typed'` — the typed params mirror the chart-builder UI and are
   the fastest way to see how the project spells events/properties. If
   `typed` fails to lower the chart ("advanced features are not modeled"),
   fall back to `include: 'definition'` for the raw form. For a dashboard:
   `use_amp_dashboards` `action: 'get'` (batch ≤3) to get its chart list,
   then read the charts that matter.
3. **Pull the data.** `get_amplitude_charts` `include: 'data'` with the
   chart IDs, ≤3 IDs per call. For a report refresh, request the granularity
   the report needs (daily for week-over-week, weekly for monthlies).
4. **Adapt or fork.** Edit the typed params, then call
   `query_amplitude_data` with the edited `chart` **and** `chartId` set to
   the saved chart's id — the parent's params fill gaps the typed model
   omits, and the edit stays linked to its parent. Render the result with
   `render_amplitude_chart`; the user saves it from the widget's **Save
   chart** button (there is no model-facing save tool). To replicate a whole
   dashboard in a new context: read the reference dashboard, then rebuild
   each chart — do not try to "copy" in one call.

## Expectations to set

- `get_from_url` does not run the chart — it returns metadata/definition.
  Data always comes from `get_amplitude_charts` `include: 'data'` (saved
  charts) or `query_amplitude_data` (ad hoc).
- `include: 'data'` returns the same numbers the UI shows, including
  Amplitude's timezone bucketing — when comparing against external sources
  (e.g. BigQuery), call out timezone and partial-day differences explicitly.
- Definition reads are cheap; data reads are the expensive calls. Read all
  definitions first, then decide which 1–3 charts actually need data.
- Just need the link for the user? `include: 'link'` (the default) validates
  the ids and returns URLs without running anything.

