Skip to content

Chart gallery

YAC draws its charts from a library of 81 templates. When you ask a question, the agent picks a template and binds its table and field slots to your dataset; the dropdowns under a chart in the chat change those bindings. If no template fits a question, the agent says why instead of drawing a chart.

Counts the total number of records in an entity and displays the result as a single-row table.

Good for: Retrieve the total record count for an entity. · simple

Displays the raw data for an entity as a table.

Good for: Explore raw data; retrieve specific values; understand field values and ranges; identify anomalies and extremes. · simple

Joins two related entities and displays the combined data as a table.

Good for: Explore combined data from two related entities; retrieve specific values; identify anomalies and extremes. · simple

Finds which related entity record has the highest count of associated records, displayed as a ranked table with bar indicators.

Good for: Identify the record with the most associated entities; compare counts across records. · extra complex

Finds the record with the largest value in a quantitative field, displayed as a ranked table with bar indicators.

Good for: Identify the record with the largest value; compare values across records. · complex

Joins two entities, computes the maximum of a quantitative field per group, and ranks the results in a table with bar indicators.

Good for: Identify which related record has the largest aggregated value; compare across groups. · extra complex

Finds the record with the smallest value in a quantitative field, displayed as a ranked table with conditional formatting.

Good for: Identify the record with the smallest value; compare values across records. · complex

Joins two entities, computes the minimum of a quantitative field per group, and ranks the results in a table with conditional formatting.

Good for: Identify which related record has the smallest aggregated value; compare across groups. · extra complex

Sorts entity records by a quantitative field and displays the result as an ordered table with in-cell bar marks.

Good for: View records in sorted order; compare relative magnitudes. · medium

Computes the minimum and maximum of a quantitative field and displays them as a single-row table.

Good for: Determine the range of a quantitative field. · medium

Lists all distinct values of a nominal field with their counts, ordered by descending count, displayed as a table with in-cell bar marks. Use this for a field with too many distinct values to chart (over 500): it lists all of them.

Good for: Determine the range (distinct values) of a nominal field; compare category frequencies. · complex

Computes the min and max of a quantitative field for each category of a nominal field, displayed as a table with range bar marks.

Good for: Compare the spread of a quantitative field across categories; identify which group has the widest or narrowest range. · extra complex

Finds the most frequent value of a nominal field, displayed as a ranked table with bar marks and conditional formatting.

Good for: Identify the most frequent category; compare frequencies across all categories. · extra complex

Shows the grand-total cube measure as a single-row table.

Good for: Retrieve the overall total. · simple

Lists each category of a nominal dimension with its pre-aggregated measure as a sorted table with in-cell bars.

Good for: Determine the distinct values of a dimension; compare category counts. · medium

Analyzes data completeness by counting and computing the percentage of records with non-null values in a specified field.

Good for: Assess data completeness for a field; determine how many records have valid values and what proportion. · complex

Analyzes data quality by counting and computing the percentage of records with null values in a specified field.

Good for: Assess data quality; determine how many records are missing a value and what proportion. · extra complex

Counts entities grouped by a nominal field, displayed as a vertical bar chart.

Good for: Compare counts across categories; identify the most or least common category; assess the range of counts. · simple

Counts entities grouped by a nominal field, displayed as a horizontal bar chart.

Good for: Compare counts across categories; identify the most or least common category; assess the range of counts. · simple

Joins two entities and counts records grouped by a field from the related entity, displayed as a vertical bar chart.

Good for: Compare counts across categories from a related entity; discover cross-entity frequency patterns. · medium

Joins two entities and counts records grouped by a field from the related entity, displayed as a horizontal bar chart.

Good for: Compare counts across categories from a related entity; discover cross-entity frequency patterns. · medium

Shows the pre-aggregated cube measure for each category of a nominal dimension as a horizontal bar chart.

Good for: Compare the measure across categories; identify the most or least common category. · simple

Shows the pre-aggregated cube measure across the values of a quantitative dimension as a bar chart.

Good for: Assess how the measure is distributed across a numeric dimension. · simple

Computes the minimum of a quantitative field for each category, displayed as a horizontal bar chart.

Good for: Compare the minimum value across categories; identify which group has the highest or lowest minimum. · simple

Computes the minimum of a quantitative field for each category, displayed as a vertical bar chart.

