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:
transform table
as input and produces a transform table
as output.object set
as input and produces a number
as output.object set
as input and produces a categorical chart
as output.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:
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
()String
()Boolean
()Time
()Duration unit
()Time range
() or Number range
()Array
() , String array
(), Number array
(), Boolean array
() or Time array
()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 object
()Object set
()Materialization
()Time series
()Event set
()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 chart
().Time series group
().Time scatter plot
().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:
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
).