# Target-app parity: GridCraft vs Microsoft Excel > **Last reviewed:** 2026-10-11 · **Last updated:** 2026-10-11 · **Change:** minor (community merges: worksheet functions 513 / 523, catalog 274 / 290) · **Target:** Microsoft Excel (Microsoft 365) This is the authoritative parity assessment. [`ROADMAP.md`](../ROADMAP.md) summarizes it, [`gaps.md`](gaps.md) lists every shortfall, and the area checklists hold the detail: [functions](function-parity.md), [charts](chart-parity.md), [file formats](file-format-parity.md), [UI](ui-parity.md), [hardware](hardware-parity.md), [localization](localization-parity.md). The generated ribbon checklist is [`parity-checklist.md`](parity-checklist.md). ## Summary | Number | Value | Kind | |---|---|---| | Feature breadth (weighted by use) | **~75%** | estimated from the area table below; anchored on two measurements | | Ribbon and menu catalog | **274 / 290 (94.5%)** | measured: `cargo xtask parity` (`crates/engine/src/catalog.rs` ∩ registered command ids) | | Worksheet functions, by name | **513 / 523 (98.1%)** | measured: registered functions vs Microsoft's published function list (method below) | | Worksheet functions that do real work | **504 / 523 (96.4%)** | measured: excludes 9 stubs (7 CUBE functions, WEBSERVICE, FILTERXML) | | **Ready for real work** | **~50%** | estimated; written weights below (51.6 computed) | | **Mainstream practitioner** | **~50%** | estimated; [method](#mainstream-practitioner) (69.5 depth × 0.90 × 0.92 × 0.88 = 50.6) | | **Essentials user** | **~63%** | estimated; [method](#essentials-user) (80.2 depth × 0.92 × 0.95 × 0.90 = 63.1) | | Stage | **alpha** | see [Stage](#stage) | | Remaining to beta | **~160–240 Opus 5.5 agent-hours** | estimated; [roadmap.md](roadmap.md#beta-gates) | | Remaining to full parity | **~700–1,100 Opus 5.5 agent-hours** | estimated; sum of the rows below | ### Readiness by audience | Audience | Ready % | Opus 5.5 agent wall-clock hours to ~95% | Work that dominates | |---|---|---|---| | Full target (ready for real work) | ~50% | ~650–1,050 | Get & Transform and the data model, localization (twelve languages), charts depth, file fidelity (`.xls`, corpus, pass-through), PivotTables, collaboration, mobile | | Mainstream practitioner | ~50% | ~200–310 | File exchange with Excel users (corpus and Excel verification, pass-through, large files, `.xls`, encryption: 63–97 h), common-chart depth (30–45 h), PivotTables (20–30 h), keyboard and interaction (18–28 h), calc correctness and functions (20–33 h) | | Essentials user | ~63% | ~60–100 | Opening files people send (`.xls` and encrypted import 28–42 h; macOS Finder open 2–4 h), launch stability (6–10 h), basic chart resize and polish (6–10 h), print and Page Layout (8–12 h), small editing and UI fixes (10–16 h) | Each tier is a subset of the one above, so its hours are too. Calibrated as in [Effort and calibration](#effort-and-calibration) (~6–10 h per readiness point for the remaining, verification-heavy work; single features measured from PRs #66, #100, #101). Parallelism: the full and mainstream work splits ~65–70% across 4–6 agents by area; the essentials work is mostly small fixes plus one long `.xls` track, so about half parallelizes (≈30–50 wall-clock hours with three agents). ## What we measured against, and how - **Target:** Microsoft Excel (Microsoft 365 channel). Version measured: **Excel for Mac 16.113.4**, installed on the owner's Mac (version read from Spotlight metadata with `mdls`). Where Excel for Windows has more (Power Pivot, VBA editor depth, COM add-ins, 3D Maps), the Windows feature counts as part of the target. - **Clean-room limits.** This repo's rule (AGENTS.md, "Non-negotiables") forbids reading anything inside the Office bundle, so the bundle's `Info.plist`, `.lproj` folders and resources were deliberately **not** inspected, and Excel was not launched for this pass. Excel's file formats, functions and features come from Microsoft's public documentation, the owner's earlier black-box observation (`plan/excel/observed-ui.md`, local only), and knowledge of the product. - **Function list:** Microsoft's "Excel functions (alphabetical)" support page, fetched 2026-10-10 and parsed (506 rows), plus 15 names the page lists under combined entries (FIND/FINDB, LEFT/LEFTB, LEN/LENB, MID/MIDB, REPLACE/REPLACEB, RIGHT/RIGHTB, SEARCH/SEARCHB, BETA.INV) and COPILOT and PY: **523 functions**. Ours: every `f!(…)` spec in `crates/functions/src/*.rs` plus `SPECIAL_FUNCTIONS` in `crates/calc/src/eval.rs` (evaluator special forms), minus the test-only `ADD2`: **505**, all of them Excel names. - **Ribbon catalog:** `crates/engine/src/catalog.rs` (290 unique ids across 15 tabs) against the 313 command ids registered in `crates/engine/src/cmd/*.rs`, recomputed from source by script and identical to the committed `parity-checklist.md`. The catalog is our own transcription of Excel's main ribbon tabs; it leaves out most contextual tabs (Picture Format, Shape Format, Header & Footer, Sparkline, Slicer, Timeline), the Developer and Help tabs and sub-menu items, so 89% of it is roughly **60–65% of Excel's full command surface** (estimated). - **Depth and readiness:** source reading (the model types in `crates/model/src/features.rs`, readers and writers in `crates/xlsx/src`, the evaluator), 478 `#[test]` functions, and the issue tracker: 60 open issues and 50 open PRs on 2026-10-10, 82 issues filed in total. - No cargo build or test ran for this pass (disk constraints); numbers come from source. ## Weights Percentages are weighted by what Excel users actually do, not by item count. Feature-area weights (sum 100) reflect a typical business, finance and analyst workload: formulas, functions, editing and formatting dominate; Power Query, VBA and the data model matter to fewer users but are decisive for those who use them. Dimension weights for **ready for real work**: features 45, file formats 15, UI/UX 12, performance 8, stability 8, localization 4, hardware 2, platforms 2, ecosystem 2, AI 2. ## Feature areas | Area | Weight | Breadth | Ready | Hours | Evidence | |---|---|---|---|---|---| | Formula language and calculation | 18 | ~92% | ~72% | 20–30 | A1/R1C1 parser, reference adjustment, dependency-graph recalc, dynamic arrays and `#SPILL!`, `A1#`, LET/LAMBDA and helpers, structured references, names, 3-D references. Open correctness bugs: 15-digit equality (#57), stale spills after structural edits and cleared blockers (#133, #139), 3-D span endpoint deletion (#140), sheet rename and qualified names (#134). Single-threaded | | Worksheet functions | 12 | 98.1% (measured) | ~82% | 16–26 | 513 / 523 names, 504 working. Missing: GETPIVOTDATA, IMAGE plus cloud functions. No conformance suite against Excel-computed oracles; edge-case bugs keep surfacing (#137, #138). [function-parity.md](function-parity.md) | | Editing, navigation, clipboard, fill | 12 | ~90% | ~70% | 15–25 | Point mode, F4, AutoComplete, Paste Special, AutoFill, Flash Fill, Find/Replace, Go To Special. Bugs: rectangular drag-select (#28), monthly fill (#132), cut across sheets (#128), Insert Copied Cells missing (#21), key tips only on part of the Home tab (#43; #33, #49). [ui-parity.md](ui-parity.md) | | Cell formatting, styles, conditional formatting | 10 | ~95% | ~80% | 8–14 | Full number-format language, borders, 47 cell styles, 60 table styles, all CF rule kinds including data bars, colour scales and icon sets. Gaps: font weights beyond regular/bold (#168), system fonts list (#4), themes | | Sort, filter, tables, validation, outline | 8 | ~82% | ~70% | 10–16 | Multi-level sort, AutoFilter, Advanced Filter, tables with totals, validation, outline, subtotals, consolidate. Bugs: subtotal header (#131), validation edits (#129), table style panic caught (#130); no slicers on tables | | PivotTables | 7 | ~65% | ~45% | 25–40 | Insert/Recommended, field list, three layouts, date grouping, show-values-as, refresh, calculated fields, XLSX round-trip. Missing: slicers, timelines, calculated items, PivotCharts, value/label filters, number grouping, GETPIVOTDATA, data-model pivots. Round-trip never checked in Excel | | Charts and sparklines | 8 | ~50% | ~30% | 40–60 | 25 chart kinds, all 2-D. The chart model holds title, legend position, a data-labels flag, gridlines flag and axis titles; no axis scaling, trendlines, error bars, per-point formatting, chart sheets, 3-D, surface, map, Pareto. Several kinds don't survive XLSX round trip (open PRs #158, #161). [chart-parity.md](chart-parity.md) | | Page layout, print, PDF | 5 | ~80% | ~55% | 12–20 | Page setup, print titles, breaks, Page Break Preview, headers/footers, PDF export and printing. No true Page Layout view; the PDF writer uses only the 14 standard fonts without embedding (no CJK or other non-Latin text in PDF); web print only exports (#141, #143) | | What-if and analysis | 4 | ~50% | ~40% | 22–35 | Goal Seek, Scenario Manager, data tables, Analysis ToolPak (13 of 19 tools, no charts). Missing: Solver, Forecast Sheet, Analyze Data | | Get & Transform, external data, data model | 5 | ~15% | ~10% | 60–100 | Import of CSV/TSV, JSON, HTML. No Power Query editor, no From Web, database or folder sources, no connections or refresh, no relationships or data model, no external workbook links (dropped with a warning) | | Insert objects | 3 | ~55% | ~45% | 25–40 | Pictures, 8 shape kinds (Excel has ~170), text boxes, own icon set, ink with Ink to Shape, hyperlinks, checkboxes. Missing: SmartArt, WordArt, equations, signature line, objects, 3-D models, screenshot, pictures in cells (PR #105) | | Review, comments, protection, collaboration | 4 | ~55% | ~40% | 35–55 | Threaded comments, notes, spelling (system dictionary), thesaurus, sheet and workbook protection, Allow Edit Ranges with Excel-compatible password hashes (#307). Missing: comment navigation, Show Changes, notes-to-comments conversion, accessibility checker, co-authoring, opening password-encrypted files (refused with a message since #17) | | Automation | 4 | ~30% | ~20% | 12–20 | Recorded, editable GridCraft scripts (Automate tab). VBA is out of scope by owner decision and is **dropped** when an `.xlsm` is opened (warning shown). No Office Scripts compatibility | | **Weighted** | 100 | **~75%** | **~59%** | **300–485** | | ## Dimensions | Dimension | Weight | Ready | Hours | Evidence | |---|---|---|---|---| | Features | 45 | ~59% | 300–485 | Table above | | File formats | 15 | ~50% | 80–120 | XLSX read/write is broad but unproven on a real corpus and in Excel; XLSB and ODS are values-only import; no XLS, XML Spreadsheet 2003, SYLK, DIF, PRN; VBA dropped; 100 MB XLSX fails (#175). [file-format-parity.md](file-format-parity.md) | | UI/UX fidelity | 12 | ~55% | 50–80 | Excel-style ribbon, galleries, dialogs, formula bar, status bar; 59 commands with shortcuts vs Excel's 200+; key tips on part of the Home tab only; short context menu; single window. [ui-parity.md](ui-parity.md) | | Performance | 8 | ~35% | 35–55 | [Performance](#performance) | | Stability | 8 | ~60% | 15–25 | Never-crash rules enforced by lint, every command fuzzed with hostile params, last-resort guard in `Session::execute`. Field reports: Windows Intel GPU crash (#120), error on close (#117), freeze opening from Finder (#166), screen flashing (#76) | | Localization | 4 | ~10% | 100–165 | Ribbon-only catalog in five languages (ja, zh, ko, pt-BR, ru; ~12% of strings each), CJK/Thai/Hebrew font fallback, no shaping or RTL. [localization-parity.md](localization-parity.md) | | Hardware | 2 | ~40% | 25–40 | GPU UI via wgpu; single-threaded calc; no pen pressure; one window. [hardware-parity.md](hardware-parity.md) | | Platforms | 2 | ~80% | 30–60 | [Platforms](#platforms) | | Ecosystem / add-ins | 2 | ~10% | 25–40 | [Ecosystem and AI](#ecosystem-and-ai) | | AI features | 2 | ~15% | 30–50 | [Ecosystem and AI](#ecosystem-and-ai) | | **Ready for real work** | 100 | **~50%** (51.6 computed: 0.45 × 59.0 features + the other rows × their weights) | **~700–1,100** | | How the full number is built: features ready is the weighted mean of the area table (59.0 with charts at 30%); ready for real work is the weighted mean of this table with the weights written under [Weights](#weights). Re-checked after the 10-10 merges: charts were corrected from 38% to 30% (round-trip loss, #190 chart resize) and localization rose from 5% to 10% (#31, #104, #82, #38). The two moves cancel: 51.6 before and after, so **~50%** stands. ## Mainstream practitioner The typical professional Excel user: an analyst, accountant or manager who builds and maintains models, cleans and summarizes data, makes charts and pivots, and exchanges workbooks with Excel users every week. Left out: Power Query and the data model, VBA and add-ins, Copilot and cloud functions, co-authoring and admin, specialist hardware, and languages beyond the user's own (localization is reported separately). | Area (weekly use) | Weight | Depth | Basis | |---|---|---|---| | Formula language and calculation | 20 | 72 | Feature-area table | | Common worksheet functions | 15 | 85 | Missing functions are niche (ETS, odd-period bonds, cloud); edge bugs in common ones (#137, #138, #57) | | Editing, navigation, clipboard, fill | 15 | 70 | Feature-area table | | Cell formatting, styles, conditional formatting | 13 | 80 | Feature-area table | | Sort, filter, tables, validation | 10 | 70 | Feature-area table | | PivotTables (core: fields, layouts, grouping, refresh) | 8 | 60 | Slicers and calculated fields excluded as less frequent | | Charts (column, bar, line, pie, scatter, combo) | 9 | 45 | Common kinds work and survive save; no axis options or trendlines; resize broken (#190) | | Page layout, print, PDF | 5 | 60 | Latin text exports | | Comments, notes, protection | 3 | 55 | Feature-area table | | Pictures and shapes | 2 | 45 | Feature-area table | | **Average depth** | 100 | **69.5** | | Discounts for what still stops real work: | Discount | Factor | Evidence | |---|---|---| | Interaction fidelity | × 0.90 | 59 command shortcuts vs Excel's 200+; key tips only on part of the Home tab (#43); rectangular selection bug (#28); charts can't be resized (#190); one window (#162); missing horizontal scrollbar report (#176) | | Stability on real machines | × 0.92 | Never-crash lints, fuzzed commands and the `Session::execute` guard; but field reports of a startup crash on Intel UHD (#120), an error on close (#117), a freeze opening from Finder (#166) and screen flashing (#76) | | File exchange with Excel users | × 0.88 | Excel opening our output is unverified across features; unmodelled parts dropped on save; advanced chart kinds lose their type; 100 MB files fail (#175); `.xls` and encrypted files are refused with a clear message (#17) rather than opened. Harsher than a drawing app's discount because spreadsheets are exchanged constantly | **Mainstream practitioner: 69.5 × 0.90 × 0.92 × 0.88 = 50.6 → ~50%** (estimated). Unlike most apps it is not higher than the full number: GridCraft's breadth is wide (functions, formatting, ribbon), so excluding the long tail removes little, while the discounts land on exactly what mainstream users do every week (exchange files with Excel users). ## Essentials user Someone who only touches the core: opens a workbook someone sent, types data and simple formulas, formats, sorts, makes a basic chart, saves and prints. Advanced options, pro workflows and exchange edge cases are left out, along with everything excluded from the mainstream number. | Core feature | Weight | Depth | Basis | |---|---|---|---| | Typing data, simple formulas, AutoSum (SUM, AVERAGE, arithmetic) | 20 | 88 | Solid; 15-digit equality (#57) is rare at this level | | Basic formatting: fonts, bold, fills, borders, currency/percent/date formats | 15 | 85 | | | Copy, paste, fill handle, undo/redo | 15 | 78 | Selection bug (#28), monthly fill (#132) | | Rows and columns: insert, delete, widths, AutoFit | 10 | 82 | AutoFit fixed (#42, #88) | | Sort and filter | 10 | 82 | | | Save, Save As, reopen XLSX | 10 | 85 | | | A basic chart | 8 | 55 | Created easily; can't be resized (#190) | | Print and PDF | 7 | 65 | Desktop works; web PDF gives no file or feedback (#141) | | Find and replace | 5 | 85 | | | **Average depth** | 100 | **80.2** | | | Discount | Factor | Evidence | |---|---|---| | Launch and stability | × 0.92 | Startup crash on some Intel GPUs (#120), "Issue executing" (#59), error on close (#117) | | Discoverability and UI clarity | × 0.95 | The Excel-style ribbon is familiar and labelled; system language by default (#31); small gaps (#176 scrollbar, #170 macOS window controls) | | Opening files people send them | × 0.90 | Double-clicking a workbook in Finder freezes or errors on macOS (#166, #69; drag-and-drop works; fixes in PRs #164, #167); `.xls` and encrypted files are refused with a message | **Essentials user: 80.2 × 0.92 × 0.95 × 0.90 = 63.1 → ~63%** (estimated). ## User evidence Counted from all 83 GitHub issues and 109 PRs on 2026-10-10; none of the issues were filed by the maintainer. - **Praise:** 3 explicit ("this is brilliant. Tiny fast native binaries", #16; "Thanks for the great work on GridCraft", #61; "i didnt have excel kind app on my macos", #69), plus polite thanks in feature requests (#39, #45, #142). - **"Switched from Excel" reports:** 0. One counter-signal: "without macro support most professionals cannot switch from excel" (#6). - **Issues by kind:** 50 core-path bugs (30 open, 20 closed) and 33 niche or feature requests (25 open, 8 closed). 18 of the core-path bugs came from one auditing contributor (coygeek). - **Contributors:** 104 PRs from 28 people outside the maintainer in five days, which shows strong interest but not yet daily use. ## Performance Excel recalculates on every core (multi-threaded recalculation), streams large files, and handles 1,048,576 × 16,384 sheets with millions of formulas. | Measure | GridCraft | Excel | Kind | |---|---|---|---| | Sheet size limits | 1,048,576 × 16,384 | same | measured (`crates/core/src/addr.rs`) | | Recalc threads | 1 | all cores | measured (no threading in `crates/calc`) | | Edit → recalc, 100k dependents | ~0.4 s (2026-10-07), target < 100 ms | tens of ms | measured on the owner's machine; #66 since made range-formula recalc linear, not re-timed | | Grid scrolling | virtualised, O(log n) geometry with custom row heights | smooth | measured in code | | Open a ~100 MB XLSX | fails (#175) | opens | user report | | Whole-sheet operations | Fill and Remove Duplicates on a whole-sheet selection run out of memory or time (fix in PR #152) | fine | open PR | Work: streaming XLSX reader with shared-string and style dedup, multi-threaded recalc of independent chains (native only; WASM stays single-threaded), whole-column reference clamping, a `cargo xtask bench` with fixed workbooks so the numbers become measured. ## Platforms | Platform | Excel | GridCraft | |---|---|---| | Windows x64 / arm64 | yes | yes (signed MSI and portable zip; also x86) | | macOS (Apple silicon, Intel) | yes | yes (signed, notarized universal DMG) | | Web | Excel for the web | yes (WASM; local files, no cloud) | | iOS / iPadOS / Android | yes | no | | Linux | no | yes (AppImage, Flatpak, deb, rpm, tarball; x86_64, aarch64, riscv64) | | FreeBSD | no | yes | Mobile is the gap (30–60 h for a touch layout over the same engine). GridCraft is ahead on Linux, BSD and RISC-V, where Excel doesn't run. ## Ecosystem and AI - **Add-ins:** Excel has Office JavaScript add-ins, COM/XLL add-ins, VBA, Office Scripts and Power Automate. GridCraft has its own recorded scripts, plus a control channel, MCP server and CLI that reach every command. VBA is out of scope (owner decision). A plugin or custom-function API (for example LAMBDA libraries and WASM custom functions) is the open-equivalent path: 25–40 h. - **AI:** Excel has Copilot, the COPILOT() function, Analyze Data, Python in Excel and Flash Fill. GridCraft has Flash Fill and best-in-class agent control (any MCP client can drive every command headless or live), but no in-app assistant, no natural-language formulas and no Analyze Data. Local-model equivalents: 30–50 h; model choice needs the owner. ## Stage **Alpha.** All six core workflows in the [alpha gate](roadmap.md#alpha-gate) pass end to end on macOS with save and reopen (two pass with non-blocking fidelity loss). Core workflows exist end to end, but depth, fidelity and file compatibility are rough (ready ~50%, inside the 40–75% alpha band). Not beta: the main format, XLSX, has not been proven on real-world files or confirmed to open in Excel without repair, large files fail, `.xls` is missing and text in several scripts doesn't render. Distance to beta: ~25 points of readiness and ~160–240 h, itemized in [roadmap.md](roadmap.md#beta-gates). ## Effort and calibration Hours are **Opus 5.5 agent wall-clock hours**, one agent working sequentially, including tests and verification. Calibrated against this repo's history: - **First pass, 2026-10-05 → 10-07:** M0–M13 (about 72,000 lines of Rust: engine, 478 functions, XLSX, UI, charts, PivotTables, PDF, MCP, CLI, web, packaging) landed in commits from 22:09 on 10-05 to 02:08 on 10-06, built by several parallel agents with work that preceded the first commits; we put it at **~50–80 agent-hours** for 0 → ~50% ready, so **~1–1.5 h per point** for the broad first pass. - **Recent single features:** ODS import (#100, +2,232 lines with tests) and XLSB import (#101, +1,212 lines) each fit in one agent session of roughly 2–3 h; the linear-recalc fix (#66, +477 lines) about 1 h; single-function fixes (ROUND, DATE 1900, SUMIF sizing) 0.3–0.5 h each. That is roughly **600–1,000 lines per agent-hour** including tests. - **Tail factor:** what remains is verification-heavy (Excel as the oracle for files, functions and rendering), and much of it is large self-contained subsystems (Power Query, Solver, localization, `.xls`). We apply **5–7× the first-pass rate**: ~6–10 h per point of readiness. **Parallelism:** ~70% of the work splits cleanly by area (functions, charts, pivots, formats, localization, Power Query) across 4–6 agents with one integrator; with five agents, beta is about 40–60 wall-clock hours away. **Needs a human:** checking our files in Excel (the owner's Mac), native-speaker review of every language, scope decisions (co-authoring, cloud functions, in-app AI models, mobile), and Windows hardware for GPU-driver crashes. ## What works today The inventory carried over from the 2026-10-07 ROADMAP.md, updated for what landed since. Presence, not parity: the tables above grade depth. - Engine: A1/R1C1 formula parser with reference adjustment, dependency-graph recalculation with dynamic arrays (spill + `#SPILL!`), cycle detection, LET/LAMBDA/MAP/REDUCE/SCAN/BYROW/BYCOL/ MAKEARRAY, structured table references, defined names, INDIRECT/OFFSET/INDEX references, 505 worksheet functions (478 at M0) (math, statistics and distributions, text and regex, lookup incl. XLOOKUP/FILTER/SORT/UNIQUE/VSTACK, dates, financial incl. bonds, engineering incl. complex numbers and Bessel, database, information). - Number formats: Excel's full format-code language (sections, conditions, colours, dates and elapsed time, fractions, scientific, accounting fill), General narrowing to column width. - Files: XLSX read/write (styles, themes, merges, CF, validation, tables, comments, hyperlinks, charts, pictures, sparklines, print settings, defined names, shared/array/dynamic formulas), CSV/TSV with encoding and delimiter detection, HTML export, JSON; XLSB and ODS data import (values only, 10-10). - Editing: cell entry with type detection and auto-formats, in-cell and formula-bar editing, point mode (click/drag/arrow references), reference colouring, F4 anchor cycling, function autocomplete and argument hints, copy/cut/paste and Paste Special (values, formats, transpose, operations, link, skip blanks), AutoFill series (numbers, dates, months, weekdays, custom lists, text+number), Fill Series, Flash Fill, find/replace with wildcards, Go To / Go To Special, undo/redo with history, format painter. Quick selection drags retain their final endpoint; the fill handle explains how to fill versus select cells. - Formatting: fonts, fills, all border styles, alignment (wrap, indent, rotation, merge), number formats, 47 cell styles, 60 table styles, conditional formatting (cell rules, text, dates, duplicates, top/bottom, averages, data bars, colour scales, icon sets, formulas), automatic row heights, autofit, hide/unhide, freeze panes. Border presets include visual diagrams; Format Cells previews draft borders before applying. - Data: sort (multi-level, by colour, custom lists), AutoFilter (values, custom, top 10, average, colour), tables with totals rows, remove duplicates, text to columns, data validation with error alerts, grouping/outline, subtotals. - PivotTables: Insert/Recommended PivotTables, field list pane, compact/outline/tabular layouts, date grouping, sort, filters, show-values-as, refresh, and XLSX round-trip. - Page layout & print: Page Break Preview, print settings, PDF export and printing. - What-if: Goal Seek, scenarios, data tables. Spelling (system word list) and thesaurus. - Draw: pen, highlighter, eraser, ink strokes and Ink to Shape. Task panes: Comments (threaded replies, resolve), Watch Window, Selection, Format Chart. - Charts: column, bar, line, area, pie, doughnut, scatter, bubble, radar, histogram, waterfall, funnel, treemap, sunburst, box & whisker, stock and combo charts; sparklines. - UI (egui): Excel-style title bar with Quick Access Toolbar and AutoSave, the full ribbon with galleries (cell styles, table styles, colour palettes, conditional formatting menus), contextual Table/Chart Design tabs, formula bar with Name Box, virtualised grid (smooth scrolling, zoom, frozen panes, text overflow), sheet tabs (rename, reorder, colour, hide), status bar with Sum/Count/Average and zoom, dialogs (Format Cells, Formula Builder, Find and Replace, Sort, Name Manager, Data Validation, Paste Special…), command palette, dark mode. - Agents: every action is an engine command; JSON control channel in the desktop app (pointer, keyboard, dialogs, screenshots); MCP server (headless or bridged); CLI (`info`, `convert`, `eval`, `cat`, `run`, `commands`, `functions`, `mcp`, `send`). - Platforms: macOS, Windows, Linux, FreeBSD; web (WASM via trunk). Release workflows for signed/notarized macOS universal DMG, signed Windows x64/x86 MSI + zip, Linux AppImage/deb/rpm/ tar.gz + Flatpak manifest, FreeBSD tarball and a web zip. ## Not measured yet - Pixel comparison against Excel screenshots (planned; screenshots stay in `plan/excel/`). - Function results against Excel-computed oracles (a corpus repo is the planned home). - Recalc and open-time benchmarks on fixed workbooks (no `cargo xtask bench` yet). - Whether Excel opens our XLSX output without repair, across features. ## Revision history | Date | Change | Summary | |---|---|---| | 2026-10-11 | minor | Worksheet functions 505 / 523 (96.6%; 496 working): ODDFPRICE, ODDFYIELD, ODDLPRICE, ODDLYIELD | | 2026-10-11 | minor | Worksheet functions 503 / 523 (96.2%; 494 working): PERCENTOF, EUROCONVERT | | 2026-10-11 | minor | Worksheet functions 502 / 523 (96.0%; 493 working): BAHTTEXT | | 2026-10-11 | minor | Worksheet functions 502 / 523 (96.0%; 493 working): TRIMRANGE | | 2026-10-11 | minor | View › Formula Bar and Zoom 100% are engine commands (CLI/MCP); catalog 258 → 260 / 290 (#289) | | 2026-10-11 | minor | Review › Allow Edit Ranges; catalog 258 → 259 / 290 (#307) | | 2026-10-11 | minor | PivotTables: calculated fields (`pivot.calculatedField`) | | 2026-10-11 | minor | PivotTables: PivotCharts (`insert.pivotChart`) | | 2026-10-10 | minor | Readiness-by-audience table: hours to ~95% for each of the three numbers (full 650–1,050, mainstream 200–310, essentials 60–100). Full number confirmed as the additive weighted sum over the written dimension weights (no change) | | 2026-10-10 | minor | Added Mainstream practitioner (~50%) and Essentials user (~63%) with written weights and discounts, and user-evidence counts; re-checked the full number after the 10-10 merges (charts 38→30, localization 5→10; still 51.6, ~50%) | | 2026-10-10 | minor | Stage checked against the new alpha gate (six core workflows, all pass): stays alpha | | 2026-10-10 | major | Created. Full re-measure against Excel for Mac 16.113.4: functions 501 / 523 measured against Microsoft's list, catalog 258 / 290, breadth ~75%, ready ~50%, alpha; replaces the estimate tables previously in ROADMAP.md and keeps its "Working today" inventory |