Good for: Compare the minimum value across categories; identify which group has the highest or lowest minimum. · simple

Computes the maximum of a quantitative field for each category, displayed as a horizontal bar chart.

Good for: Compare the maximum value across categories; identify which group has the highest or lowest maximum. · simple

Computes the maximum of a quantitative field for each category, displayed as a vertical bar chart.

Good for: Compare the maximum value across categories; identify which group has the highest or lowest maximum. · simple

Computes the average of a quantitative field for each category, displayed as a horizontal bar chart.

Good for: Compare the average value across categories; identify which group has the highest or lowest average. · simple

Computes the average of a quantitative field for each category, displayed as a vertical bar chart.

Good for: Compare the average value across categories; identify which group has the highest or lowest average. · simple

Computes the median of a quantitative field for each category, displayed as a horizontal bar chart.

Good for: Compare the median value across categories; identify which group has the highest or lowest median. · simple

Computes the median of a quantitative field for each category, displayed as a vertical bar chart.

Good for: Compare the median value across categories; identify which group has the highest or lowest median. · simple

Computes the total of a quantitative field for each category, displayed as a horizontal bar chart.

Good for: Compare the total value across categories; identify which group has the highest or lowest total. · simple

Computes the total of a quantitative field for each category, displayed as a vertical bar chart.

Good for: Compare the total value across categories; identify which group has the highest or lowest total. · simple

Stacked bar chart of the number of table by field and field

Section titled “Stacked bar chart of the number of table by field and field”

Joins two entities and produces a vertical stacked bar chart of counts grouped by two nominal fields.

Good for: Compare group compositions across categories; identify dominant sub-groups within each bar. · medium

Stacked bar chart of the number of table by field and field

Section titled “Stacked bar chart of the number of table by field and field”

Joins two entities and produces a horizontal stacked bar chart of counts grouped by two nominal fields.

Good for: Compare group compositions across categories; identify dominant sub-groups within each bar. · medium

Stacked bar chart of the number of table by field and field

Section titled “Stacked bar chart of the number of table by field and field”

Counts entities grouped by two nominal fields, displayed as a vertical stacked bar chart.

Good for: Compare group compositions across categories; identify dominant sub-groups within each bar. · medium

Stacked bar chart of the number of table by field and field

Section titled “Stacked bar chart of the number of table by field and field”

Counts entities grouped by two nominal fields, displayed as a horizontal stacked bar chart.

Good for: Compare group compositions across categories; identify dominant sub-groups within each bar. · medium

Shows the pre-aggregated cube measure by two nominal dimensions as a vertical stacked bar chart.

Good for: Compare group compositions across categories; identify dominant sub-groups. · medium

Grouped bar chart of the number of table by field and field

Section titled “Grouped bar chart of the number of table by field and field”

Counts entities grouped by two nominal fields, displayed as a grouped (side-by-side) vertical bar chart.

Good for: Directly compare sub-group counts within and across categories. · medium

Grouped bar chart of the number of table by field and field

Section titled “Grouped bar chart of the number of table by field and field”

Counts entities grouped by two nominal fields, displayed as a grouped (side-by-side) horizontal bar chart.

Good for: Directly compare sub-group counts within and across categories. · medium

Shows the pre-aggregated cube measure by two nominal dimensions as a grouped (side-by-side) bar chart.

Good for: Directly compare sub-group values within and across categories. · medium

Normalized bar chart of field within field

Section titled “Normalized bar chart of field within field”

Shows the relative frequency (proportion) of one nominal field within each category of another, as a vertical normalized bar chart.

Good for: Compare relative proportions across categories; identify which sub-groups dominate in each group. · complex

Normalized bar chart of field within field

Section titled “Normalized bar chart of field within field”

Shows the relative frequency (proportion) of one nominal field within each category of another, as a horizontal normalized bar chart.

Good for: Compare relative proportions across categories; identify which sub-groups dominate in each group. · complex

Normalized bar chart of dimension within dimension

Section titled “Normalized bar chart of dimension within dimension”

Shows the relative proportion of one nominal dimension within each category of another as a normalized stacked bar chart.

Good for: Compare relative proportions across categories; identify dominant sub-groups. · complex

Stacked bar chart of the number of table by field and field

Section titled “Stacked bar chart of the number of table by field and field”

Creates a vertical stacked bar chart of counts grouped by two nominal fields.

