AI Demos Research — the structured-intelligence platform. Every verdict on these pages opens to the execution behind it.
Graded 21 October 2026

Can Docsumo repair a record by adding one member and removing one?

Docsumo repaired the record by adding one line item and removing another. After saving, reloading, and reopening, the stored set and the export matched on the new Concrete mixer row, the missing Site fencing row, and the unchanged header and totals.

1 of 1 test case passed

Every test case in this scenario has a result.

Pass rate100%1 of 1 gradable
Coverage1 of 1test case with a result
1PassDid everything it was expected to do.
0FailNo test case failed.
0Not gradableEvery result here could be graded.
0UntestedEvery test case in this scenario has a result.
The pass rate is a summary. The evidence is the test case below: what we sent, what we checked, what the tool returned, and the proof.

The test case

Each test case is judged on its own: Pass, Fail, Not gradable, or Untested. The scenario result above is based on this test case.

Add one member and remove onePassEvidence
What we sent

We used Add Line to add Concrete mixer, 150L, weekly hire with Qty 1, Unit price 95, Amount 95, deleted the Site fencing row, then confirmed the record, reloaded the page, and reopened the stored record.

InputDocument (PDF)
Input invoice: original line items and totals
Open the PDF ↗
What the tool returned
JSON
"Table": {
  "line_items": [
    {
      "Description": {
        "value": "Telehandler, 4-tonne, weekly hire",
        "position": [163, 778, 1494, 809],
        "confidence": 1.0,
        "review_required": false
      },
      "Qty": {
        "value": 1.0,
        "position": [163, 778, 1494, 809],
        "confidence": 1.0,
        "review_required": false
      },
      "Unit price": {
        "value": 850.0,
        "position": [163, 778, 1494, 809],
        "confidence": 0.5,
        "review_required": false
      },
      "Amount": {
        "value": 850.0,
        "position": [163, 778, 1494, 809],
        "confidence": 0.5,
        "review_required": false
      }
    },
    {
      "Description": {
        "value": "Generator, 20kVA, weekly hire",
        "position": [163, 849, 1494, 880],
        "confidence": 1.0,
        "review_required": false
      },
      "Qty": {
        "value": 2.0,
        "position": [163, 849, 1494, 880],
        "confidence": 1.0,
        "review_required": false
      },
      "Unit price": {
        "value": 210.0,
        "position": [163, 849, 1494, 880],
        "confidence": 1.0,
        "review_required": false
      },
      "Amount": {
        "value": 420.0,
        "position": [163, 849, 1494, 880],
        "confidence": 1.0,
        "review_required": false
      }
    },
    {
      "Description": {
        "value": "Concrete mixer, 150L, weekly hire",
        "position": [],
        "confidence": 1.0,
        "review_required": false
      },
      "Qty": {
        "value": 1.0,
        "position": [],
        "confidence": 1.0,
        "review_required": false
      },
      "Unit price": {
        "value": 95.0,
        "position": [],
        "confidence": 1.0,
        "review_required": false
      },
      "Amount": {
        "value": 95.0,
        "position": [],
        "confidence": 1.0,
        "review_required": false
      }
    }
  ]
}

JSON export: stored line items and unchanged totals

Copied from Output file (JSON), lines 112–233

