Edition 2 · 2026-10-30, corrected 2026-11-01Word 16.115 as validatorEvery repo cloned at a pinned commit

Thirteen DOCX editors, one hostile document, 99 checks.

Every editor's code was downloaded, its own import → export path was run headlessly over a purpose-built 35-part adversarial DOCX, and the output was diffed against the input at part, element, attribute and text level. Then the output was fed back through the same editor, re-opened in LibreOffice, and opened in Microsoft Word. No claim below rests on a README.

Corrected 2026-11-01. Three checks failed rewrites that Word itself makes on save: a text box's fallback copy rewritten from its DrawingML, simple fields saved as complex fields, and an embedded HTML chunk imported into the body. eigenpal's team traced the first one. The scorer was fixed and every editor rescored; eigenpal moves from 98.5% to 100.0%. The correction is in the main report.

Read the main reportCorpus, harnesses & scorer on GitHub
13tools measured
99checks, weighted 3 / 2 / 1
35package parts in the corpus
29critical features
12defect classes Word refuses
3perfect round trips

Round-trip scorecard

Weighted score across the 99 checks; critical features are the 29 constructs a legal or publishing workflow cannot lose. "Second pass" feeds each output back through the same editor and scores it against its own first pass. "Word opens" is the raw first-pass output opened in Word 16.115, before any repair. LibreOffice is the calibration floor, not a candidate. Every score and count in the table, the tiles and the text above is generated from the editors_trial release's own out/facts.json, verified against its manifest; the findings below are the main report's, and the method, the corpus and every finding are in the main report, the field and its context on the trial hub and the vendors page.

ToolWeightedCriticalText keptPartsFailedSecond passWord opens
SuperDoc V2100.0%29 / 29100.0%35 / 350byte-identicalopened
Docxodus100.0%29 / 29100.0%35 / 350byte-identicalopened
eigenpal100.0%29 / 29100.0%35 / 350byte-identicalopened
GenOffice98.5%28 / 2998.8%35 / 351byte-identicalopened
Folio97.5%28 / 29100.0%35 / 352byte-identicalrefused
office-open93.5%25 / 29100.0%35 / 35532.2% on the second passrefused
Docen91.5%24 / 2999.4%35 / 35732.2% on the second passrefused
Apryse WebViewer 12.2.1 (closed source, trial key)89.9%25 / 29100.0%30 / 359stable, not byte-identicalopened
WordCraft85.9%21 / 2997.0%32 / 3512stable, not byte-identicalopened
canvas-editor + plugin24.6%7 / 2988.8%14 / 3575stable, not byte-identicalopened
Fidus Writer23.6%7 / 2971.0%11 / 3577stable, not byte-identicalrefused
docs.plus21.1%7 / 2990.5%11 / 3579stable, not byte-identicalopened
Plate.js20.6%6 / 2990.5%11 / 3579stable, not byte-identicalopened
LibreOffice (baseline)86.9%23 / 29100.0%25 / 3512stable, not byte-identicalopened

Read the floor first. LibreOffice, converting headlessly, scores 86.9%. An open-source editor that cannot beat LibreOffice on a Word-authored document is not a fidelity tool, whatever its star count says.

What the trial found

  1. Three tools lose nothing. SuperDoc V2, Docxodus and eigenpal pass all 99 checks, keep all 35 parts, and reproduce their own output byte for byte on a second pass. Docxodus gets there with 25 parts untouched and 10 re-serialised, none changed, none dropped.
  2. Four outputs cannot be opened by Word. Folio, office-open, Docen and Fidus Writer produce files Word 16.115 refuses. Three of them fail a static check: Fidus Writer has eleven schema violations, and office-open and Docen leave five dangling relationship ids each, so the chart never draws. Folio passes every static check and Word still refuses it.
  3. Two editors corrupt their own output. office-open and Docen are not idempotent: re-importing their first pass yields word/document.xml with an unbound a: prefix. The file looks fine, opens in LibreOffice, and breaks only when fed back in.
  4. Two editors say what they lost. SuperDoc names a diagnostic code for each drawing family it fails closed on. Plate.js scores last but emits 38 typed diagnostics and, under its default lossPolicy: 'reject', refuses a document it cannot carry losslessly. It is also the only editor that refuses the malformed corpus instead of reproducing the damage.
  5. Nobody repairs anything. Handed a corpus carrying all twelve defect classes, every editor either reproduced the damage or dropped the part that carried it. Docxodus ships a repair funnel, and it repairs a different set of defects.
  6. Stars predict nothing. The two most-starred projects, WordCraft and Plate, score 85.9% and 20.6%, both below the LibreOffice floor of 86.9%.