Good for: Compare group compositions across categories; assess the overall range of counts. · medium

Stacked bar chart of the number of table by field and field

Section titled “Stacked bar chart of the number of table by field and field”

Creates a horizontal stacked bar chart of counts grouped by two nominal fields.

Good for: Compare group compositions across categories; assess the overall range of counts. · medium

Shows the pre-aggregated cube measure by two nominal dimensions as a horizontal stacked bar chart.

Good for: Compare group compositions across categories; identify dominant sub-groups. · medium

Shows the pre-aggregated cube measure by two nominal dimensions as a grouped (side-by-side) horizontal bar chart.

Good for: Directly compare sub-group values within and across categories. · medium

Normalized bar chart of dimension within dimension

Section titled “Normalized bar chart of dimension within dimension”

Shows the relative proportion of one nominal dimension within each category of another as a horizontal normalized stacked bar chart.

Good for: Compare relative proportions across categories; identify dominant sub-groups. · complex

Shows the cumulative distribution function (CDF) of a quantitative field as a line chart.

Good for: Characterize the distribution of a variable; identify median, quartiles, and concentration of values. · medium

Shows the pre-aggregated cube measure over an ordered dimension (e.g. time) as a line chart.

Good for: Identify trends over time; spot peaks, troughs, and seasonality. · simple

Survival curve from an event log — a table with one row per event, a subject id, an event-type column and a numeric time column. Given a start event type and one or more end event types, derives each subject’s elapsed time between them and plots the falling fraction of subjects that have not yet reached an end event. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Judge how survival falls over time after a starting event; compare the observed survival fraction of a cohort at a given number of days. · extra complex

Survival curves split by a nominal field as recorded at the start event, from an event log — one row per event, with a subject id, an event-type column and a numeric time column. Given a start and one or more end event types, derives each subject’s elapsed time between them and plots one curve per category. The stratifier is read once, from the subject’s start event, so each subject falls in exactly one group and the groups add back up to the whole cohort. This is the default way to split a survival curve. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Compare survival between groups defined at baseline; judge whether an attribute present when the clock started is associated with worse or better observed survival. · extra complex

endpoint curves for table by each field value

Section titled “endpoint curves for table by each field value”

Survival curves split by each value of a multi-value (delimited) field as recorded at the start event, from an event log — one row per event, with a subject id, an event-type column and a numeric time column. Expands the start event’s list so a subject counts toward every value it listed then, derives each subject’s elapsed time between a start and one or more end event types, and plots one curve per value. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Compare observed survival across overlapping categories recorded at baseline; see which of a subject’s several starting attributes coincide with worse survival. · extra complex

endpoint curves for table by every field ever recorded

Section titled “endpoint curves for table by every field ever recorded”

Survival curves split by every value a subject ever recorded, from an event log — one row per event, with a subject id, an event-type column and a numeric time column. A subject joins every group whose value appears anywhere on its timeline and carries its whole elapsed time into each, so the cohorts OVERLAP and the groups do not add up to the whole. Use this only when the request is explicitly about ever having a value; otherwise prefer the variant that reads the field at the start event, which partitions the cohort. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Compare observed survival between subjects who ever recorded a value and those who did not; see whether ever having an attribute coincides with worse survival. · extra complex

endpoint curves for table by every field value ever listed

Section titled “endpoint curves for table by every field value ever listed”

Survival curves split by every value of a multi-value (delimited) field a subject ever recorded, from an event log — one row per event, with a subject id, an event-type column and a numeric time column. Expands the delimited column on every event, so a subject joins each value listed at any point and carries its whole elapsed time into all of them. Cohorts OVERLAP twice over — across values of one event and across events — and do not add up. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Compare observed survival across overlapping categories a subject recorded at any point; see which attributes ever present coincide with worse survival. · extra complex

Survival curves split by a field in a RELATED table, from an event log — one row per event, with a subject id, an event-type column and a numeric time column. Joins the event log to a second entity on the relationship between them, derives each subject’s elapsed time between a start and one or more end event types, and plots one curve per value of the related field. Both tables must name the subject-id column they share, which is what the join runs on. Use this when the attribute to split by does not live on the event log itself — a treatment protocol, an enrolling site, a cohort assignment recorded elsewhere. A subject with several related records joins a group for each, so the cohorts OVERLAP and the groups do not add up to the whole. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Compare observed survival across groups defined in another table; see whether a treatment, protocol or site recorded separately coincides with worse survival. · extra complex

