Skip to content

Feature list

Every feature of pivotkit at a glance. Each row links to the page that describes it with all its small behaviours; the start page has the short version.

For the people who build reports

Area Features Details
Fields and zones Rows, Columns, Values, Filters; drag, click or a menu; field types with icons; field search; descriptions with an "i"; chips that show their filter, top N and sort; Swap rows and columns Fields, zones and the table
Table Subtotals and grand totals, expand and collapse, sticky headers, long labels that wrap, fast from 300 rows on The table
Values Sum, count, average, median, minimum, maximum, distinct count, statistics, first and last; show as shares, differences, running totals, ranks; number formats; colour scales and data bars; a name of your own Values and formats
Dates and ranges Dates grouped as they are placed, along the time line or across years; numbers into ranges Dates and number ranges
Filters Values with row counts, search, Only; text conditions; value conditions; top or bottom N within groups; filters that remember what was left out Filters, top N and sorting
Sorting By label, by any value, in a custom order; a click on a header sorts Sorting
Chart Automatic type; bars, stacked and horizontal bars, lines, area, pie, donut, heatmap; value labels, legend, title, smooth lines, axis and group labels; tooltip; tips that suggest a better type Charts
Drill-down The rows behind a value or a chart mark; enlarge; copy, copy as JSON, CSV and Excel The rows behind a number
Undo and views Undo, redo, reset and New (an empty report); the view's name in the toolbar with a dot for unsaved changes; Save with one click, Save as with a question before a view is replaced; shared views and my views; delete, publish; views kept in the browser Views, saving and sharing, save your changes
Sharing Copy link, copy view as JSON, download a view file, load a view; a check before a view for other data Share a view, load a view
Export Excel with formats and highlighting, CSV safe to open, chart image, copy table, copy data as JSON; greyed out for an empty report Export and copy
Room and small screens Field rail, Enlarge, Full screen; drawer and bottom sheets on a phone; zones folded into one line in a low report; More for buttons that do not fit Small screens, menus and tips
Menus and help Sections that fold, say what they hold while folded and are remembered (Reset menu sections); what a field's setting is in one line with Change and Remove; an "i" for each setting that needs it; an × in every text field; tips one at a time; Keyboard shortcuts Menus, tips
Messages Greyed-out entries that say why; status messages; a warning in plain words for parts of a view that could not be used; what the report shows when it cannot show a result Behaviour reference
Keyboard and screen readers Every action by keyboard and by a menu; the field list as one Tab stop; chips moved with the keys; the table by arrow keys; text alternative of the chart; focus kept on purpose; 44 px touch targets Keyboard and screen readers
Languages and themes English and German, numbers and dates in the language; light and dark In German, Theming
Real data to learn with Weather, countries, earthquakes, Nobel laureates, software end of life, each with questions to answer Learn with real data, live demo

For developers

Area Features Details
Packages pivotkit-react (<PivotReport>, React 18 and 19), pivotkit-element (<pivot-report>, its own React in a shadow root), pivotkit-core (the engine, browser and Node) Embed pivotkit
Data Plain objects, typed columns, case-insensitive names, wall-clock dates in timeZone, numbers sent as text (inferNumbers), dataKey, encoded, loading pivotkit-core, React props
The view Plain JSON, controlled or not, normalized against the data, versioned Views and saved views
Templates templates in two groups by scope; onSaveTemplate, onDeleteTemplate, onPublishTemplate with canPublish (Save and Save as replace by name); templateStore="browser"; x-pivotkit-views in an OpenAPI document; parseTemplates Templates and shared views
Sharing View files with a JSON Schema (toViewFile, fromViewFile, schemaUrl); links in the URL fragment (shareLink), capped; source, sources, onSourceSwitch; persistView="session" Sharing and keeping a view, view file format
Fields Labels, descriptions, links, aggregator, format, order per field (fieldDefaults), also from a JSON Schema or OpenAPI document Field descriptions and names
Values, dates, filters The view's keys for aggregators, show as, formats, derived fields, filters and sorts Values, dates, filters
Chart The view's chart settings, autoChartType, chartOptions as checked plain JSON Charts
Drill-down and export drillDown, drillDownLimit, onCellClick; fileName; every file and copy through onExport React props
Tips and help tips, storageKey, dismissedTips, onTipDismiss, fieldInfo, zoneInfo, settingInfo Tips, React props
Layout height, grow, fieldList, width classes, least heights, Enlarge and Full screen Layout
Look and language --pk-* tokens, light and dark, theme; every text replaceable (labels), locale Theming, Localisation
Web component Attributes, properties, pivot-* events with respondWith(), styles through tokens, bundle size, CSP pivotkit-element
Hosts Bundlers and import maps, PowerShell Universal, PHP, Angular, several reports on one page Recipes
Engine encode, normalize, computePivot, toGrid, toEChartsOption, toXlsx, toCsv, drill-down rows, links, templates pivotkit-core, engine
Security A view holds names only, checked against fixed lists and limits; exports safe to open; data written as text, never markup; a strict CSP works Security
Limits Rows, groups, cells and work capped before anything big is allocated; links capped while they are inflated Limits
Performance About 100,000 rows; heavy parts loaded on first use Performance, bundle size