Open app →
Documentation

Dashboards & analytics

How Elliptic turns your work items into numbers, from built-in analytics rollups and forecasts to custom dashboards, PQL-filtered chart widgets, printable exports, and natural-language charts.

Two ways to see your numbers

Elliptic reads your work and turns it into numbers in two complementary ways. Built-in analytics are fixed, ready-made views over your tasks: an overview with totals and a completion rate, a flow view, a member workload table, a progress scatter, a throughput forecast, and pivot tables. Dashboards are yours to build: a grid of chart widgets you arrange, each pointed at a metric and a breakdown dimension, filtered with PQL, and shareable with your workspace. Both run on the same tasks and the same definitions, so the numbers line up.

What gets counted
Every analytics view and every widget counts the same population: tasks in your organization that are not in triage and not archived. Triage items and archived items are always excluded, so the numbers reflect real, live work. Most views also accept an optional project scope to narrow down to a single project.

Because agents are first-class members in Elliptic, the work they do shows up in exactly these numbers. An agent that picks up tasks, moves them across statuses, and closes them is reflected in your completion rate, your throughput forecast, and your member workload table the same way a human teammate is, on the org's own model key.

Built-in analytics

These are read-only rollups across your tasks. Each one answers a specific question, and every one accepts an optional project_id to scope it to a single project. Leave the scope off to see the whole organization.

Overview

The overview is the headline summary of your work. It returns the totals plus the breakdowns you would reach for first:

  • Total, the number of live (non-triage, non-archived) tasks in scope.
  • Completed, the count of tasks whose status sits in the completed category.
  • Completion rate, completed divided by total, rounded to four decimals (it is 0 when there is nothing in scope).
  • Overdue, the count of tasks that have a due date in the past and are still open, meaning their status is neither completed nor cancelled.
  • By category, a breakdown of every task across the status categories (backlog, unstarted, started, completed, cancelled).
  • By priority, counts across each priority level.
  • By kind, counts across each work-item kind.

Each breakdown is keyed by every possible value, so a category, priority, or kind with no tasks shows up as 0 rather than disappearing. That keeps the shape of the chart stable as your data changes.

Flow analytics

Flow analytics is your bottleneck view. For each status category that holds open work it reports the WIP (the number of items sitting in that category) and the average age in status in days. Age is measured from the moment each item last entered its current status, taken from its most recent status-change in the activity history, falling back to its creation time when there is no such event. A category where work is piling up and aging is where your flow is stalling. The response also includes a total WIP across all open categories.

Member workload

Member workload is a per-assignee capacity view. For each member who has tasks assigned it reports three numbers: open (everything not yet completed), in progress (items in a started status), and completed in the last 30 days. Members are ranked by their open count, so whoever is carrying the most live work sits at the top. Unassigned tasks are not included here, since the view is about people. Agents that hold assignments appear in this table alongside humans.

Progress scatter

The progress scatter plots scope against completion so outliers stand out. You choose a dimension of either cycle or module, and for each one it returns the scope (how many tasks it contains), the completed count, and the completion rate (completed over scope, rounded to three decimals). Plotting scope on one axis and completion on the other makes the cycle or module that is overloaded, or the one that has quietly finished, easy to spot.

Throughput forecast

The throughput forecast looks at how much work your organization actually finishes each week and projects the next week forward. You pick a window between 2 and 26 weeks (the default is 8). Weekly completed counts come from status-change-to-done events in the activity history, not from a status snapshot, so the trend reflects when work was really resolved.

It returns the per-week completed series, an average per week across the whole window, and a projected next week computed as the average of the last four weeks (or fewer, if your window is shorter). The recent-weeks average is what makes the projection responsive to a recent change in pace rather than smearing it across the entire window.

Pivot tables

A pivot table cross-tabulates task counts across two dimensions at once. You choose a row dimension and a column dimension, each one of status, priority, kind, assignee, or project (the defaults are assignee by status). The result is a grid: the distinct row keys, the distinct column keys, and a cell count for every populated intersection. Tasks with no value for a dimension, such as an unassigned task, fall into an unassigned key rather than being dropped.

ViewWhat it tells youKey options
OverviewTotals, completion rate, overdue, and breakdowns by category, priority, and kindproject scope
FlowWIP and average age-in-status per open status categoryproject scope
WorkloadOpen, in-progress, and 30-day completed counts per assigneeproject scope
ScatterScope vs completion per cycle or per moduledimension (cycle or module), project scope
ForecastWeekly completed throughput plus a next-week projectionweeks (2 to 26), project scope
PivotCounts cross-tabulated across two dimensionsrow, col, project scope

Custom chart

Beyond the fixed views, there is an ad-hoc grouped aggregation: pick a metric and a dimension and get back grouped counts. The metric is one of count (every task), done (completed tasks only), or open (everything not completed). The dimension is one of status, priority, kind, assignee, or project. You can additionally filter to a single project, a single status, or a single priority before grouping. The result is a list of points, each a key and a value, sorted from largest to smallest. This same aggregation is what grounds the natural-language chart described below and what powers dashboard widgets.

CSV export

You can export the overview rollups as a long-format CSV for a spreadsheet or a report. The file has three columns, metric, dimension, and value, with one row per number: the total, completed, completion rate, and overdue scalars first, then one row per breakdown bucket across category, priority, and kind. The export honors the same project scope as the overview itself.

bash
# Download the analytics rollups for one org as CSV
curl -L -H "Authorization: Bearer $TOKEN" \
  "https://api.elliptic.sh/api/v1/orgs/$ORG_ID/analytics/export.csv" \
  -o analytics.csv

