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.
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
0when 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.
| View | What it tells you | Key options |
|---|---|---|
| Overview | Totals, completion rate, overdue, and breakdowns by category, priority, and kind | project scope |
| Flow | WIP and average age-in-status per open status category | project scope |
| Workload | Open, in-progress, and 30-day completed counts per assignee | project scope |
| Scatter | Scope vs completion per cycle or per module | dimension (cycle or module), project scope |
| Forecast | Weekly completed throughput plus a next-week projection | weeks (2 to 26), project scope |
| Pivot | Counts cross-tabulated across two dimensions | row, 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.
# 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.csvDashboards
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.
- Open DashboardsGo to Dashboards in your workspace. You see your own dashboards plus any a teammate has published to the workspace, oldest first.
- Create oneType a name into the new dashboard field and select Create. A fresh dashboard starts private to you and empty.
- Open it and add widgetsSelect 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, ortable. Anumberwidget shows a single headline figure, atablelays the breakdown out as rows, and the rest draw the grouped data as a graph. - Metric, one of
count,done, oropen, exactly as in the custom chart: all tasks, completed only, or everything still open. - Breakdown dimension, one of
status,priority,kind,assignee, orproject, 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:
- The dashboard-level PQL filter, applied to every widget.
- An optional ephemeral filter you pass at view time to narrow what you are looking at right now, without changing the saved dashboard.
- An optional per-widget filter stored in a single widget's configuration, so one chart can be tighter than the rest.
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.
| Visibility | Who can see it | Who can edit it |
|---|---|---|
| Private | Only you, the owner | Only you |
| Workspace | Every member of the organization | Only 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.
# 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.htmlAsk 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.
- Describe the chartWrite a short request describing the chart you want, up to about 500 characters.
- Elliptic picks a specThe 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.
- Real numbers are computedElliptic 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.
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.
