Chart Type
Schema for chart-type records in the pptx.gallery catalog. Each record describes a named chart variant, its Open XML mapping, its series/category cardinality, the column structure of the underlying workbook, a…
Field index
| Field | Type | Req. | Default | Description |
|---|---|---|---|---|
| $schema | const | yes | — | Identifies this record as a chart type in the open presentation catalog. |
| id | string | yes | — | Stable slug used by OPF documents to reference this chart type. Lowercase kebab-case. Chart type ids may start with a digit (e.g., '100pct-stacked-column', '3d-column') to mirror conventional chart naming. |
| name | string | yes | — | Stable display/programmatic name for this chart type. |
| label | string | — | — | Human-readable label shown in chart pickers. |
| summary | string | — | — | One-sentence positioning: when to reach for this chart variant. |
| description | string | — | — | Longer prose describing the chart and ideal use cases. |
| mappings | ref:ChartTypeMappings | yes | — | Canonical and optional renderer-specific mappings used by engines to render this chart type. |
| group | string | — | — | Top-level grouping in the chart picker (column, bar, line, area, pie, radar, etc.). |
| groupSort | integer | — | — | Display ordering hint within the chart group. |
| complexity | enum | — | — | Shape of the underlying data: a flat series ('simple'), one with engine-side calculation ('calculated'), parent-child rows ('hierarchical'), or pre-normalized rows ('normalized'). |
| series | integer | — | — | Number of data series this chart type expects. |
| categories | integer | — | — | Number of category labels this chart type expects on the primary axis. |
| seriesGroups | integer | — | — | Number of series groups (axis bands) this chart type uses; >1 for combo or banded charts. |
| useSecondaryCategories | boolean | — | — | Whether the chart type uses a secondary category axis. |
| workbookRange | string | — | — | A1 reference to the source range in the embedded workbook. |
| columns | array<string> | — | — | Column header names of the embedded workbook, in left-to-right order. |
| dataColumns | array<ref:ChartDataColumn> | — | — | Per-column metadata describing the role and position of each column in the workbook source. |
| helperColumns | array<string> | — | — | Optional auxiliary column names used by calculated or banded charts (e.g., 'Excellent', 'Good', 'Fair', 'Poor' for a bullet chart). |
| sampleData | ref:ChartSampleData | — | — | Inline sample dataset for previews and pickers. |
| slideNumber | integer | — | — | Source slide number in the original chart-gallery deck. Carried for traceability. |
| tags | array<string> | — | — | Free-form labels for filtering and search. |
| preview | object | — | — | Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available. |
$schema
typeconstrequiredyesdefault—
Identifies this record as a chart type in the open presentation catalog.
{
"$schema": "https://openpresentation.org/schema/opf-chart-type/v1"
}id
typestringrequiredyesdefault—pattern^[a-z0-9][a-z0-9-]*$
Stable slug used by OPF documents to reference this chart type. Lowercase kebab-case. Chart type ids may start with a digit (e.g., '100pct-stacked-column', '3d-column') to mirror conventional chart naming.
{
"id": "column"
}name
typestringrequiredyesdefault—
Stable display/programmatic name for this chart type.
{
"name": "COLUMN"
}label
typestringrequirednodefault—
Human-readable label shown in chart pickers.
{
"label": "Column"
}summary
typestringrequirednodefault—
One-sentence positioning: when to reach for this chart variant.
{
"summary": "Single-series vertical column chart for comparing values across categories."
}description
typestringrequirednodefault—
Longer prose describing the chart and ideal use cases.
{
"description": "Use a clustered column when you want to compare a small number of series across the same categories — e.g., revenue by quarter for two product lines. Best with 2–4 series and ≤12 categories."
}mappings
typeref:ChartTypeMappingsrequiredyesdefault—
Canonical and optional renderer-specific mappings used by engines to render this chart type.
{
"mappings": "mappings-value"
}group
typestringrequirednodefault—
Top-level grouping in the chart picker (column, bar, line, area, pie, radar, etc.).
{
"group": "Column"
}groupSort
typeintegerrequirednodefault—
Display ordering hint within the chart group.
{
"groupSort": 1
}complexity
typeenumrequirednodefault—
Shape of the underlying data: a flat series ('simple'), one with engine-side calculation ('calculated'), parent-child rows ('hierarchical'), or pre-normalized rows ('normalized').
{
"complexity": "simple"
}series
typeintegerrequirednodefault—
Number of data series this chart type expects.
{
"series": 1
}categories
typeintegerrequirednodefault—
Number of category labels this chart type expects on the primary axis.
{
"categories": 4
}seriesGroups
typeintegerrequirednodefault—
Number of series groups (axis bands) this chart type uses; >1 for combo or banded charts.
{
"seriesGroups": 1
}useSecondaryCategories
typebooleanrequirednodefault—
Whether the chart type uses a secondary category axis.
{
"useSecondaryCategories": false
}workbookRange
typestringrequirednodefault—
A1 reference to the source range in the embedded workbook.
{
"workbookRange": "Sheet1!$A$1:$I$2"
}columns
typearray<string>requirednodefault—
Column header names of the embedded workbook, in left-to-right order.
{
"columns": [
"Series 1",
"Value"
]
}dataColumns
typearray<ref:ChartDataColumn>requirednodefault—
Per-column metadata describing the role and position of each column in the workbook source.
{
"dataColumns": [
{
"name": "Series 1",
"role": "categoryLabel",
"type": "string",
"position": "row0_col0"
},
{
"name": "Value 1",
"role": "series",
"type": "number",
"position": "row1_col0"
},
{
"name": "Value 2",
"role": "series",
"type": "number",
"position": "row2_col0"
}
]
}helperColumns
typearray<string>requirednodefault—
Optional auxiliary column names used by calculated or banded charts (e.g., 'Excellent', 'Good', 'Fair', 'Poor' for a bullet chart).
{
"helperColumns": [
"Excellent",
"Good",
"Fair",
"Poor"
]
}sampleData
typeref:ChartSampleDatarequirednodefault—
Inline sample dataset for previews and pickers.
{
"sampleData": {
"headers": [
"Series 1",
"Q1 2024",
"Q2 2024",
"Q3 2024",
"Q4 2024"
],
"rows": [
[
"Value",
93810,
24592,
13278,
46048
]
]
}
}slideNumber
typeintegerrequirednodefault—
Source slide number in the original chart-gallery deck. Carried for traceability.
{
"slideNumber": 1
}preview
typeobjectrequirednodefault—
Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.
{
"preview": {}
}