# Choosing Trend Or Slope View

> Clarify how to visualize change over a time range before building a trend. Use whenever the user asks how much something changed, grew, dropped, improved, or regressed between two points or periods — "how much did X change from A to B", "before vs after", "start vs end", "week over week", "compare this month to last", "change over time" — or mentions a "slope chart" / "slopegraph". Two readings of "change" need different charts: the whole trend (a line, every interval) versus just the two endpoints (a slope, start vs end). Ask which they want, then render it. Not for choosing a saved insight ChartDisplayType in the insight editor.

- Skill: `posthog/choosing-trend-or-slope-view` (Agent Skill)
- Install (CLI): `npx skillmds add posthog/choosing-trend-or-slope-view`
- Raw SKILL.md: https://api.skillmd.com/api/skills/posthog/choosing-trend-or-slope-view/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: posthog (https://skillmd.com/u/posthog)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/posthog/choosing-trend-or-slope-view

---


# Choosing a trend line vs a slope view

"How did X change between A and B?" is ambiguous. Two charts answer two different
questions, so **clarify before you build** unless the user already named one:

- **Change over time (line)** — the value at every interval across the range.
  Shows the _path_: dips, spikes, when it moved. This is the default trend.
- **Start vs end (slope)** — only the first and last point, one line per series
  connecting them. Shows the _net change_ and, across many series, which rose,
  which fell, and any rank flips — without the noise of the path between.

When the request could be either, ask a short either/or, e.g.:

> Do you want to see how it moved across the whole period (a line chart), or just
> the change from the start to the end (a slope chart)?

If the user clearly wants one — "just tell me how much it grew start to end" → slope;
"show me the trend / when did it spike" → line — skip the question and build it.

## How to render each

Both come from the **same** `TrendsQuery` over the same date range — the slope is
that series collapsed to its first and last point, not a different query.

### Change over time → line

Default trends behavior. Create or run a `TrendsQuery` and leave
`trendsFilter.display` as `ActionsLineGraph` (the default, "change over time"):

```json
{
  "kind": "TrendsQuery",
  "series": [{ "kind": "EventsNode", "event": "$pageview", "math": "total" }],
  "dateRange": { "date_from": "2025-01-01", "date_to": "2025-03-31" },
  "trendsFilter": { "display": "ActionsLineGraph" }
}
```

### Start vs end → slope

Run the trend with `posthog:query-trends`. The result card Max renders has a
**Line / Bar / Slope** view toggle — switch it to **Slope** to show each series as
a single line from its first to its last point, with the per-series change in the
legend. Tell the user they can flip to the Slope view on the result.

The slope view is best for a clean before→after comparison, especially with several
series/categories whose relative movement matters. Pick a date range whose two ends
are the points you want compared (the slope uses the first and last interval).

## Important limits

- **Two surfaces, one computation.** Both the inline slope (Max's `query-trends`
  result card) and the saved-insight slope (`ChartDisplayType.SlopeGraph`, behind the
  `slope-graph-insight` feature flag) show the same thing: the first interval's value
  vs the last interval's value, at the chosen group-by interval. The grouping defines
  the slope — group by month to compare the first vs last month, by day for the first
  vs last day. Use the inline view for a quick before→after on a result you're already
  looking at; reach for the saved display to persist it on a dashboard where the flag
  is enabled. A still-accumulating final period is shown as-is with a dashed connector,
  the same affordance the line chart uses for an incomplete tail.
- For period-over-period on a single series (this month vs last), a line with
  `compareFilter: { "compare": true }` overlays the two periods; a slope is the
  better fit when comparing the endpoints of **many** series at once.

