Docs

Analytics

Team velocity measured from your GitHub data, humans and AI agents on the same board. Read the dashboard, then pull the same numbers over the API or CLI.

Analytics measures your team's velocity from GitHub data: what merged, how fast it merged, and who shipped it. Humans and AI agents count on the same board, so agent output is measured with the same yardstick as everyone else's. Open Analytics in the dashboard.

What's measured

Ellipsis syncs pull request and review activity from your GitHub organization and aggregates it per UTC day: pull requests, reviews, inline review comments, commits, lines changed, distinct authors, and time to merge.

Every chart splits between humans and bots. An author counts as a bot when GitHub marks the account as a bot or its login ends in [bot], like ellipsis[bot] or claude[bot]; everyone else is a human. That one split answers the questions velocity analytics exist for:

  • Is agent adoption working? If agents help, throughput rises and time to merge falls after you turn them on. If neither moves, change how you use them.
  • Who ships what? ellipsis[bot] ranks beside your engineers on identical metrics, not in a separate tool's dashboard.
  • Is review keeping up? More authored code means more review load. Review counts next to merge speed show whether the bottleneck moved from writing code to reviewing it.

Every view honors a date range (the last 30 days by default) plus repository and author filters. Analytics are recorded for GitHub organizations, not individual accounts; until your organization's activity has synced, the dashboard shows demo data and says so.

The dashboard

The Analytics page has four tabs, each built to answer one question.

Velocity, the default tab, answers "how fast are we shipping." Metric tiles (Lines changed, Commits, Pull requests, Reviews, Comments, Authors, Time to merge) chart daily totals, with each merged pull request counted on the day it merged. The Time to merge tile plots a per-day distribution instead of a bar: the box is the middle half of that day's merged pull requests, the tick is the median, so a few week-old outliers never hide behind an average. Under the chart, a strip of derived ratios covers median time to first review, lines changed per pull request, reviews per pull request, and pull requests merged per author. Three leaderboards close the tab: Top authors (lines, PRs), Top reviewers (reviews, comments, comments per 1k lines reviewed), and Repositories. Read the tab twice: once filtered to humans only for the baseline, once to bots only for what agents add on top.

Pull requests answers "how much is being opened, and by whom." Each count tile (Pull requests, Lines changed, Commits, Authors) draws a stacked human-vs-bot area per day, counted on the day each pull request was opened, and the pull request totals break into opened, merged, and closed without merging. A table lists every pull request in the window with its author and changes. A banner warns when the window has more pull requests than the server scans at once; the figures then undercount, so narrow the range.

Reviews answers "who reviews, and what do they say." Daily counts of reviews, inline comments, and distinct reviewers, with a verdict filter (Approved, Changes requested, Commented, Dismissed) and the same reviewer-type split. An engagement strip summarizes how feedback lands: comment approval rate (the thumbs-up share among comments that got a thumbs-up or thumbs-down reaction), average reviews per PR, average comments per PR, and average comments per review. A chronological feed shows the reviews and comments behind the counts.

Adoption answers "who on the team is actually using AI." Each merged pull request is classified as agent-authored (the author is an AI agent), AI-assisted (human-authored with an AI signal in the branch name or PR body), or human-only, charted over the last 12 weeks with a per-engineer breakdown and a per-tool one (Ellipsis, Claude Code, Cursor, GitHub Copilot, Devin, Codex).

Exporting

The dashboard's aggregation is also an API. Three endpoints under /analytics return the same numbers with the same filters, and they work with any credential, so an agent can query them mid-session. Windowing is shared: pass days, or explicit start/end, with the last 30 days as the default.

  • GET /analytics/metrics: the org-wide picture with per-day series, totals, and the contributor and reviewer leaderboards.
  • GET /analytics/pull-requests: pull request volume and trend, split human vs bot per day.
  • GET /analytics/reviews: review activity with totals, verdicts, and top reviewers.
curl "https://api.ellipsis.dev/analytics/metrics?days=90&account_type=bot" \
  -H "Authorization: Bearer $ELLIPSIS_API_TOKEN"

Full parameters and response shapes: Analytics endpoints.

agent analytics reviewer|pr|review prints the same data in the terminal, so "which apps review the most pull requests?" is one command:

$ agent analytics reviewer --account-type bot --days 90
reviewer       reviews  approved  changes req  comments  lines reviewed
ellipsis[bot]  142      96        31           318       77,412
claude[bot]    47       30        9            96        20,908

Flags and the other subcommands: CLI analytics.