Files
vangel76andClaude Opus 5.5 400ab591cb PivotTables: calculated fields (pivot.calculatedField) (#304)
A value field can be a calculated field whose formula is evaluated on
the sums of the fields it names for each report cell (Excel's documented
semantics). Command to add/change/delete, dialog from the field pane,
XLSX cacheField formula round trip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:24:50 +02:00

7.5 KiB
Raw Permalink Blame History

Roadmap detail

Last reviewed: 2026-10-11 · Last updated: 2026-10-11 · Change: minor (PivotTable calculated fields) · Target: Microsoft Excel (Microsoft 365)

Forward-looking plan. The one-page summary is ROADMAP.md; the ranked work list is gaps.md; numbers and method are in target-app-parity.md. Estimates are Opus 5.5 agent-hours.

Current focus

  1. Review and land the open PR queue (50 PRs on 2026-10-10): recalc and spill fixes (#148, #155, #156, #157), whole-sheet and large-range fixes (#151, #152, #153, #154), chart kinds (#158, #161), macOS document open (#164, #167), German UI, numbers and formulas (#163), 15-digit comparison (#187). 8–15 h. Language work should extend the new i18n catalog past the ribbon rather than add scattered literals.
  2. XLSX on real files (gaps #1, #3): corpus run plus Excel opening our output.
  3. Large workbooks and multi-threaded recalc (gap #2).

Alpha gate

The core workflows a typical Excel user runs every day, checked end to end on the main platform (macOS desktop), including saving and reopening the work. Any "no", or a "partial" that blocks the workflow, would make GridCraft pre-alpha.

Core workflow Works end to end? Evidence Hours to pass
Build a model: enter data and formulas, recalc, save XLSX, reopen yes 492 working functions, dynamic arrays, LET/LAMBDA, names, tables; XLSX round-trip tests (crates/xlsx/src/tests/roundtrip.rs). Edge-case bugs (#57 15-digit equality, stale spills #133/#139) give wrong results in specific cases, not in the workflow 0 (fixes are beta work, gap #6)
Open a colleague's XLSX, edit, save, hand it back partial, not blocking Typical workbooks open and save with cells, styles, CF, validation, tables, names and pivots; unmodelled parts are dropped with a warning (gap #3); Excel-side repair prompts unverified (gap #1); ~100 MB files fail (#175) 0 for alpha (gaps #1–#3 are beta gates)
Format and present: number formats, styles, conditional formatting, print or PDF yes Full number-format language, 47 cell styles, all CF kinds, Page Break Preview, PDF export and printing. PDF can't carry non-Latin text (gap #5) 0
Analyze: sort, filter, tables, PivotTable yes Multi-level sort, AutoFilter, tables with totals, PivotTables with field list, layouts, grouping, refresh and XLSX round-trip. Calculated fields done; slicers missing (gap #8) 0
Chart the data partial, not blocking Column, bar, line, pie, area, scatter and combo charts are created, edited and survive save and reopen; histogram, box, waterfall, funnel, treemap, sunburst and stock lose their kind in XLSX (fix in PRs #158, #161); no axis options or trendlines (gap #4) 0 for alpha (2–4 h to merge the kind fixes)
Import and export CSV yes Encoding and delimiter detection on read, CSV/TSV write; exports raw rather than displayed values (gap #19) 0

Passes: every core workflow works end to end on macOS with save and reopen; the two partial rows lose fidelity only on less common content (very large files, unmodelled parts, advanced chart kinds), which are beta gates, not alpha blockers. Ready for real work ~50% is inside the 40–75% alpha band.

Beta gates

Beta means: ~75% ready for real work, opens and saves XLSX reliably, remaining gaps are known bugs and edge features. Each gate links its gap.

Gate Gap Hours
XLSX proven on a real-world corpus; Excel opens our output without repair #1 15–25
Unmodelled XLSX parts preserved on save #3 10–15
100 MB workbooks open; 1M rows usable; multi-threaded recalc; 100k-edit recalc < 100 ms #2 25–40
Charts: kinds and options survive round trip; axes, trendlines, error bars #4 25–35
Text in every script renders and exports #5 12–20
Calculation correctness bugs closed; iterative calculation #6 10–15
.xls import, password-protected workbooks #7 28–42
PivotTables: slicers, calculated fields, PivotCharts, verified in Excel #8 20–30
Keyboard: key tips, shortcut audit, context menus #9 12–20
Field crashes and freezes closed; autosave/recovery soak #10 8–12
Total ~165–255 (≈160–240 after overlap with the PR queue)

With 4–5 agents and an integrator, about 40–60 wall-clock hours. Needs the owner: running Excel to check our files, and Windows machines with the reported GPU drivers.

Milestones

# Milestone Status
M0 Foundation: core, number formats, formula language, functions, model, calc, XLSX/CSV, engine done
M1 Excel look: chrome, ribbon, formula bar, grid, tabs, status bar, control channel done (polish continues)
M2 Formatting completeness done
M3 Editing power (AutoComplete, spelling, drag-move/copy) done
M4 Data (advanced filter, consolidate, what-if) most; Solver, ToolPak and Power Query remain
M5 Formulas tab (trace arrows, watch window, evaluate, error checking) done
M6 Conditional formatting manager parity done
M7 Charts parity partial; Format pane in; axes, trendlines, error bars, round-trip remain
M8 Insert & Review partial; ink, icons, comments pane in
M9 Page layout & print most; Page Layout view remains
M10 PivotTables, Solver, Analysis ToolPak PivotTables in; slicers, Solver, ToolPak remain
M11 Automation (record actions, scripts) done
M12 Performance, accessibility, i18n partial; i18n not started
M13 Release & polish releases shipping (v0.2.0–v0.4.0, signed)
M14 Beta gates (table above) not started as a milestone; parts in open PRs
M15 Localization infrastructure and the twelve languages started: ribbon catalog in ja, zh, ko, pt-BR, ru (#31, #104, #82); German in PR #163
M16 Get & Transform, data model not started

After beta (ranked)

Work Gap Hours
Localization: catalog past the ribbon, then twelve languages #11 100–165
Get & Transform and the data model #12 60–100
Solver, Analysis ToolPak, Forecast Sheet #13 22–35
Remaining functions, oracle suite #15 18–30
Collaboration and review #16 35–55
Insert objects #17 25–40
Accessibility #18 12–18
Page Layout view, print polish #14 12–20
Mobile layout #23 30–60
AI features with local models #22 30–50
Plugin / custom-function API #21 25–40

Measuring

  • cargo xtask parity regenerates parity-checklist.md (ribbon catalog vs registered commands); cargo xtask ci checks it is current.
  • cargo test --workspace: engine, formula, function, XLSX and UI behaviour.
  • cargo run --release -p gridcraft-ui-egui --example snapshot -- --sample sales out.png: look at the UI offscreen.
  • Function coverage: the script method in function-parity.md. A cargo xtask functions that diffs the registry against a checked-in Excel name list would make it a CI number (1–2 h).
  • No cargo xtask scorecard or bench yet.

Revision history

Date Change Summary
2026-10-11 minor PivotTable calculated fields landed
2026-10-10 minor Current focus and M15 updated for the 10-10 merges
2026-10-10 minor Added the alpha gate table (six core workflows; passes, stays alpha)
2026-10-10 major Created: current focus, beta gates (~160–240 h), milestones moved from ROADMAP.md, post-beta ranking