Survival curves split by a NUMERIC field in a related table, cut into buckets at thresholds — ‘under 65 versus 65 and over’, tertiles of a lab value. Takes an event log (one row per event, with a subject id, an event-type column and a numeric time column) and a second table holding a per-subject number, joined on the subject-id column each side names. Supply the cut points in grouping: this template REQUIRES one, because a continuous column has no categories to draw a curve for. Ascending cut points, each bucket half-open on the right, so a cut at 65 puts 65 in the upper bucket. Use it whenever the attribute to split by is a number rather than a label. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Compare survival above and below a numeric threshold; judge whether a continuous attribute — age, a lab value, a dose — coincides with worse observed survival. · extra complex

endpoint curves for table by each field value

Section titled “endpoint curves for table by each field value”

Survival curves split by each value of a multi-value (delimited) field in a RELATED table, from an event log — one row per event, with a subject id, an event-type column and a numeric time column. Joins the event log to a second entity on the subject-id column each side names, expands that entity’s semicolon-delimited column so a record listing several values counts toward each, derives every subject’s elapsed time between a start and one or more end event types, and plots one curve per value. Use this when the attribute to split by lives in another table AND that column holds a set rather than a single value — the agents making up a chemotherapy regimen, the sites a course of radiation covered. The cohorts OVERLAP: a subject joins a group for every value listed on any of its related records, so the groups do not add up to the whole. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Compare observed survival across overlapping categories drawn from a set-valued column in another table — which agents of a regimen, which sites of a treatment, coincide with worse survival. · extra complex

Survival curves split by whether a subject EVER appears in a related table with one of a named set of values — ‘ever received methotrexate’, ‘ever enrolled on protocol X’ — against everyone else. Use this when the related table holds one row per subject per value (a patient’s list of drugs, sites, diagnoses), so a subject has SEVERAL values rather than one. Supply the values in grouping: this template REQUIRES one, and the values it names are the question. Prefer this over the presence template, which asks only whether the subject is in the table at all (for a drug table that is ‘received any treatment’), and over the related-field template, which draws one curve per value and lets a subject appear in several. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Compare observed survival between subjects who ever had a particular treatment, exposure or attribute recorded and those who did not. · extra complex

endpoint curves for table by presence in table

Section titled “endpoint curves for table by presence in table”

Survival curves split by PRESENCE OR ABSENCE of the subject in a second table, from an event log — one row per event, with a subject id, an event-type column and a numeric time column. Answers ‘did this subject receive/undergo/enrol in the thing that table records’ — radiation, surgery, a protocol — where the fact is the existence of a row, not the value of any column. No field from the second table is named or plotted; only the shared subject-id column on each side. Exactly two curves, and they PARTITION the cohort: every subject is in one or the other, so the two groups add back to the whole and reconcile with the unstratified curve. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Compare observed survival between subjects who do and do not appear in another table — treated vs untreated, operated vs not, enrolled vs not. · extra complex

endpoint curves for table by presence in table and table

Section titled “endpoint curves for table by presence in table and table”

Survival curves for the 2x2 CROSS of presence in two other tables, from an event log — one row per event, with a subject id, an event-type column and a numeric time column. Produces up to four curves — second table only, third table only, both, neither — for questions about combinations of treatments or procedures recorded in separate tables. No field from either extra table is named or plotted; only the shared subject-id column on each side. The four groups PARTITION the cohort: every subject falls in exactly one cell, so they add back to the whole. Use the single-table presence variant when only one table is in question — four curves for a two-way question is harder to read for no gain. The clock stops at the earliest listed end event: death alone for overall survival; progression, recurrence, relapse, second malignancy and death for event-free survival.

Good for: Compare observed survival across combinations of two things recorded in separate tables — radiation only, surgery only, both, neither. · extra complex

Survival curve from a pre-aggregated CUBE: one step per time point, falling as events accumulate. Needs two dimensions — a QUANTITATIVE elapsed-time dimension and a status dimension whose values say whether the subject had the event or was still event-free when last seen — plus the two status values themselves: value1 the one meaning the event happened, value2 the one meaning censored. Counts the cube’s measure rather than reconstructing subjects, so it needs no event log. Censored time points carry a tick on the curve.

