Skip to content
Adoptiv

Cross-Filtering

Click a bar and every sibling on the board re-runs with that value folded into its own conditions. The next question gets asked by pointing at the answer, and undone by clicking the same bar twice.

One click, and the board follows

1 of 32 conditions
Live on this board
Four widgets, one canvas
  • Revenue by regionBARemitting
    dealsaccounts
  • Deals by stageCOLUMNreceiving
    dealsaccounts
  • Pipeline by tierDONUTlistening
    dealsaccounts
  • Contacts by stagePIElistening
    contactsdoes not carry accounts
Merged tree on Deals by stage
AND
deals.stage in (Proposal, Negotiation)
accounts.region = EMEA
Visuals that emit a click
COLUMNBARPIEDONUT
categorical shape only
Handed a click, never fire it
FUNNELTREEMAPRADIAL_BAR
every series chart, plus scatter and bubble, implement the handler and are never handed one
Each combination caches on its own

?crossFilters=eyJ… · in the client key and the server key

Two people looking at different selections of the same board never read each other's numbers.

Thirty-two conditions and four kilobytes of encoded payload · equals on emit, with not-equals and in accepted on the wire and anything else falling back to equals
This sibling already carries an authored condition under and, so the incoming leaf joins the same group. Nothing about the operator’s own question changes; it simply gets one more thing to be true at the same time.
0
leaf a widget contributes at a time
0
operators a broadcast leaf may carry
0
leaves a board will hold at once

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

The mechanism

How it works.

01

The click broadcasts one leaf

State is keyed by the widget that emitted it, so a chart contributes a single condition at a time. Clicking a different point on that chart replaces its contribution. Clicking the point already selected removes it. A chip appears above the canvas for each live one, and clearing is a click on the chip.

02

Listening is on unless it is turned off

Every widget accepts by default and never accepts its own broadcast. On the way to the server the conditions are pruned against the receiving widget's module list, so a condition naming a table that widget does not join is dropped rather than failing the query.

03

The merge happens on the server, and it respects your brackets

Incoming leaves join the authored tree at the top under and. If the authored root was or, the whole of it is wrapped as a single child first, so a two-branch alternative does not silently collapse into a conjunction.

04

Each combination caches on its own

The encoded set travels as a query parameter and also sits in the client cache key and the server cache key. Two people looking at different selections of the same board never read each other's numbers.

Where it sits

One moment in every number.

Every number passes through the same seven. Cross-Filtering is the lit one, 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.

7 facts
What a click sends
One leaf: the dimension field the mark stands for, the value sitting on it, and the identifier of the widget it left
Silent visuals
Gauges and single-figure cards, which have no row under the pointer to contribute in the first place
Operator on emit
Equals. The wire format also accepts not-equals and in, and anything else falls back to equals
Listening
Accept-all by default, and a widget can instead be given the named list of fields it will take a condition on
Dropped
Any condition naming a module the receiving widget does not carry
Bounds
Thirty-two conditions, four kilobytes of encoded payload
Not the same as
Filter Trees, which is the condition an author wrote into the widget and which no click can remove

More in Reporting & Analytics

11 capabilities

Seven data shapes, twenty-two visuals, shareable without the portal.

Widget Studio

A widget declares a data shape; the visual is a separate choice. Swap between the visuals valid for that shape and the query does not run again.

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.

Pivot Tables

Cross one dimension against another with row, column and grand totals - the shape a finance team asks for when a chart will not settle the argument.

Conditional Formatting

Colour a number by the rule that matters - under target, over threshold, inside a band - so a dashboard reads correctly from across the room.

Reference Lines

Draw the target on the chart itself, so performance is read against the number that was promised rather than against the shape of the bars.

Comparison Periods

Put a window against the one before it, or against the same window a week, month, quarter or year back, on a card as a difference or a chart as a series.

Bucketing & Grouping

Group by day through year, by equal-width bands, or by breakpoints you set, each band carrying a sort key so the axis reads in bucket order.

Theme Sets

Six palettes including a print set, pinned per widget, each carrying eight series colours plus the axis, grid, card and tooltip colours drawn around them.

Public Links

Thirty-two bytes of entropy, an expiry you choose, revocation on the spot, and only the hash kept at rest, on a board that draws its figures for a reader.

Embedded Widgets

Name a slot at the call site and one authored widget answers it everywhere inside the product, computed against the records of whoever is signed in.

Call Analytics

Total calls, answered rate, average duration and missed calls, split by direction and outcome, over the call records rather than a sampled export.

Reporting & Analytics

See cross-filtering on your own floor.

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

14-day trial · no card · migration included