Pivot Grid Feature List
Status legend:
Existing ✅- implemented now.Partial ☑️- foundation exists, but product/API/UX work is still needed. — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.Planned 🚧- roadmap item.
1. Data Source
Local data
✅Static array data source✅Immutable data source support✅Mutable data source support☑️Incremental row updates — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️☑️ row updates — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Batch row updates — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Append rows — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Remove rows — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Replace rows✅Data normalization for generated pivot rows/cells☑️Data type inference — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Schema inference — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Manual schema definition throughdimensions✅Directgrid.pivotconfiguration✅LegacyadditionalData.pivotconfiguration✅Restore original source, columns, grouping, and pinned rows onclearPivot()✅Generated pivot row metadata✅Generated pivot column metadata
Remote data
✅Server-side data source contract☑️Lazy loading — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Pagination-aware loading☑️Cursor-based loading — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Offset/limit loading🚧Streaming data source🚧WebSocket data source✅REST data source throughHttpPivotRemoteStore☑️GraphQL data source through custom adapter/store — Why partial: foundation exists through custom adapter/store, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Custom data adapter throughPivotEngineAdapter✅Request cancellation☑️Retry logic — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Loading state handling✅Error state handling✅Stale response guard✅HTTP auth header provider✅HTTP request lifecycle hooks✅In-flight remote request deduplication
Hybrid data
☑️Client-side cache — Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.✅Server-side aggregation with client rendering✅Client-side aggregation with remote-style engine adapter☑️☑️ pre-aggregation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.🚧Incremental cache refresh🚧Optimistic updates🚧Offline mode🚧Local-first mode
2. Field Model
Field metadata
✅Field name✅Field label through RevoGrid columnname✅Field type through RevoGrid column/type metadata✅Field description☑️Field category — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Field icon — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Field visibility throughhiddendimension metadata and show-hidden field filtering☑️Field permissions through remote field registry metadata — Why partial: foundation exists through remote field registry metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Field default format through column config/templates/parsers — Why partial: foundation exists through column config/templates/parsers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Field default aggregation through value definitions and dimension aggregators✅Field default sorting through RevoGrid column sort metadata✅Field default filtering through RevoGrid column filter metadata☑️Field nullable flag — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Field unique values provider✅Field value formatter through cell templates/parsers✅Field value parser through RevoGrid column parser support✅Server-side public selector registry✅Backend expression metadata for field registry✅Allowed filter operations metadata✅Allowed summary metadata✅Allowed group interval metadata✅Drilldown visibility metadata
Field types
✅Text field✅Number field☑️Integer field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Decimal field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Currency field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Percentage field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Date field☑️Date-time field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Time field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Boolean field☑️Enum field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Multi-enum field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Object field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Array field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️JSON field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Link field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Image field — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Custom field type through RevoGrid column types
Field categories
✅Dimension fields✅Measure fields☑️Calculated fields — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.✅Hidden fields throughhiddendimension metadata☑️System fields — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Technical fields — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️User-defined fields — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
3. Pivot Layout Areas
Rows area
✅Add row dimension✅Remove row dimension✅Reorder row dimensions✅Nested row dimensions✅Row hierarchy✅Row group expansion✅Row group collapse✅Row group sorting through grid sorting/dimension comparers☑️Row group filtering — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.✅Row group formatting through column templates/parsers✅Row group custom renderer through grouping label template
Columns area
✅Add column dimension✅Remove column dimension✅Reorder column dimensions✅Nested column dimensions✅Column hierarchy✅Column group expansion✅Column group collapse✅Column group sorting through dimension comparers☑️Column group filtering — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.✅Column group formatting through templates/placeholders☑️Column group custom renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
Values area
✅Add measure✅Remove measure✅Reorder measures✅Multiple measures✅Measure grouping in generated columns✅Measure display on columns✅Measure display on rows✅Measure aliases throughPivotConfigValue.label/name✅Measure formatting through column config/templates/parsers✅Measure custom renderer through RevoGrid cell templates
Filters area
✅Add report filter to configuration/panel✅Remove report filter from configuration/panel✅Reorder filters☑️Global filters — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.✅Field-level filters through RevoGrid filter collection✅Subtotal and grand-total rows are excluded from filter matching and selection-filter option lists☑️Context filters — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.🚧Hidden filters🚧Locked filters
4. Row Pivoting
Row grouping
✅Single-level row grouping✅Multi-level row grouping✅Nested row groups✅Hierarchical row grouping✅Tree-style row grouping through RevoGrid grouping✅Flat row grouping☑️Compact row grouping — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Outline row grouping — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Tabular row grouping — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
Row group behavior
✅Expand row group✅Collapse row group✅Expand all row groups throughcollapsed: false✅Collapse all row groups throughcollapsed: true☑️Expand to level — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Collapse to level — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Preserve expansion state✅Initial expansion state🚧Lazy group expansion🚧Async group expansion
Row group display
✅Group indentation through RevoGrid grouping✅Group icons through RevoGrid grouping✅Group labels☑️Group counts — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Group summaries throughgroupAggregations🚧Group badges☑️Group path display — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Custom group label✅Empty group label throughgroupLabels.empty✅Null group label throughgroupLabels.null
5. Column Pivoting
Column grouping
✅Single-level column grouping✅Multi-level column grouping✅Nested column groups✅Dynamic pivot columns✅Generated pivot columns✅Hierarchical column headers✅Multi-row column headers✅Column group headers✅Column leaf headers
Column group behavior
✅Expand column group✅Collapse column group✅Expand all column groups✅Collapse all column groups☑️Expand columns to level — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Collapse columns to level — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Preserve column expansion state🚧Lazy column group expansion🚧Async column group expansion
Column group display
✅Column group labels☑️Column group icons — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Column group summaries through subtotal/grand-total/collapsed buckets☑️Column group counts through hidden-count metadata — Why partial: foundation exists through hidden-count metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Column group badges☑️Custom column group renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.✅Empty column group label throughgroupLabels.empty✅Null column group label throughgroupLabels.null✅Flat column header mode✅Collapsed column placeholder header/cell templates✅Collapsed column hidden leaf count metadata
6. Aggregations
Basic aggregations
✅Sum✅Count☑️Count non-empty — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Count empty — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Count distinct throughdistinct✅Average✅Minimum✅Maximum✅Median✅Mode✅First value✅Last value✅Range🚧Product
Statistical aggregations
✅Variance☑️Sample variance — Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.✅Population variance✅Standard deviation throughstdDev☑️Sample standard deviation — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Population standard deviation throughstdDev🚧Percentile🚧Quartile🚧Interquartile range🚧Skewness🚧Kurtosis🚧Correlation🚧Covariance
Financial aggregations
🚧Weighted average✅Running total through advancedaccSumaggregator✅Cumulative sum through advancedaccSumaggregator🚧Year-to-date🚧Quarter-to-date🚧Month-to-date🚧Growth rate☑️Percentage change through custom aggregation — Why partial: foundation exists through custom aggregation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Contribution percentage through advanced%oftotalaggregator☑️Margin percentage through custom aggregation — Why partial: foundation exists through custom aggregation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Compound annual growth rate
Custom aggregations
✅Custom aggregation function☑️Multi-field aggregation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Aggregation dependencies — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Aggregation context — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Aggregation metadata — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.🚧Aggregation lifecycle hooks🚧Async aggregation☑️Server-defined aggregation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.✅User-defined aggregation✅Streaming accumulator path for common client aggregators✅Custom collapsed-column aggregation override
7. Calculated Fields
Calculated dimensions
☑️Formula-based dimension through precomputed/custom source fields — Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Date-derived dimension through precomputed/custom source fields — Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Text-derived dimension through precomputed/custom source fields — Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Bucketed dimension through remote group intervals or precomputed fields — Why partial: foundation exists through remote group intervals or precomputed fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Conditional dimension through precomputed/custom source fields — Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Lookup-based dimension through precomputed/custom source fields — Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Custom function dimension through precomputed/custom source fields — Why partial: foundation exists through precomputed/custom source fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
Calculated measures
☑️Formula-based measure through custom aggregation/precomputed fields — Why partial: foundation exists through custom aggregation/precomputed fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Measure-to-measure calculation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Ratio calculation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Percentage calculation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Difference calculation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.🚧Difference from previous🚧Difference from parent🚧Difference from grand total☑️Running calculation throughaccSum— Why partial: foundation exists throughaccSum, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Window calculation
Formula system
🚧Formula editor🚧Formula validation🚧Formula autocomplete🚧Formula syntax highlighting🚧Formula error display🚧Formula dependency tracking🚧Safe formula execution🚧Custom formula functions🚧Formula versioning
8. Totals and Subtotals
Grand totals
✅Row grand total✅Column grand total✅Both-axis grand total✅Enable/disable grand totals🚧Grand total position top✅Grand total position bottom through pinned bottom rows🚧Grand total position left✅Grand total position right as generated total columns✅Sticky grand total row through pinned bottom rows☑️Sticky grand total column — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
Subtotals
✅Row subtotals✅Column subtotals✅Per-level subtotals✅Per-field subtotals throughtotals.disabledSubtotals✅Enable/disable subtotals per field throughtotals.disabledSubtotals🚧Subtotal position before children✅Subtotal position after children✅Custom subtotal label☑️Custom subtotal aggregation — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.☑️Sticky subtotals — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Suppress single-child subtotals✅Suppress redundant grand total when single leaf
Total formatting
✅Grand total styling✅Subtotal styling✅Total row custom renderer through row column templates✅Total column custom renderer through value column templates✅Total value formatter through column templates/parsers✅Total label formatter through label templates/config labels✅Total cells readonly behavior
9. Filtering
Basic filters
✅Equals✅Not equals✅Contains✅Not contains✅Starts with✅Ends with☑️Is empty — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Is not empty — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Is null — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Is not null — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅In list✅Not in list
Number filters
✅Greater than✅Greater than or equal✅Less than✅Less than or equal✅Between through slider range mapping☑️Not between — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Positive — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Negative — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Zero — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Top N🚧Bottom N🚧Above average🚧Below average
Date filters
☑️Date equals — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Date before — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Date after — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Date between — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Today🚧Yesterday🚧Tomorrow🚧This week🚧Last week🚧Next week🚧This month🚧Last month🚧Next month🚧This quarter🚧Last quarter🚧This year🚧Last year🚧Year-to-date🚧Rolling period
Pivot-specific filters
☑️Pre-aggregation filters — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.☑️Post-aggregation filters — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.☑️Group filters — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.☑️Measure filters — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.🚧Subtotal filters🚧Grand total filters☑️Axis filters — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.☑️Context filters — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.✅Report filters in layout state/panel🚧Hidden filters🚧Locked filters
Filter UX
✅Filter popup through RevoGrid filters✅Filter chips through exported Pivot filter chip helpers☑️Filter sidebar — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.✅Filter search through RevoGrid filters where enabled🚧Filter presets🚧Filter history✅Clear filter through RevoGrid filters✅Clear all filters through RevoGrid filters🚧Save filter set🚧Restore filter set
10. Sorting
Field sorting
✅Ascending sort✅Descending sort✅No sort✅Multi-field sort in local grid sorting☑️Natural sort — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.☑️Locale-aware sort — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.☑️Case-sensitive sort — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.☑️Case-insensitive sort — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.✅Custom comparator through RevoGridcellCompare
Pivot sorting
✅Sort row groups by label☑️Sort row groups by measure — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.☑️Sort row groups by subtotal — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.☑️Sort row groups by grand total — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.✅Sort column groups by label☑️Sort column groups by measure — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.☑️Sort column groups by subtotal — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.☑️Sort column groups by grand total — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.✅Sort leaf rows✅Sort leaf columns
Advanced sorting
☑️Sort by hidden measure — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.☑️Sort by calculated field — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.☑️Sort by custom order — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.🚧Sort by manual order☑️Sort by hierarchy order — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.✅Sort by server-side order✅Preserve sort after refresh in remote controller state✅Field-panel sort toggle✅Remote sort descriptor mapping
11. Grouping Helpers
Date grouping
✅Group by year in remote contract🚧Group by half-year✅Group by quarter in remote contract✅Group by month in remote contract🚧Group by week✅Group by day in remote contract🚧Group by hour🚧Group by minute🚧Fiscal year grouping🚧Fiscal quarter grouping🚧Custom calendar grouping✅Group by day of week in remote contract
Number grouping
✅Fixed interval buckets in remote contract🚧Auto buckets☑️Custom buckets through precomputed/custom fields — Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Range buckets in remote contract☑️Histogram buckets — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Quantile buckets — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Negative/positive buckets — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
Text grouping
☑️First letter grouping through precomputed/custom fields — Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Prefix grouping through precomputed/custom fields — Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Regex grouping through precomputed/custom fields — Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Custom text buckets through precomputed/custom fields — Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Case-insensitive grouping — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Locale-aware grouping — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
Custom grouping
☑️Function-based grouping through precomputed/custom fields — Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Lookup-based grouping through precomputed/custom fields — Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Hierarchy-based grouping through row/column dimensions — Why partial: foundation exists through row/column dimensions, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Server-side grouping contract☑️User-defined grouping — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
12. Field Panel
Field list
✅Available fields list✅Field search☑️Field categories — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Field icons — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Field descriptions☑️Field type badges — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Hidden fields toggle throughfilterPivotDimensions(..., { showHidden })🚧Favorite fields🚧Recently used fields
Drag and drop
✅Drag field to rows✅Drag field to columns✅Drag field to values✅Drag field to filters✅Reorder fields✅Move field between areas🚧Duplicate field✅Remove field☑️Drop validation — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Configurable field dragging✅Configurable field removing
Field configuration
☑️Rename field through dimension config — Why partial: foundation exists through dimension config, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Change aggregation☑️Change format through dimension config — Why partial: foundation exists through dimension config, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Change sort☑️Change filter — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.☑️Change display mode — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Change subtotal settings — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Change null handling☑️Change permissions through field registry/server policy — Why partial: foundation exists through field registry/server policy, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Open advanced settings✅Configurable area visibility✅Localized field panel text
13. Pivot Builder UX
Visual builder
✅Drag-and-drop pivot builder✅Sidebar builder🚧Modal builder☑️Inline builder — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Compact builder☑️Advanced builder — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Beginner mode🚧Expert mode✅Standalone configurator API✅Standalone field panel API✅External configurator mount target
Configuration UX
✅Live preview☑️Apply/cancel mode — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Auto-apply mode✅Reset layout🚧Undo layout change🚧Redo layout change☑️Save configuration through remote store state API — Why partial: foundation exists through remote store state API, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Load configuration through remote store state API — Why partial: foundation exists through remote store state API, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Share configuration✅Public pivot config update event✅Preventable config update event flow
Validation UX
☑️Invalid field warning — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Missing measure warning — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.🚧Circular calculated field warning✅Unsupported server aggregation warning/error✅Server limitation warning✅Performance warning
14. Display Modes
Pivot table layouts
☑️Compact layout — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Outline layout — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Tabular layout — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Flat layout✅Matrix layout✅Tree layout through grouped rows☑️Excel-like layout — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Minimal layout — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Dense layout — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Comfortable layout — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
Measure display
✅Measures as columns✅Measures as rows✅Measures nested under columns✅Measures nested under rows☑️Measures before dimensions throughrowTree— Why partial: foundation exists throughrowTree, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Measures after dimensions✅Single measure mode✅Multi-measure mode✅AdvancedrowTreewith$valuespseudo-field✅Row-tree validation
Header display
✅Multi-row headers☑️Merged headers — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Repeated labels — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Hidden repeated labels — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Compact headers throughflatHeaders✅Sticky headers through RevoGrid☑️Rotated headers — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Wrapped headers — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
15. Cell Rendering
Value rendering
✅Raw value renderer✅Formatted value renderer☑️Currency renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.☑️Percentage renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.☑️Date renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.☑️Boolean renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.☑️Badge renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.☑️Icon renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.☑️Link renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.☑️Image renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.
Analytical rendering
☑️Data bars through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Sparklines through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Mini line charts through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Mini bar charts through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Mini area charts through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Heatmap cells through custom renderer/cell properties — Why partial: foundation exists through custom renderer/cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Progress bars through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Trend arrows through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️KPI indicators through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Status indicators through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
Custom rendering
✅Custom cell renderer✅Custom header renderer✅Custom group renderer✅Custom subtotal renderer✅Custom grand total renderer✅Custom empty cell renderer☑️Custom loading cell renderer — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.✅Framework component renderer through RevoGrid wrappers✅Dimension template/parser propagation to generated columns✅Total label template bypass for row-axis formatters
16. Formatting
Number formatting
✅Decimal places through Pivot value formatting presets✅Thousands separator through Pivot value formatting presets✅Currency symbol through Pivot value formatting presets✅Currency code through Pivot value formatting presets✅Percentage format through Pivot value formatting presets☑️Scientific notation — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Compact notation — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Negative number format — Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.☑️Zero display format — Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.☑️Null display format — Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.
Date formatting
✅Short date through Pivot value formatting presets✅Long date through Pivot value formatting presets✅Date-time through Pivot value formatting presets☑️Time only — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Relative date — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Custom date format — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.✅Locale-aware date format through Pivot value formatting presets☑️Timezone-aware date format — Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.
Conditional formatting
✅Value-based formatting through conditional formatting presets✅Measure-based formatting through conditional formatting presets☑️Field-based formatting through cell properties/templates — Why partial: foundation exists through cell properties/templates, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Row-based formatting through cell properties/templates — Why partial: foundation exists through cell properties/templates, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Column-based formatting through cell properties/templates — Why partial: foundation exists through cell properties/templates, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Group-level formatting through group label templates — Why partial: foundation exists through group label templates, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Subtotal formatting✅Grand total formatting☑️Formula-based formatting — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
17. Conditional Formatting Rules
Rule types
✅Greater than through conditional formatting presets✅Less than through conditional formatting presets✅Between through conditional formatting presets✅Equal to through conditional formatting presets✅Text contains through conditional formatting presets☑️Date occurs through custom cell properties — Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Duplicate values through custom cell properties — Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Unique values through custom cell properties — Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Top N through custom cell properties — Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Bottom N through custom cell properties — Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Above average through custom cell properties — Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Below average through custom cell properties — Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Formula rule through custom cell properties — Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Custom function rule through custom cell properties — Why partial: foundation exists through custom cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
Visual styles
✅Background color through cell properties✅Text color through cell properties✅Font weight through cell properties✅Border through cell properties☑️Icon set through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Data bar through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Color scale through cell properties — Why partial: foundation exists through cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Heatmap through cell properties — Why partial: foundation exists through cell properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Badge through custom renderer — Why partial: foundation exists through custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Tooltip through custom renderer/properties — Why partial: foundation exists through custom renderer/properties, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Cell flash
Rule management
🚧Add rule🚧Edit rule🚧Delete rule🚧Reorder rules🚧Enable/disable rule🚧Stop if true🚧Apply to selected measure🚧Apply to selected field🚧Apply to entire pivot
18. Drilldown
Cell drilldown
✅Drill into aggregated cell throughPivotDrilldownController✅Show source rows throughPivotDrilldownController✅Show filtered raw records throughPivotDrilldownController🚧Show drilldown panel🚧Show drilldown modal🚧Show drilldown table🚧Export drilldown rows🚧Copy drilldown rows
Drill path
✅Drill down one level through row/column expand-collapse✅Drill up one level through row/column expand-collapse☑️Drill to leaf records through remote drilldown contract — Why partial: foundation exists through remote drilldown contract, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Drill across dimensions — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Drill through to source system through custom remote store — Why partial: foundation exists through to source system through custom remote store, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Breadcrumb navigation — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Preserve drill state for rows and columns
Drilldown permissions
☑️Disable drilldown — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Field-level drilldown permission through field registry — Why partial: foundation exists through field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Measure-level drilldown permission — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.✅Mask sensitive fields through drilldown visible whitelist✅Server-side drilldown authorization boundary
19. Expand / Collapse
Row expansion
✅Expand row group✅Collapse row group✅Expand all rows✅Collapse all rows✅Expand selected group✅Collapse selected group☑️Expand to row level — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Collapse to row level — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Lazy expand🚧Async expand
Column expansion
✅Expand column group✅Collapse column group✅Expand all columns✅Collapse all columns✅Expand selected column group✅Collapse selected column group☑️Expand to column level — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Collapse to column level — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Lazy column expand🚧Async column expand
Expansion state
✅Save expansion state✅Restore expansion state✅Serialize expansion state through pivot config✅Path-based expansion☑️Key-based expansion — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Server-side expansion state — Why partial: remote/server contracts or hooks exist, but the default backend, UI flow, and end-to-end behavior are not fully shipped.✅Initial expanded paths✅Initial collapsed paths✅Persisted column collapsed state map
20. Selection
Cell selection
☑️Single cell selection through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Multiple cell selection through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Range selection through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Non-contiguous selection through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Select visible cells only — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Select raw values — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Select formatted values — Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.
Row selection
☑️Select row group through RevoGrid grouping/selection — Why partial: foundation exists through RevoGrid grouping/selection, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Select leaf row through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Select subtotal row through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Select grand total row through RevoGrid pinned rows — Why partial: foundation exists through RevoGrid pinned rows, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Select all visible rows — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Select all source rows behind group☑️Checkbox selection through RevoGrid/custom columns — Why partial: foundation exists through RevoGrid/custom columns, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Keyboard row selection through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
Column selection
☑️Select pivot column through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Select column group through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Select measure column through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Select subtotal column through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Select grand total column through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Select all visible columns — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Keyboard column selection through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
21. Copy / Paste
Copy
☑️Copy selected cells through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Copy with row headers through Pivot TSV copy helper✅Copy with column headers through Pivot TSV copy helper✅Copy with full pivot headers through Pivot TSV copy helper☑️Copy raw values — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Copy formatted values — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.✅Copy as TSV through Pivot TSV copy helper☑️Copy as CSV — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Copy as HTML table — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.🚧Copy selected drilldown rows
Paste
☑️Paste into source data through RevoGrid editing — Why partial: foundation exists through RevoGrid editing, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Paste into editable cells through RevoGrid editing — Why partial: foundation exists through RevoGrid editing, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Paste range through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Paste with validation through RevoGrid/custom validation — Why partial: foundation exists through RevoGrid/custom validation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Paste with parsing through RevoGrid parsers — Why partial: foundation exists through RevoGrid parsers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Paste with type conversion through RevoGrid parsers — Why partial: foundation exists through RevoGrid parsers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Paste conflict handling🚧Paste undo support
22. Editing
Source editing
☑️Edit source cell through RevoGrid editing — Why partial: foundation exists through RevoGrid editing, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Add source row — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Delete source row — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Update source row — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Batch edit rows — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Validate source edit — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Recalculate pivot after edit — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Highlight affected pivot cells
Pivot editing
🚧Edit aggregated value🚧Write-back to source records🚧Distribute value change🚧Equal distribution🚧Proportional distribution🚧Custom distribution strategy☑️Lock non-editable measures through readonly generated columns/total cells — Why partial: foundation exists through readonly generated columns/total cells, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Edit validation🚧Edit audit log
Editing UX
☑️Inline editor through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Popup editor through RevoGrid/custom editor — Why partial: foundation exists through RevoGrid/custom editor, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Formula editor☑️Dropdown editor through RevoGrid/custom editor — Why partial: foundation exists through RevoGrid/custom editor, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Date editor through RevoGrid/custom editor — Why partial: foundation exists through RevoGrid/custom editor, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Number editor through RevoGrid/custom editor — Why partial: foundation exists through RevoGrid/custom editor, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Currency editor through RevoGrid/custom editor — Why partial: foundation exists through RevoGrid/custom editor, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Custom editor through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Commit/cancel edit through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Undo/redo edit
23. Undo / Redo
Layout undo
🚧Undo field move🚧Undo field remove🚧Undo field add🚧Undo sort change🚧Undo filter change🚧Undo format change🚧Undo layout reset
Data undo
🚧Undo cell edit🚧Undo row insert🚧Undo row delete🚧Undo paste🚧Undo batch update🚧Redo all actions
History
🚧Action history🚧Transaction grouping🚧Named transactions🚧Clear history🚧History size limit🚧Server-side history integration
24. Export
CSV export
✅Export visible pivot through Pivot CSV export helper☑️Export full pivot — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export expanded rows only — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export all rows — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export selected range — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.🚧Export drilldown rows☑️Export raw values — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export formatted values — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
Excel export
☑️Export to XLSX through external/custom integration — Why partial: foundation exists through external/custom integration, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Export merged headers — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export grouped headers — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export subtotals — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export grand totals — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export formatting — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export conditional formatting — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export frozen panes — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export column widths — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Export multiple sheets — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.🚧Export drilldown sheet
Other export
✅Export to JSON through Pivot state JSON helper✅Export pivot state through Pivot state JSON helper🚧Export PDF🚧Export image☑️Export clipboard through grid copy support — Why partial: foundation exists through grid copy support, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Server-side export through request contract extension — Why partial: foundation exists through request contract extension, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Background export job
25. Import
File import
☑️Import CSV through application/source setup — Why partial: foundation exists through application/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Import TSV through application/source setup — Why partial: foundation exists through application/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Import Excel through application/source setup — Why partial: foundation exists through application/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Import JSON through application/source setup — Why partial: foundation exists through application/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Import clipboard data through grid paste/source setup — Why partial: foundation exists through grid paste/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Import from URL through application/source setup — Why partial: foundation exists through application/source setup, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Import from database adapter through remote store/adapter — Why partial: foundation exists through remote store/adapter, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
Import processing
☑️Header detection — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Type inference — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Schema mapping — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Field mapping — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Data validation — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Error reporting — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Preview before import☑️Import transformation — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.🚧Import deduplication
Pivot import
☑️Import pivot state through serializable config — Why partial: foundation exists through serializable config, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Import saved view through remote state API — Why partial: foundation exists through remote state API, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Import calculated fields through precomputed/custom fields — Why partial: foundation exists through precomputed/custom fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Import formatting rules☑️Import filters through config/grid filter state — Why partial: foundation exists through config/grid filter state, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Import sort rules through grid sort state — Why partial: foundation exists through grid sort state, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
26. Charts
Pivot charts
🚧Bar chart🚧Stacked bar chart🚧Line chart🚧Area chart🚧Pie chart🚧Donut chart🚧Scatter chart🚧Bubble chart🚧Heatmap🚧Treemap🚧Waterfall chart🚧Combo chart
Chart integration
☑️Generate chart from pivot through external adapter/source data — Why partial: foundation exists through external adapter/source data, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Chart selected range through RevoGrid selection plus external charting — Why partial: foundation exists through RevoGrid selection plus external charting, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Chart selected row group — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Chart selected column group — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Sync chart with filters — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.☑️Sync chart with pivot state — Why partial: state primitives exist, but complete persistence, management UI, and migration behavior are incomplete.🚧Drill from chart to pivot🚧Export chart🚧Custom chart adapter
27. Performance
Rendering performance
✅Row virtualization through RevoGrid✅Column virtualization through RevoGrid✅Header virtualization through RevoGrid☑️Group row virtualization through RevoGrid grouping — Why partial: foundation exists through RevoGrid grouping, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Dynamic column virtualization through RevoGrid✅Frozen area virtualization through RevoGrid✅Efficient DOM recycling through RevoGrid☑️Incremental rendering through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Lazy cell rendering through RevoGrid/custom templates — Why partial: foundation exists through RevoGrid/custom templates, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
Aggregation performance
✅Incremental aggregation for common client aggregators while scanning rows☑️Memoized aggregation tree — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️☑️ recalculation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Dirty path recalculation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Batch recalculation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.🚧Web Worker aggregation🚧WASM aggregation support☑️Async aggregation through remote/server mode — Why partial: foundation exists through remote/server mode, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Streaming aggregation — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.
Large data support
☑️Hundreds of thousands of rows — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Millions of rows with server-side mode contract✅High column count support through column virtualization/server column viewport☑️High cardinality field support — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Sparse matrix support through remote cell matrix materialization — Why partial: foundation exists through remote cell matrix materialization, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Memory usage optimization — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Backpressure handling — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Performance diagnostics through remote diagnostics model formatter
28. Server-Side Pivot
Server request model
✅Row group descriptors✅Column group descriptors✅Value descriptors✅Filter descriptors✅Sort descriptors✅Expanded row paths✅Expanded column paths✅Row viewport✅Column viewport✅Requested summaries✅Drilldown request☑️Export request — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.✅UI state hints✅Request id correlation✅View id and fields version
Server response model
✅Pivot rows✅Pivot columns through axis paths/materialization✅Cell matrix through__rowPathand__columnPath☑️Sparse cell matrix — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Row group count✅Column group count✅Total summaries✅Group summaries✅Metadata✅Warnings☑️Errors through typedPivotError— Why partial: foundation exists through typedPivotError, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Pinned summary rows
Server features
✅Server-side grouping contract✅Server-side aggregation contract✅Server-side filtering contract✅Server-side sorting contract✅Server-side pagination☑️Server-side expansion — Why partial: remote/server contracts or hooks exist, but the default backend, UI flow, and end-to-end behavior are not fully shipped.✅Server-side drilldown contract☑️Server-side export — Why partial: remote/server contracts or hooks exist, but the default backend, UI flow, and end-to-end behavior are not fully shipped.✅Server-side cache key contract✅Query cancellation✅SQL-oriented query planner✅Average summary decomposition into sum/count plan✅Server response normalization helpers
29. Caching
Client cache
☑️Raw data cache through captured original source — Why partial: foundation exists through captured original source, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Aggregation cache — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Group tree cache — Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.☑️Column tree cache — Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.☑️Cell value cache — Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.☑️Format cache — Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.☑️Drilldown cache through remote store dedup keys — Why partial: foundation exists through remote store dedup keys, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Expansion cache through pivot config state✅View state cache through remote state API contract✅In-flight load deduplication
Server cache
✅Query result cache key generation☑️Aggregation cache — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Dimension member cache — Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.☑️Filter value cache — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.☑️Export cache — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Drilldown cache key generation — Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.☑️Cache invalidation request contract — Why partial: remote/server contracts or hooks exist, but the default backend, UI flow, and end-to-end behavior are not fully shipped.☑️Cache TTL — Why partial: cache keys/state foundations exist, but full lifecycle, invalidation, and observability are not complete.✅Cache key generation✅Tenant/view/fields/dataset watermark cache scope✅Cache status response metadata
30. Realtime Updates
Data updates
☑️Insert row through source replacement/reapply — Why partial: foundation exists through source replacement/reapply, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Update row through source replacement/reapply — Why partial: foundation exists through source replacement/reapply, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Delete row through source replacement/reapply — Why partial: foundation exists through source replacement/reapply, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Batch updates through source replacement/reapply — Why partial: foundation exists through source replacement/reapply, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Streaming updates🚧WebSocket updates🚧Event-source updates☑️Polling updates through application-controlled source/remote reload — Why partial: foundation exists through application-controlled source/remote reload, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
Pivot recalculation
☑️Recalculate affected groups — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Recalculate affected measures — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Recalculate affected totals — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Preserve expansion state☑️Preserve selection — Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.☑️Preserve scroll position — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Preserve editing state — Why partial: state primitives exist, but complete persistence, management UI, and migration behavior are incomplete.🚧Throttle updates🚧Debounce updates✅Reapply pivot after external source changes✅Reapply pivot after external column changes
Visual feedback
🚧Cell flash🚧Row flash🚧Updated group indicator🚧Changed total indicator🚧Stale data indicator☑️Last updated timestamp through remote metadata — Why partial: foundation exists through remote metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
31. State Management
Pivot state
✅Rows state✅Columns state✅Values state✅Filters state✅Sorting state☑️Formatting state through dimension config — Why partial: foundation exists through dimension config, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Expansion state☑️Selection state through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Scroll state through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Field panel state✅Column collapse state✅Engine/view/field-version state
State operations
✅Get state through active config/grid properties✅Set state throughgrid.pivot✅Reset state throughclearPivot()/empty config☑️Merge state through config update event patches — Why partial: foundation exists through config update event patches, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Serialize state through pivot config✅Deserialize state through pivot config☑️Version state through remote state response version — Why partial: foundation exists through remote state response version, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Migrate state — Why partial: state primitives exist, but complete persistence, management UI, and migration behavior are incomplete.☑️Validate state — Why partial: state primitives exist, but complete persistence, management UI, and migration behavior are incomplete.
Saved views
✅Save view through typed remote store helper✅Load view through typed remote store helper✅Rename view through saved-view collection helper✅Delete view through saved-view delete intent helper✅Duplicate view through saved-view collection helper🚧Share view🚧Favorite view🚧Default view☑️User view through remote state user id — Why partial: foundation exists through remote state user id, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Team view🚧Public view
32. API
Pivot API
✅setRowsthroughgrid.pivot.rowsupdate✅getRowsthroughgrid.pivot.rows/active config✅setColumnsthroughgrid.pivot.columnsupdate✅getColumnsthroughgrid.pivot.columns/active config✅setValuesthroughgrid.pivot.valuesupdate✅getValuesthroughgrid.pivot.values/active config✅setFiltersthroughgrid.pivot.filters/remote filters✅getFiltersthroughgrid.pivot.filters/remote filters✅setSortingthrough RevoGrid sorting plugin/remote controller✅getSortingthrough RevoGrid sorting plugin/remote controller✅refreshthroughapplyPivot()/config reassignment✅resetthroughclearPivot()✅createPivotData✅createPivotDataModel✅pivotColumns✅pivotColumnsFromPaths
Expansion API
✅expandPaththroughexpandedstate updates✅collapsePaththroughexpandedstate updates✅expandAllthroughcollapsed: false✅collapseAllthroughcollapsed: true☑️expandToLevel— Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️collapseToLevel— Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅getExpandedPathsthrough config state✅setExpandedPathsthrough config state✅Column collapse state throughcollapsedColumns
Data API
✅setDatathrough grid source replacement✅getDatathrough grid source/original source☑️updateRows— Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️appendRows— Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️removeRows— Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅refreshDatathrough source change/reapply✅getSourceRowsthrough captured original source☑️getDrilldownRowsthrough remote drilldown contract — Why partial: foundation exists through remote drilldown contract, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
Export API
✅exportCsvthrough Pivot CSV export helper☑️exportExcel— Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.✅exportJsonthrough Pivot state JSON helper✅exportStatethrough serializable pivot config☑️exportDrilldown— Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.
Remote API
✅PivotEngineAdapter.load✅PivotEngineAdapter.drilldown✅PivotRemoteStore.load✅PivotRemoteStore.drilldown✅PivotRemoteStore.saveState✅PivotRemoteStore.loadState✅HttpPivotRemoteStore✅SqlPivotQueryPlanner✅createFieldRegistry✅createPivotCacheKey
33. Events
Layout events
✅Pivot changed throughPIVOT_CFG_UPDATE_EVENT✅Field added through config update event✅Field removed through config update event✅Field moved through config update event✅Field reordered through config update event✅Rows changed through config update event✅Columns changed through config update event✅Values changed through config update event✅Filters changed through config update event✅Sorting changed through RevoGrid sorting events/remote sort handling
Interaction events
✅Cell click through RevoGrid✅Cell double click through RevoGrid✅Cell context menu through RevoGrid✅Header click through RevoGrid✅Group click through RevoGrid grouping✅Expand through RevoGrid group/column events✅Collapse through RevoGrid group/column events✅Selection change through RevoGrid🚧Drilldown open🚧Drilldown close✅Column collapse event integration✅Column expand event integration
Data events
✅Data loading through loader event in remote mode✅Data loaded through remote hooks/grid events✅Data error through remote hooks and Pivot UI diagnostics✅Data refreshed through source set/reapply☑️Aggregation started — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Aggregation finished — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.✅Server request started through remote store hooks✅Server request finished through remote store hooks✅Server request failed through remote store hooks✅Pagination change event integration✅Filter apply event interception in server mode✅Sorting apply event interception in server mode
Editing events
☑️Edit start through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Edit validate through RevoGrid/custom validation — Why partial: foundation exists through RevoGrid/custom validation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Edit commit through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Edit cancel through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Edit error through RevoGrid/custom validation — Why partial: foundation exists through RevoGrid/custom validation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Paste start through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Paste commit through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Undo🚧Redo
34. Accessibility
Keyboard support
☑️Keyboard navigation through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Keyboard selection through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Keyboard expand/collapse through RevoGrid grouping/headers — Why partial: foundation exists through RevoGrid grouping/headers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Keyboard field panel control — Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.☑️Keyboard sorting through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Keyboard filtering through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Keyboard editing through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Keyboard shortcuts — Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.
Screen reader support
☑️ARIA grid roles through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️ARIA row groups through RevoGrid grouping — Why partial: foundation exists through RevoGrid grouping, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️ARIA column groups through RevoGrid headers — Why partial: foundation exists through RevoGrid headers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️ARIA expanded state — Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.☑️ARIA selected state — Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.☑️ARIA sort state — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.☑️Accessible labels — Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.☑️Accessible descriptions — Why partial: base grid behavior exists, but Pivot-specific grouped rows, generated columns, and totals need dedicated UX/accessibility coverage.
Visual accessibility
☑️High contrast mode through theming — Why partial: foundation exists through theming, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Reduced motion mode through CSS/application theme — Why partial: foundation exists through CSS/application theme, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Focus outlines through RevoGrid/browser controls☑️Large touch targets — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Color-blind-safe formatting — Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.☑️Text alternatives for icons — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
35. Permissions
Field permissions
☑️Hide field through dimensions/field registry — Why partial: foundation exists through dimensions/field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Disable field through dimensions/field registry — Why partial: foundation exists through dimensions/field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Read-only field through RevoGrid readonly columns — Why partial: foundation exists through RevoGrid readonly columns, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️No-export field — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.✅No-drilldown field through registrydrilldownVisible☑️Masked field through backend/custom renderer — Why partial: foundation exists through backend/custom renderer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Aggregated-only field through remote field registry policy — Why partial: foundation exists through remote field registry policy, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
Action permissions
☑️Disable export — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Disable drilldown — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Disable editing through readonly columns — Why partial: foundation exists through readonly columns, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Disable field panel through config🚧Disable calculated fields🚧Disable custom formulas☑️Disable saved views through store/policy — Why partial: foundation exists through store/policy, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Disable sharing
Data permissions
☑️Row-level security through server-side backend — Why partial: foundation exists through server-side backend, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Column-level security through field registry/backend — Why partial: foundation exists through field registry/backend, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Measure-level security through allowed summaries/backend — Why partial: foundation exists through allowed summaries/backend, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Drilldown-level security through field registry/backend authorization boundary✅Server-side permission validation helpers☑️Permission-aware totals — Why partial: backend/custom hooks can enforce it, but Pivot does not yet ship complete policy configuration, UI, and audit flows.☑️Permission-aware filters — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.
36. Security
Client security
🚧Safe formula execution✅No unsafe eval in pivot implementation☑️Sanitized renderers — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.☑️XSS-safe cell content through RevoGrid/default rendering — Why partial: foundation exists through RevoGrid/default rendering, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️XSS-safe tooltips — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️XSS-safe exports — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.☑️Safe custom HTML mode — Why partial: extension points can support it, but Pivot does not yet provide built-in presets, configuration UI, and documented behavior.☑️CSP compatibility — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.
Server security
✅Validate pivot requests through field registry/planner helpers✅Validate filter expressions through allowed operations metadata✅Validate sort expressions through selector registry☑️Validate calculated fields — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Rate limit expensive queries — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Query timeout/cancellation through AbortSignal contract✅Request size limit throughPivotLimitscontract✅Export size limit throughPivotLimitscontract☑️Audit logging through remote hooks/backend — Why partial: foundation exists through remote hooks/backend, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Typed pivot errors
37. Observability
Performance metrics
☑️Render time through external instrumentation — Why partial: foundation exists through external instrumentation, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Aggregation time through remote metadata — Why partial: foundation exists through remote metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Filter time through remote metadata — Why partial: foundation exists through remote metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Sort time through remote metadata — Why partial: foundation exists through remote metadata, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Export time — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.✅Server request time through remote metadata/hooks✅Cache hit rate through cache status metadata/hooks☑️Memory usage — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Visible row count through response row-axis metadata✅Visible column count through response column-axis metadata✅Generated timestamp metadata✅Request correlation id
Debugging
☑️Debug mode — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Query inspector through planner/request objects — Why partial: foundation exists through planner/request objects, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Pivot state inspector through serializable config✅Field metadata inspector through field registry☑️Aggregation tree inspector — Why partial: aggregation/custom-field foundations exist, but this needs a first-class Pivot API, UI, dependency handling, and tests.☑️Render profiler — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Slow operation warnings through response warnings metadata✅Error details throughPivotErrormetadata✅Developer warnings through console errors/typed errors✅Remote warnings and errors in Pivot UI diagnostics
38. Theming
Theme support
✅Light theme through RevoGrid theme/CSS✅Dark theme through RevoGrid theme/CSS☑️High contrast theme — Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.☑️Compact theme — Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.✅Custom theme through CSS/classes✅CSS variables through RevoGrid/plugin styles☑️Theme tokens — Why partial: styling hooks exist, but there are no complete Pivot presets, tokens, and documented runtime controls yet.✅Runtime theme switching✅Theme propagation to configurator and field panel
Style customization
✅Cell styles through RevoGrid cell properties✅Header styles through RevoGrid column config✅Group row styles through grouping template/CSS✅Subtotal styles✅Grand total styles✅Field panel styles☑️Filter popup styles through RevoGrid — Why partial: foundation exists through RevoGrid, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Drag-and-drop styles
39. Localization
Text localization
✅Field panel labels☑️Filter labels through RevoGrid/application — Why partial: foundation exists through RevoGrid/application, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Sort labels through RevoGrid/application — Why partial: foundation exists through RevoGrid/application, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Aggregation labels through configurator/value selector text✅Empty states in field/configurator panels☑️Error messages — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Export labels☑️Context menu labels through RevoGrid/application — Why partial: foundation exists through RevoGrid/application, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Configurator labels throughi18n
Locale formatting
✅Locale number formatting through Pivot value formatting presets✅Locale currency formatting through Pivot value formatting presets✅Locale date formatting through Pivot value formatting presets☑️Locale time formatting through custom templates/parsers — Why partial: foundation exists through custom templates/parsers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Locale sorting through custom comparators — Why partial: foundation exists through custom comparators, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️RTL layout support — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Timezone support through custom templates/parsers — Why partial: foundation exists through custom templates/parsers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
40. Framework Integration
JavaScript
✅Vanilla JS support✅TypeScript support✅ESM build☑️CJS build — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Tree-shakable modules✅Public TypeScript exports for client, remote, field registry, cache, planner, and engine APIs
Frameworks
✅React wrapper/examples✅Vue wrapper/examples✅Angular wrapper/examples☑️Svelte wrapper through Web Component usage — Why partial: foundation exists through Web Component usage, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Solid wrapper through Web Component usage — Why partial: foundation exists through Web Component usage, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Web Components support
Integration helpers
☑️Controlled state mode throughgrid.pivotand update events — Why partial: foundation exists throughgrid.pivotand update events, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Uncontrolled state mode through plugin-owned active config☑️React hooks — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Vue composables — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️Angular services — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Event adapters through RevoGrid custom events✅Type-safe config
41. Documentation
User docs
✅Basic pivot guide/demo✅Field panel guide/demo✅Aggregation guide/demo through custom aggregator examples☑️Filtering guide — Why partial: filter state and mapping exist, but this specific Pivot filter mode lacks dedicated UI, semantics, and validation.☑️Sorting guide — Why partial: sorting foundations exist, but this specific Pivot sort mode lacks dedicated controls, semantics, and coverage.✅Formatting guide/demo☑️Export guide — Why partial: grid/application hooks can support it, but Pivot-specific header/state/value handling is not complete.✅Drilldown guide/demo for expand-collapse☑️Saved views guide — Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.✅Totals guide/demo✅Remote pivot guide/demo✅Values-on-rows guide/demo
Developer docs
☑️API reference — Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.☑️Type reference — Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.✅Custom aggregation guide/demo✅Custom renderer guide through RevoGrid examples✅Server-side pivot guide/demo☑️Data adapter guide — Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.☑️Performance guide — Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.☑️Security guide — Why partial: backend/custom hooks can enforce it, but Pivot does not yet ship complete policy configuration, UI, and audit flows.☑️Migration guide — Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.
Examples
✅Basic pivot✅Sales analytics☑️Finance report — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️ERP inventory — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.✅Server-side pivot🚧Realtime pivot☑️Editable pivot — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.🚧Pivot with charts☑️Pivot with permissions — Why partial: backend/custom hooks can enforce it, but Pivot does not yet ship complete policy configuration, UI, and audit flows.☑️Pivot with saved views — Why partial: state primitives exist, but complete persistence, management UI, and migration behavior are incomplete.✅Pivot totals✅Pivot drill-down✅Pivot values on rows✅Pivot field panel✅Pivot custom aggregator✅Pivot remote/OLAP backend demos
42. AI Features
Natural language pivot
🚧Create pivot from prompt🚧Modify pivot from prompt🚧Add measure from prompt🚧Add filter from prompt🚧Add calculated field from prompt🚧Explain current pivot🚧Suggest better pivot🚧Detect anomalies🚧Summarize insights
AI assistant actions
🚧Generate pivot layout🚧Generate chart🚧Generate formula🚧Generate aggregation🚧Generate export summary🚧Explain drilldown result🚧Recommend filters🚧Recommend dimensions
43. Enterprise Features
Governance
☑️Shared reports through remote saved-state contract — Why partial: foundation exists through remote saved-state contract, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Team views☑️Role-based access through backend/field registry — Why partial: foundation exists through backend/field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Audit logs through remote hooks/backend — Why partial: foundation exists through remote hooks/backend, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Change history☑️Admin-controlled defaults through supplied config — Why partial: foundation exists through supplied config, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Locked reports through backend/application policy — Why partial: foundation exists through backend/application policy, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Certified datasets throughviewId/fieldsVersion— Why partial: foundation exists throughviewId/fieldsVersion, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
Compliance
☑️Export audit log through backend hooks — Why partial: foundation exists through backend hooks, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Drilldown audit log through backend hooks — Why partial: foundation exists through backend hooks, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Permission audit through backend/field registry — Why partial: foundation exists through backend/field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Data masking through backend/custom renderers — Why partial: foundation exists through backend/custom renderers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️PII protection through backend/field registry — Why partial: foundation exists through backend/field registry, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Secure formula mode✅Server validation helpers☑️Compliance documentation — Why partial: some examples or APIs exist, but documentation is not complete enough to treat it as shipped.
Supportability
☑️Diagnostics package through state/metadata export — Why partial: foundation exists through state/metadata export, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅Error reporting hooks through remote store hooks☑️Performance report through remote metadata/hooks — Why partial: foundation exists through remote metadata/hooks, but there is no complete Pivot-specific product workflow, public API, and coverage yet.✅State snapshot export through serializable config✅Reproducible bug state through config/source examples☑️Version compatibility checks throughfieldsVersion/response version — Why partial: foundation exists throughfieldsVersion/response version, but there is no complete Pivot-specific product workflow, public API, and coverage yet.
44. Nice-to-Have Advanced Features
🚧Pivot recommendations☑️Auto-detected measures through schema/type inference in application layer — Why partial: foundation exists through schema/type inference in application layer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Auto-detected dimensions through schema/type inference in application layer — Why partial: foundation exists through schema/type inference in application layer, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Smart field categorization☑️Automatic date hierarchy through remote group intervals/application preprocessing — Why partial: foundation exists through remote group intervals/application preprocessing, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Automatic number bucketing through remote numeric buckets/application preprocessing — Why partial: foundation exists through remote numeric buckets/application preprocessing, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Custom hierarchies through row/column dimensions androwTree— Why partial: foundation exists through row/column dimensions androwTree, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️Parent-child dimensions through precomputed hierarchy fields — Why partial: foundation exists through precomputed hierarchy fields, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Slowly changing dimensions🚧Scenario comparison🚧Budget vs actual mode🚧Forecast columns🚧What-if analysis🚧Editable planning mode🚧Comments on cells🚧Cell annotations🚧Collaborative views🚧Live cursors🚧Report subscriptions🚧Scheduled exports🚧Email reports☑️Embedded dashboard mode through Web Component/framework wrappers — Why partial: foundation exists through Web Component/framework wrappers, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️White-label mode through CSS/theming — Why partial: foundation exists through CSS/theming, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧Plugin marketplace✅Custom pivot extensions through adapters, stores, templates, and aggregators☑️MCP/AI-agent integration — Why partial: supporting primitives exist, but dedicated Pivot product behavior, public API, UI, and test coverage are incomplete.☑️OLAP cube adapter throughPivotEngineAdapter— Why partial: foundation exists throughPivotEngineAdapter, but there is no complete Pivot-specific product workflow, public API, and coverage yet.☑️SQL adapter throughSqlPivotQueryPlanner— Why partial: foundation exists throughSqlPivotQueryPlanner, but there is no complete Pivot-specific product workflow, public API, and coverage yet.🚧DuckDB adapter🚧Apache Arrow support🚧Parquet support🚧WASM query engine🚧Worker-thread query engine