Good for: Read the fraction still event-free at a given time; find where the steepest drops happen; read the final event-free percentage and the cohort it rests on. · extra complex

Survival curves from a pre-aggregated CUBE, one per value of a third dimension — or, with a grouping, one per named group of its values (e.g. one protocol against all the others), or per band of a numeric dimension. Needs a QUANTITATIVE elapsed-time dimension, a status dimension saying whether the subject had the event, the stratifying dimension, and the two status values: value1 the one meaning the event happened, value2 the one meaning censored. Each subject is counted once within its own stratum, so the curves PARTITION the cohort and their sizes add back to the marginal’s total. Censored time points carry a tick on their own curve.

Good for: Compare event-free survival across groups; see which stratum falls fastest and how many subjects each curve rests on. · extra complex

Creates a pie chart showing the proportional distribution of a nominal field.

Good for: Assess part-to-whole proportions; identify the dominant category. · simple

Donut chart of the number of table by field

Section titled “Donut chart of the number of table by field”

Creates a donut chart showing the proportional distribution of a nominal field.

Good for: Assess part-to-whole proportions; identify the dominant category. · medium

Shows the proportional cube measure for each category of a nominal dimension as a pie chart.

Good for: Assess part-to-whole proportions; identify the dominant category. · simple

Shows the proportional cube measure for each category of a nominal dimension as a donut chart.

Good for: Assess part-to-whole proportions; identify the dominant category. · medium

Heatmap of the number of table by field and field

Section titled “Heatmap of the number of table by field and field”

Displays the count of entities for each combination of two nominal fields as a heatmap with labeled cells.

Good for: Identify clusters or patterns in the co-occurrence of two fields; compare counts across combinations; find correlations. · complex

Heatmap of the number of table by field and field

Section titled “Heatmap of the number of table by field and field”

Joins two related entities and displays the number of distinct entity2 records for each combination of a nominal field on entity1 and a nominal field on entity2, as a heatmap with labeled cells. Use when the two fields live in different tables — e.g. a treatment protocol on a therapy table by vital status on a patient table, or gender on a demographics table by vital status. Bind entity2 to the table whose records are being counted (the patients) and entity1 to the related table holding the other field.

Good for: Compare how a status on one table is distributed across categories recorded in a related table; find combinations that are over- or under-represented. · extra complex

Displays the average of a quantitative field for each combination of two nominal fields as a heatmap.

Good for: Identify patterns in the average value across two categorical dimensions; find combinations with extreme values. · medium

Shows the pre-aggregated cube measure for each combination of two nominal dimensions as a labeled heatmap.

Good for: Identify clusters or patterns across two dimensions; compare values across combinations. · complex

Shows the distribution of a quantitative field as a histogram with automatically computed bins.

Good for: Characterize the shape of a distribution; identify modes, skewness, and gaps. · medium

Shows the distribution of a quantitative field as a histogram whose bars are stacked by a nominal field, e.g. how many records fall in each time range, split by category.

Good for: Compare how a distribution is composed across groups; see which group dominates each range. · complex

Plots two quantitative fields as a scatterplot to explore their relationship.

Good for: Assess correlation between two variables; identify clusters, outliers, extremes, and the range of both variables. · simple

Line chart of the field distribution by field

Section titled “Line chart of the field distribution by field”

Shows the cumulative distribution of a quantitative field for each category of a nominal field, with separate lines per group.

Good for: Compare distributions across groups; identify which groups have higher or lower concentrations of values. · medium

Plots two quantitative fields as a scatterplot with points colored by a nominal field to reveal group-level clusters.

Good for: Identify clusters that separate by group; assess whether the relationship between two quantitative fields differs across groups. · simple

Shows the distribution of a quantitative field as a smooth density curve (KDE) rendered as an area chart.

Good for: Characterize the shape of a distribution; identify modes and overall density patterns. · medium

Shows the distribution of a quantitative field as individual points along a single axis.

Good for: Characterize the distribution; identify individual values, clusters, and outliers. · simple

Compares the distribution of a quantitative field across categories using overlapping density curves (KDE) with area and line marks.

Good for: Compare distribution shapes across groups; identify shifts in central tendency or spread. · complex

Compares the distribution of a quantitative field across categories using dot strips, with one row per category.

Good for: Compare distributions across groups; identify clusters and outliers within each group. · simple