Open the JSON file ↗
JSON
"data": {
  "Invoice Details": {
    "invoice_number": {
      "value": "TPH-3301",
      "position": [1354, 417, 1462, 448],
      "confidence": 1.0,
      "review_required": false
    },
    "hire_period": {
      "value": "03 Mar - 10 Mar 2026",
      "position": [1294, 634, 1515, 665],
      "confidence": 1.0,
      "review_required": false
    },
    "site": {
      "value": "Oakbridge Depot Extension",
      "position": [142, 634, 421, 665],
      "confidence": 1.0,
      "review_required": false
    },
    "currency": {
      "value": "\u00a3",
      "position": [0, 0, 0, 0],
      "confidence": 0.44,
      "review_required": true
    }
  },
  "Customer Information": {
    "billed_to": {
      "value": "Oakbridge Construction Ltd",
      "position": [142, 457, 422, 490],
      "confidence": 1.0,
      "review_required": false
    }
  },
  "Totals": {
    "subtotal": {
      "value": 1462.0,
      "position": [1414, 2586, 1515, 2618],
      "confidence": 0.8,
      "review_required": false
    },
    "tax": {
      "value": 292.4,
      "position": [1432, 2645, 1514, 2677],
      "confidence": 0.83,
      "review_required": false
    },
    "total_due": {
      "value": 1754.4,
      "position": [1346, 2733, 1485, 2772],
      "confidence": 0.8,
      "review_required": false
    }
  },

Copied from Output file (JSON), lines 17–111

Expected vs. Found
✓Expected: Add the new member, remove the unwanted one, and keep every other member unchanged.Found: After save, reload, and reopening, the stored set and export show Concrete mixer added, Site fencing removed, and the rest unchanged.
Supporting proof
Proof 1Screenshot
Review screen before edit: original three-row grid
Open original ↗
Proof 2Screenshot
Review screen after save: stored line items in view-only mode
Open original ↗
Why this result

It is a pass because the edit had to add one member, remove one member, and leave the rest unchanged. After save, reload, and reopening, the stored grid and export show exactly that result.

Also observed in this test case

Enter committed cells. On the first try, tabbing through the new row did not store its quantity and unit price; typing Enter committed them.

Exported row metadata. The added row was exported with empty source-position arrays, matching a row created in the review screen.

Tested by Rugved Nichite · evidence dated 5 October 2026

Configuration and setup

How this tool was set up for the run and what the test needed in place. Each row is a fact from the run's records; a fact the records do not hold is left out, not guessed.

Software that produced the output
Docsumo
Build or version
Not exposed by the hosted product
Surface
Web app
Set up before the run
The extracted three-row line-item set from the plant-hire invoice had to be ready, and the default review screen was used for the edit.
Plan
Free Plan
Review setup
default review screen; no new extraction (0 pages billed)
Tested
5 October 2026 · Rugved Nichite

How this scenario is graded

How we decide Pass, Fail and Not gradable. The same rules apply to every tool tested on this scenario.

How results are decided

Each test case gets one result per tool: Pass, Fail or Not gradable. A test case we haven't run yet shows Untested. There are no partial results.

The rules
  • Pass: the tool did everything the test expected, and nothing it said contradicts the correct answer.
  • Fail: at least one expected behaviour clearly didn't happen; the test case's result says which one and quotes the tool.
  • Not gradable: our evidence couldn't settle the outcome (for example a record we needed is missing). It is never counted as a fail, and the test case's result says what's missing.

Where this sits in the benchmark

This page is one cell of a larger study: one tool, one scenario. Only this benchmark's frame appears here.

LevelNameScope
BenchmarkStructured Document Extraction →19 scenarios · 10 tools
CapabilityReview and Correction →
ScenarioRepair a record →
ToolDocsumo →

History of this result

What has happened to this result since it was first published. Runs and grades are never overwritten: a retest or a re-grade publishes a new result and keeps the earlier one readable.

from the publication record
3 November 2026First publishedStructured Document Extraction v1

Act on this result

Nothing filed here edits the run or the grade. A challenge opens a review, and a review can produce a new run or a re-grade — which becomes the current result and leaves this one in the history.

This matches what I see

You run the same kind of test against your own setup and get the same behaviour.

Agree →
This does not match

Yours behaves differently. Tell us what you got, with a screenshot if you have one.

Disagree →
Point out an issue

Something here is wrong — a reference value, a transcription, a grade.

Report an issue →
Request a retest

On a newer build, a larger dataset, or your own setup.

Request a retest →
We have fixed this

Tell us what changed and we schedule a rerun of the failing test case. The old result stays as history.

Vendor notice →
Filed against this evidenceNothing yet. Challenges, counter-evidence and fix notices appear here with their outcome, and stay on the page after they are resolved.
Cite this result
aidemos.com/benchmarks/structured-document-extraction/results/docsumo/repair-a-record · 1 pass · 0 fail · coverage 1/1 · graded 2026-10-21

The same record is available as structured data through the AI Demos MCP server, with the counts, the coverage and every per-test-case reason carried as fields.

Verify the proof files

These files support this result. Open a file to inspect the original evidence.

Input · Document (PDF) ↗application/pdf · 78 KB
Proof 1 · Screenshot ↗image/png · 202 KB
Proof 2 · Screenshot ↗image/png · 195 KB
Output file (JSON) ↗text/plain; charset=utf-8 · 8 KB
File fingerprints (SHA-256)

A fingerprint identifies the exact file used for this result.

Input · Document (PDF)fdcf03ac5ee53b083da58166f17fd41e7c72de79a9f3a3f6b67daa1360ddbca9
Proof 1 · Screenshotc36072e65c9d27cb805c58a3f9bba09ea0f72e00273e394babfd88e8fc86aad5
Proof 2 · Screenshot7bfe28aef8f9b49d5bcab28b2f7a42f6e43ea3540d676d0a194fb3c01f5c200a
Output file (JSON)b2afcf75b2e87dfd9bf2798f7ddff84a4082ec1d1f520c8d1096964d3f04fe9b