- Analysis structure
- Card inputs and outputs
- Construct an analysis
- Supported input and output types
- Global IDs

A Quiver analysis is constructed by one or more cards that can depend on each other, that form an analysis graph.

You can see the analysis graph and even conduct analysis in graph mode. Cards are represented by nodes on the graph. Inputs and outputs are represented by the links between cards. Cards at the top of the graph are "data" cards and represent the data used in the analysis. Cards that take other cards as input are known as "transformation" or "visualization" cards.

You can also see card dependencies when performing analyses in canvas mode.

Every parameter, transformation and visualization card in Quiver can take zero or more required inputs and produce zero or more outputs. Inputs and outputs have definitive types.

For example:

- The
**rolling aggregate**time series transformation takes a`transform table`

as input and produces a`transform table`

as output. - The
**numeric aggregation**transform takes an`object set`

as input and produces a`number`

as output. - A
**line chart**,**bar chart**, and**pie chart**takes an`object set`

as input and produces a`categorical chart`

as output. - A
**pivot table**takes an`object set`

as input and produces a`pivot table`

as output.

The possible input types and the returned output type for each card are annotated as [`input_types`

> `output_types`

] next to each operation in the cards search window.

The same [`input_types`

> `output_types`

] annotation is also used in the next actions menu:

And when adding a parameter:

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

Add cards to an analysis either by searching for them or adding them through the next actions menu.

Cards can only be chained together when one card's output type matches another cards's input type. Quiver ensures that card input and output types are compatible in the following ways:

- When configuring inputs for a Quiver card, only cards with compatible output types are shown for selection.
- The next actions menu for a selected card will only show compatible cards.

To save screen space, if a card can take more than two input types, a **multi type** icon () will be used to indicate that multiple types could be used instead of listing inline all the possible types. To see the complete list of supported input types, hover the cursor over the multi type icon.

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

Value types represent individual values as opposed to data types that represent a group or a set of values.

The following value types exist:

**Number:**Denoted by`Number`

()**String:**Denoted by`String`

()**Boolean:**Denoted by`Boolean`

()**Timestamp:**Denoted by`Time`

()**Duration unit:**Describing a period of time such as day or minute, denoted by`Duration unit`

()**Range:**Representing a range of values between start and end values, denoted by`Time range`

() or`Number range`

()**Array:**Denoted by`Array`

() ,`String array`

(),`Number array`

(),`Boolean array`

() or`Time array`

()**None:**Representing situations when a card does not require an input or does not produce an output, denoted by`None`

(). Examples include the text card which accepts freeform Markdown text, or the duration unit parameter which outputs duration unit values but does not accept other data on your analysis as input.

Data types represent a group or set of values, with possible different value types.

The following data types exist:

**Single objects:**Data such as the object title, properties and links, for a specific Ontology object type, denoted by`Single object`

()**Sets of objects:**Data such as the object titles, properties and links, for a group of Ontology objects of a specific type, denoted by`Object set`

()**Materialization:**Indexed data from the Ontology that contains the latest state of each object instance by combining data from both input datasources and user edits, denoted by`Materialization`

()**Time series:**A series of alphanumeric values over time, usually at a regular interval, denoted by`Time series`

()**Events:**Data representing information with start and end timestamp, denoted by`Event set`

()**Tabular data:**Data in a row and column format, denoted by`Transform table`

() or`Pivot table`

()

While all visualizations plot data, some also output aggregated data of a definitive type. This aggregated data can be used as an input to specific cards.

These visualization types exist:

**Categorical charts**such as bar chart, line chart, and pie chart are visualization types that plot data but also output aggregated data that can be used as an input to other cards that accept categorical data as an input, such as a transform table or a categorical formula plot. Denoted by`Categorical chart`

().**Time series group:**A visualization type that, in addition to plotting multiple time series on a chart, also outputs a set of time series that can be used as an input to a transform table for apply batch operations. Denoted by`Time series group`

().**Time series chart:**The card container onto which time series plots are displayed. A time series plot is the specific line representation of the data in a time series. Multiple plots can be displayed on the same chart.**Time series scatter plot:**A 2-dimensional visualization that plots two time series against each other, denoted with`Time scatter plot`

().**None:**Denoted with`None`

() refers to cards where only a view is provided, such as an object table view, an object list, a vega plot, a time series heat grid, a waterfall plot, a map view, or a scatter plot regression. The`None`

value type*cannot*be used as input to other cards.

Unique Quiver global identifiers (or global IDs in short) in the form of `$A`

are automatically assigned to all Quiver data cards, data sources and parameters when added to the analysis.

The specific global ID values could be found in various places across the Quiver application:

- Next to each
**card**and**plot**in the Analysis content panel - Next to each
**parameter**in the parameters panel - For each
**card**in the card header and editor panel - For each
**parameterized input value**in a card editor panel - In the legend of a time series chart for each time series
**plot**. - In the axis of a time series chart for each
**shared axis**.

Global IDs are used in formulas and Vega plot configurations to reference data sources, such as time series plots, transform tables, charts, arrays, or scalar values. For example, you can reference a transform table with its global ID (like `$B`

) in the data section of a Vega plot. To reference specific columns in a transform table, use the syntax `$A.column_name`

. Similarly, you can reference scalar values using the global ID of a numeric metric card (like `$C`

).