Dashboards

A dashboard is a grid of chart widgets over your workspace metrics, assembled by you. Where the built-in views answer fixed questions, a dashboard lets you put the handful of numbers you care about side by side and keep them. Open Dashboards from the workspace, give a new one a name, and you have an empty grid ready for widgets.

  1. Open Dashboards
    Go to Dashboards in your workspace. You see your own dashboards plus any a teammate has published to the workspace, oldest first.
  2. Create one
    Type a name into the new dashboard field and select Create. A fresh dashboard starts private to you and empty.
  3. Open it and add widgets
    Select the dashboard to open it, then add chart widgets. Each widget is one chart you configure.

Chart widgets

Each widget is a single chart with a title and a configuration. The configuration has four parts:

  • Chart type, one of bar, line, area, donut, pie, number, or table. A number widget shows a single headline figure, a table lays the breakdown out as rows, and the rest draw the grouped data as a graph.
  • Metric, one of count, done, or open, exactly as in the custom chart: all tasks, completed only, or everything still open.
  • Breakdown dimension, one of status, priority, kind, assignee, or project, the field the chart groups by.
  • Optional project scope, a single project the widget restricts itself to. Leave it off and the widget spans the whole organization.

When you save a widget, Elliptic cleans the configuration and falls back to sane defaults for anything missing or unrecognized: chart type bar, metric count, dimension status. A widget may also carry a span of one or two cells, so it can be twice as wide on the grid. New widgets are appended after the ones already there, and you can reorder them later by setting each widget's position.

When the dashboard computes, each widget runs the same grouped aggregation as the custom chart and returns its points sorted from largest to smallest, tagged with the widget's chart type so the right visual is drawn. A widget with a project scope only counts that project's tasks.

Filtering a dashboard

A dashboard can carry a PQL filter, the same Projects Query Language used across Elliptic, written once on the dashboard. Every widget on the dashboard is narrowed by that filter before it counts, so you can build, say, a dashboard scoped to high-priority bugs and have all of its charts respect that without configuring each one. Set the filter when you create the dashboard or edit it later, and clear it to go back to counting everything.

Filtering actually happens in three layers that stack with AND. A task has to pass all of them to be counted in a widget:

  1. The dashboard-level PQL filter, applied to every widget.
  2. An optional ephemeral filter you pass at view time to narrow what you are looking at right now, without changing the saved dashboard.
  3. An optional per-widget filter stored in a single widget's configuration, so one chart can be tighter than the rest.
Filters fail open
If a PQL filter is blank or does not parse, Elliptic treats it as no filter rather than erroring or showing nothing. A typo in a query gives you the unfiltered chart, not a broken dashboard, so you are never staring at an empty grid wondering what went wrong.

Sharing a dashboard

A dashboard starts private to you, its owner. You can publish it to the workspace, which makes it visible to every member of the organization, and you can switch it back to private at any time. Publishing changes who can read the dashboard, not who can change it: only the owner may edit a dashboard, add or remove its widgets, change its filter, or delete it. Everyone else sees a read-only copy.

VisibilityWho can see itWho can edit it
PrivateOnly you, the ownerOnly you
WorkspaceEvery member of the organizationOnly you, the owner

Exporting for PDF

Any dashboard can be exported as a printable HTML rendering built for PDF. The export returns a self-contained HTML page of the dashboard's charts that opens the browser print dialog, so you get a real PDF via Save as PDF, which is the simplest way to drop a snapshot into a report or send it to someone outside Elliptic. Because it is rendered server-side from the live data, the exported page reflects the numbers at the moment you export it.

bash
# Fetch the printable HTML for a dashboard, then print to PDF in the browser
curl -L -H "Authorization: Bearer $TOKEN" \
  "https://api.elliptic.sh/api/v1/orgs/$ORG_ID/dashboards/$DASHBOARD_ID/export.html" \
  -o dashboard.html

Ask for a chart

You do not have to know the metric and dimension up front. Describe the chart you want in plain language, like "how is work split across priorities" or "how many open items per person", and Elliptic turns that into a real chart. This is natural-language analytics, and it runs on your organization's own model key.

  1. Describe the chart
    Write a short request describing the chart you want, up to about 500 characters.
  2. Elliptic picks a spec
    The model reads your request and chooses a metric (count, done, or open) and a breakdown dimension (status, priority, kind, assignee, or project), plus a title for the chart.
  3. Real numbers are computed
    Elliptic then runs that exact metric and dimension through the same grouped aggregation as the custom chart and returns real, current counts. The model picks the shape of the question, it never invents the numbers.

The result comes back with the chosen title, the metric, the dimension, the data points, and the id of the AI run that produced it. If the model cannot produce a usable spec, Elliptic falls back to a safe default: a count of work items broken down by status, titled "Work items by status". So you always get a valid, grounded chart, never an error and never a blank.

The model chooses, the data is real
The only thing the language model decides is which of the supported metrics and dimensions best answers your question, plus a title. The counts themselves come straight from your live tasks through the same aggregation that powers built-in analytics and dashboard widgets. There is no room for a made-up figure.

AI credit usage

Asking for a chart, like every AI feature, draws on your organization's monthly AI credit pool. That pool is a per-seat allowance of 500 credits per billable seat per month, and your usage is tracked as used, limit, remaining, and percent against it for the current calendar month.

Credit accounting itself lives on the AI page rather than here, so that all AI spend is reported in one place. See AI, Brain & Automations for how the per-seat pool is calculated, how to read your remaining balance, and how BYOK keeps the underlying model cost on your own key.