Data model

Card input and output types

A Quiver analysis is constructed through a number of cards that can depend on each other, forming an analysis graph. Every card in Quiver can take zero or more inputs and produces an output of a specific type.

For example:

  • A numeric aggregation card takes an object set as input and produces a number as output.
  • A rolling aggregate plot takes a time series as input and produces a time series as output.
  • A number to date card takes a number as input and produces a time as output.

View the full list of input/output types.

A card can only be added as an input to another card if that card's output type is equal to the downstream card's input type. Sometimes, a conversion card must be added between two cards if their input/output types do not match.

For example, a filter object set cannot be directly passed as input to an object property because the filter object set produces an object set as output, and an object property takes a single object as input. To resolve this, an object selector must be placed in between the two cards, as the object selector takes an object set as input and produces a single object as output.

Understanding a card's output type, and which downstream cards it can be used in is a very important concept in Quiver. Fortunately, Quiver's next actions menu, which is shown when hovering over a card, helps simplify this problem. It only shows cards that are able to take your current card's output type as input. The type being used by the next action menu is shown in the top right of the menu.

The input type options for the next actions menu card.

Additionally, When configuring variable inputs for a Quiver card in the editor, only cards with compatible output types are shown for selection. For example, in the image below, when configuring the input number for a number to date card, we are able to select the numeric parameter as input ($I), but not the string parameter ($H).

The input type for card editor options.

List of input and output types

The full list of Quiver supported input and output types is provided below.

TypeDescription
Object setA set of objects backed by the Ontology. Useful for simple, responsive analysis at medium scale.
Single objectA single object in the Ontology.
Categorical chartA chart consisting of (string, number) or (string, string, number) values.
Object selectionA card that supports selecting objects through interaction.
Pivot tableTabular data resulting from a pivot table aggregation.
Transform tableA local table used for flexible, low scale analysis. Can be used to transform, edit, or convert between different data types.
MaterializationA dataset-backed materialization of objects used for flexible, high scale analysis.
Time seriesA time series consisting of (value, timestamp) "ticks". Useful for high frequency, time-based analysis.
Time series chartAn interactive, time-based chart that can visualize time series, time ranges, event sets, and points in time.
Time series groupA group of time series that can be visualized or transformed together.
Bounded time seriesA region bounded by an upper time series and a lower time series.
Event setA set of events with start and end times.
Time scatter plotData returned from a time series scatter plot.
StringA single string value.
NumberA single numeric value.
TimeA single date/time value.
BooleanA single boolean value.
Duration unitA unit of time (millisecond, second, minute, hour, day, week).
String arrayAn array of string values.
Number arrayAn array of numeric values.
Time arrayAn array of date/time values.
Boolean arrayAn array of boolean values.
Numeric rangeA range consisting of a starting numeric value and an ending numeric value.
Time rangeA range consisting of a starting date/time value and an ending date/time value.
X/Y rangeA set of two ranges, used to create a "box" on a chart.
Flow startIndicator that a card does not take any inputs.
Flow endIndicator that a card does not produce an output type.

View input and output type information

The possible input types and the returned output type for each card are annotated as input_types to output_types next to each operation in the next actions menu.

The input and output type for each card in the next actions menu.

The same input_types to output_types annotation is also used in the cards search window:

The input and output type for each card in the cards search window.

The output type of each Quiver card is also shown in the card header.

The card output type in a card's header.