Skip to content
Adoptiv

Pivot Tables

Agents down the side, weeks across the top, and the number you care about in every cell. Totals on both edges, a grand total in the corner, and headers that stay put as you scroll. It is the shape finance asks for when a chart will not settle the argument.

See pricing

Postgres groups, JavaScript arranges

6 of 9 triples placed
What came back
3 columns
row_labelcol_labelvalue
Enterprise2025-Q3412K
Growth2025-Q3186K
Starter2025-Q341K
Enterprise2025-Q4508K
Growth2025-Q4204K
Enterprise2026-Q1473K
Starter2026-Q152K
Enterprise2026-Q2561K
Growth2026-Q2231K
grouped on both dimensions at once · both axes are re-sorted as plain text after the query returns, so the order the query asked for is not the order you get
Closed won · tier against quarter
tier \ quarter2025-Q32025-Q42026-Q12026-Q2
Enterprise412K508K473K·
Growth186K204K··
Starter41K·52K·
row edge, column edge and corner, each an opt-in
Budget

A hundred and fifty label pairs by default, three thousand at the ceiling. Past that the grid is trimmed rather than paged.

Exactly one down, one across

The cell holds the widget's primary measure. One dimension down and one across is the shape; arrays of either are not accepted on the config.

Where one gets authored

The drawer's Visualization tab opens on the table shape, so crossing two dimensions is a pair of pickers rather than a definition written by hand. The runtime decides on the presence of a pivot config and the renderer draws it with sticky headers on both edges. Color rules land per cell through the same evaluator the charts use.

Both axes chunk like a chart dimension, so quarters can run across the top while product bands run down the side · headers stay put on both edges as you scroll
Row Starter, column 2026-Q1. The query returned the pair as text and the value beside it; the runtime is reading the pair and writing to the coordinate it names.
0
dimensions crossed, one down and one across
0
row and column pairs before it is trimmed
0
switches, and a corner that follows them

Product figures from the platform’s own defaults - not customer averages

The mechanism

How it works.

01

Counted once, arranged afterward

One pass counts both dimensions at once and comes back with a row label, a column label and a value. Those get sorted onto the two edges and dropped into place. A pairing nothing came back for stays empty rather than reading zero, because none and zero are different answers.

02

Both edges band the same way a chart does

Each dimension takes the same banding a chart dimension does, so quarters can run across the top while product bands run down the side. The query orders both axes by their bucket keys and the runtime then re-sorts the labels as plain strings, which is why dated bands read correctly and numeric ones come out in alphabetical order.

03

Totals cover the window you are looking at

Switching them on sums the matrix in memory. That means they total the window that came back, which is the same window you are looking at, and not a separate pass over the whole table.

04

Two pickers, not a definition to hand-write

A tile becomes a grid the moment it carries a pivot setting, and it is drawn with sticky headers on both edges. The drawer's Visualization tab opens on the table shape, so crossing two dimensions is a pair of pickers rather than a definition somebody has to hand-write.

Where it sits

Two moments in every number.

Every number passes through the same seven. Pivot Tables is the lit ones, and everything either side of it is a different page in this category.

  1. 01
    Query

    what is asked, and of what

  2. 02
    Shape

    the measure and the dimension

  3. 03
    Draw

    the visual chosen for that shape

  4. 04
    Arrange

    where it sits on a dashboard

  5. 05
    Filter

    narrowing it after the fact

  6. 06
    Drill

    going from the number to the rows

  7. 07
    Share

    who else gets to see it

The specifics.

8 facts
Dimensions
Exactly one down and one across. An array on either axis is refused by the config rather than flattened
Cell value
The widget's primary measure. A second measure per cell is not supported
Budget
A hundred and fifty label pairs by default, three thousand at the ceiling. Past that the grid is trimmed, not paged
Empty cell
Drawn as a dash so an absent combination reads differently from a zero
Totals
Two switches, one per edge, computed over the returned window. The corner is derived rather than switched, and it is only painted inside the column-totals row
Color rules
Applied per cell by the same evaluator the charts use, so a coordinate under target reads like a bar under target
Authoring
The drawer's Visualization tab on the table shape, or an import of a definition written elsewhere
Not the same as
Chart Visuals, where this is one of two names the table shape offers

More in Reporting & Analytics

12 capabilities

Seven data shapes, twenty-two visuals, shareable without a login.

Dashboard Sharing

Hand a board to a team or a CRM role, at read or at edit, by the person who built it. Roles outlive people, which is why a share points at one, not a mailbox.

Dashboards

The board a team opens on holds the figures that team is judged by, not everybody's. Six columns to lay them out in, and your own tab opens first.

Cross-Filtering

Click the bar for one queue and the rest of the board goes with it. The next question gets asked by pointing at the answer, and undone by clicking again.

Drill-Through

Some answers will not fit on the board that raised the question. A click leaves carrying the value it stood on, and lands on a board already narrowed to it.

Conditional Formatting

A board on the wall gets read from across the room. Anything under target colors itself as the chart is painted, so a supervisor sees it without stopping.

Reference Lines

The number that was promised, drawn across the same chart as the number that arrived, so the floor reads itself against its target, not yesterday's bars.

Comparison Periods

Nobody has to remember what last week looked like, or dig out the sheet it was written on. The same figure is counted again over the window before it.

Filter Trees

The report that needs two exceptions and a date range stays one widget, instead of three tiles that nearly agree. Seventeen operators in a nested and-or tree.

Theme Sets

Six palettes, one a print set for the pack that goes in front of a client. Pin one to a tile and the series, axis, grid and tooltip all move together.

Public Links

Send a client the board without giving them a login. The address works until the day you name, dies the moment you revoke it, and leaves a row explaining why.

Embedded Widgets

A figure on the screen where the work happens, not on a board somebody must remember to open. Built once, worked out against the records of whoever opens it.

Call Analytics

How many calls, how many answered, how long they ran, how many missed, counted off the records the switch already wrote. Not a sample or last night's export.

Reporting & Analytics

See pivot tables on your own floor.

Thirty minutes, your numbers and your data. We will set pivot tables up live and you can decide from the thing itself rather than from this page.

See pricing

14-day trial · no card · migration included