Sign up today for free — no credit card down.Get started

    Accuracy benchmark

    We emailed 558 documents to five client companies.

    support@docstreamai.com

    We set this up the way a bookkeeping firm uses DocStreamAI: one firm account managing five clients. A roofer, a plumber, a restaurant group, a creative agency and an importer, each with its own email inbox connected to DocStreamAI and its own QuickBooks company. Every PDF landed in the client's inbox the way supplier mail really does, as phone photos, faxes and credits with the minus sign in the wrong place. DocStreamAI picked each email up from that inbox, classified every attachment, read the fields and posted the result to that client's QuickBooks. Then we checked every step against an answer key. The 558 documents arrived as 551 PDFs, because some PDFs hold more than one bill.

    1. Supplier email
    2. Client's inbox
    3. DocStreamAI
    4. Client's QuickBooks
    documents emailed
    558documents emailed
    emails to five client inboxes
    493emails to five client inboxes
    records scored
    559records scored
    kinds of trap
    18kinds of trap
    98.6%

    Benchmark report · every document sent

    Classified correctly as invoice, receipt, credit memo or statement†

    551 of 559 records. 558 documents sent, scored as 559 records on October 2, 2026.

    98.3%

    of fields read correctly (6,584 of 6,695 fields, across the 515 documents scored field by field)

    95.9%

    of documents with every key field right*† (494 of 515)

    25 of 25

    vendor statements recognised and kept out of the books

    98.6%

    of bills and vendor credits from documents with no trap posted to QuickBooks with every field matching (146 of 148)

    * Line descriptions, quantities and unit prices are left out of this figure.

    † One invoice titled “Statement of Charges” was set aside as a vendor statement, so no record was made. We count it as a miss.

    By company · fields read correctly

    Results · every record

    551 of 559 records posted right or were kept out of QuickBooks.

    Every record was checked against its answer key, scored October 2, 2026. The 558 documents make 559 records, because one scenario PDF is scored as two bills. The 8 it missed: 7 went into QuickBooks wrong and 1 never reached a record. Click a document to see it.

    1 to 3 of 8

    Roofing · Receipt

    Went into QuickBooks wrong

    Sent to Kestovane Ridge Roofing

    Read right, then posted with the wrong date by a bug in our bulk submit button. The date in QuickBooks does not match the receipt.

    Roofing · Receipt

    Went into QuickBooks wrong

    Sent to Kestovane Ridge Roofing

    Read right, then posted with the wrong date by a bug in our bulk submit button. The date in QuickBooks does not match the receipt.

    Restaurant · Invoice

    Never reached a record

    Sent to Fennick & Thorlow Restaurant Group

    One invoice titled “Statement of Charges” was set aside as a vendor statement, so no record was made. We count it as a miss.

    Creative agency · Receipt

    Went into QuickBooks wrong

    Sent to Wendlemarsh Creative Studio

    Read right, then posted with the wrong date by a bug in our bulk submit button. The date in QuickBooks does not match the receipt.

    Restaurant · Invoice

    Went into QuickBooks wrong

    Sent to Fennick & Thorlow Restaurant Group

    Its printed due date disagrees with its payment terms, which should have held it for review.

    Roofing · Receipt

    Went into QuickBooks wrong

    Sent to Kestovane Ridge Roofing

    A payment printed on the page was not read, so the full total posted while a balance was still due. It should have been held for review.

    Creative agency · Invoice

    Went into QuickBooks wrong

    Sent to Wendlemarsh Creative Studio

    Read as a receipt, so it posted as an expense where a bill was due. Its printed due date also disagrees with its payment terms, which should have held it for review.

    Creative agency · Invoice

    Went into QuickBooks wrong

    Sent to Wendlemarsh Creative Studio

    Its due date was not read, and it should have been held for review. It went into QuickBooks as an expense where a bill was due, with no QuickBooks record linked back to it.

    See every miss and why

    Delivery

    How 493 emails got from the inbox to QuickBooks

    Every email went to one client's inbox. DocStreamAI picked it up there, classified each attachment, extracted the fields and posted the record to that client's QuickBooks company. File names and subject lines never say "statement", "duplicate" or "two bills", so the only way to get these right is to read the page.

    INBOXDOCSTREAMAIQUICKBOOKS$?Roofingclient's inboxHVACclient's inboxRestaurantclient's inboxAgencyclient's inboxE-commerceclient's inboxevery emailpicks upclassifiesextractspostsRoofing108 documentsHVAC110 documentsRestaurant108 documentsAgency107 documentsE-commerce107 documents493 EMAILS SENT

    The five lanes add up to 540 documents. The other 18 of the 558 are scenario files, credit memos and multi-bill PDFs, sent to the same inboxes on top of each company's pile.

    77% of the emails are the everyday case, one document attached. The rest are the shapes that go wrong.

    • 382emails

      One document per email

      Right result: One record in the books.

    • 25emails

      Several invoices on one email

      Right result: One bill for each attachment.

    • 20emails

      A receipt and an invoice together

      Right result: An expense for the receipt and a bill for the invoice.

    • 6emails

      Several bills inside one PDF

      Right result: Each invoice becomes its own bill. A long invoice stays one bill.

    • 25emails

      Vendor statements of account

      Right result: No new bills. Seven of these emails also carry one new invoice, and only that invoice becomes a bill.

    • 20emails

      Emails about money with nothing attached

      Right result: Nothing created.

    • 10emails

      The same invoice sent twice

      Right result: Flagged as a duplicate, never posted twice.

    • 5emails

      "Did we ever pay this?"

      Right result: No second bill.

    Results · inside DocStreamAI

    What DocStreamAI read

    All 558 documents, text and scanned PDFs together, scored October 2, 2026. Each one was measured inside DocStreamAI from its company's inbox and checked against the answer key generated with it. Scanned PDFs are also broken out in their own section below, and receipts get a closer look in the receipts section.

    Scored October 2, 2026: 558 documents sent, text and scanned PDFs together. 515 were scored field by field against their answer keys.

    • 98.3%6584 of 6695

      Extraction

      Values read correctly off the page: vendor, dates, totals, tax, line items.

      Every key field right at once* on 95.9% of documents (494 of 515)

    • 98.6%551 of 559

      Detection

      Each document recognised as what it is: invoice, receipt, credit memo, or a vendor statement kept out of the books.

      Of the 8 it got wrong, 3 were held for review, 1 never reached a record, 1 was not posted, 1 was waiting to match a card payment, 1 was posted, and the QuickBooks record matched, and 1 was posted when it should have been held for review

    • 99.8%557 of 558

      Intake

      Documents that reached DocStreamAI from the email and were handled: a record for each bill, receipt and credit, and none for a vendor statement.

      Vendor statements kept out of the books: 25 of 25

    • 100.0%392 of 392

      Vendor

      The vendor on the QuickBooks record matches the document. Full breakdown in the vendor section below.

    • Not measured yet

      Categorization

      The expense account chosen matches the one the company's chart of accounts intends.

    Extraction, field by field

    • Vendor name99.6%513 of 515
    • Document number99.6%513 of 515
    • Document date98.6%508 of 515
    • Due date98.6%508 of 515
    • Currency99.8%514 of 515
    • Subtotal99.8%514 of 515
    • Tax99.8%514 of 515
    • Total99.6%513 of 515
    • Number of lines98.1%505 of 515
    • Line descriptionsLower severity97.9%504 of 515
    • Line quantitiesLower severity94.4%486 of 515
    • Unit pricesLower severity94.6%487 of 515
    • Line amounts98.1%505 of 515

    * Line descriptions, quantities and unit prices count as lower severity and are left out of this figure. QuickBooks records each line by its amount, so a wrong quantity or unit price does not change what lands in the books. Counting them too: 92.2% (475 of 515).

    Every document we got wrong, grouped by cause: see every miss and why.

    The five companies

    Pick a business. Open its books.

    Each one is invented, with its own QuickBooks company, its own email inbox and user, and a chart of accounts built for its trade. Open a company to see its full chart. Submission was set to automatic, so a document went straight to QuickBooks unless one of DocStreamAI's checks held it for review.

    Portland, OR

    E-commerce & import

    Amblequist Row Home Goods Inc.

    99.2%fields read correctly
    107 documents71 account chart
    Bills
    52 bills
    Receipts
    40 receipts
    Credits
    10 credits
    Statements
    5 statements

    45 scanned, photographed, faxed or photocopied

    Open the full report

    Image quality

    One invoice, five ways it shows up

    216 of the documents carry no text layer at all. Scans with speckle and skew, photos taken at an angle, faxes crushed to black and white. The picture is all there is to read.

    • 324

      Clean PDF

      Straight from the vendor's system

    • 140

      Office scan

      Speckle, skew, grey paper

    • 49

      Phone photo

      At an angle, shadow across it

    • 14

      Fax

      One bit black and white

    • 13

      Photocopy

      Dark band down one edge

    Deliberate difficulty

    18 kinds of trap, set on purpose

    Most of them lead to a confident, plausible, wrong number. Nothing looks broken, which is exactly why they cost money. Most damaging first. On receipts, DocStreamAI caught 24 of the 25.

    • Subtotal1,284.00
      Sales tax99.51
      TOTAL1,383.51
      Paid by card-1,383.51
      BALANCE DUE0.00

      The total is not the amount owed

      The largest number on the page, the last number, and the number beside the word Total are all the same wrong number. Read it and you pay a bill that was already settled.

      20 documents in the test kit, modelled on a document we have seen in use

    • Shingles, 12 bdl418.20
      Drip edge, 10 ft46.90
      Rewards year to date41,820.00
      Amount due465.10

      A bigger, unrelated number in the money column

      It is frequently the largest figure on the document, often a hundred times the actual total, so anything that reaches for the biggest number returns it.

      15 documents in the test kit, modelled on a document we have seen in use

    • Skelvane Ridge Building Products
      The Skelvane Ridge Building Products Co
      SKELVANE RIDGE BLDG PRODUCTS
      one supplier, three vendor records

      The same vendor, spelled several ways

      Each spelling can create a separate vendor record, splitting one supplier's history across several records and breaking every report built on it.

      15 documents in the test kit, modelled on a document we have seen in use

    • Returned material56.82-
      Restock fee4.00

      The minus sign after the number

      Stop reading at the last digit and you get a positive 56.82. The sign is silently dropped, so a credit posts as a charge.

      10 documents in the test kit, modelled on a document we have seen in use

    • Credit applied(56.82)
      Invoice 20417512.40

      Negatives in parentheses

      Drop the parentheses and the sign flips. It is the same failure as above, arriving by a different route.

      10 documents in the test kit, modelled on a document we have seen in use

    • Lines, tax included216.00
      Includes tax16.46
      Total216.00

      Tax already inside the line amounts

      Add the tax on top, as most documents require, and the bill is overstated by the tax amount.

      10 documents in the test kit, modelled on a document we have seen in use

    • INV 4471 03/14640.00
      INV 4478 03/14640.00
      same vendor, same PO, two real bills

      Two real invoices that look like one

      Matching on vendor and amount collapses them into one, and a legitimate second bill is never paid.

      10 documents in the test kit, modelled on a document we have seen in use

    • INV 2093 03/021,118.40
      INV 2093 03/021,118.40
      arrived again four days later

      The same invoice delivered twice

      Treat them as two documents and the same bill gets paid twice.

      10 documents in the test kit, modelled on a document we have seen in use

    • €1.240,50£86.20C$312.00MX$4,150.00

      Not in dollars

      Read the number without the currency and the amount is right but the money is wrong.

      10 documents in the test kit

    • p.1 Pellworth FastenersINV 5521
      p.2 Dunmere Sheet MetalINV 0907
      one file, two vendors

      Two separate invoices in one file

      Read as a single document, two vendors' money merges into one bill and the second supplier never gets recorded.

      6 documents in the test kit, modelled on a document we have seen in use

    • Charges480.00
      Payment received-400.00
      Credit memo-80.00
      Balance0.00

      Charges, then payments, then nothing owed

      Post it as a payable and you have created a bill for money that is not owed.

      5 documents in the test kit, modelled on a document we have seen in use

    • Invoice date04/09/26
      Due date0/00/00

      A date field that prints 0/00/00

      The field is not empty, so every check for a missing value passes it straight through. Only an attempt to parse it reveals it is junk.

      5 documents in the test kit, modelled on a document we have seen in use

    • TermsNet 30
      Due date 

      Payment terms, but no due date

      The due date has to be calculated from the terms and the invoice date, or a perfectly good bill gets held back for review.

      9 documents in the test kit, modelled on a document we have seen in use

    • Qty PriceExt
      12 8.5096.90
      12 × 8.50 is 102.00, the vendor billed 96.90

      Quantity times price does not equal the line total

      Recalculate from quantity and unit price and you silently restate the invoice to a number the vendor never charged.

      5 documents in the test kit, modelled on a document we have seen in use

    • Terms 
      Due date 

      No due date at all

      This one should be held for a human. A bill with no due date is often a quote or an order confirmation that was misread as an invoice.

      1 document in the test kit, modelled on a document we have seen in use

    • Issued04/01/26
      Due04/01/26
      monthly plan, paid on issue

      Issue date and due date are the same

      It is not an overdue bill, and treating it as one puts a recurring charge into a chasing workflow.

      5 documents in the test kit, modelled on a document we have seen in use

    • Freight.00
      Fuel surcharge12.00

      Amounts printed as .00

      Strict number parsing rejects it, and a lenient parser can attach it to the wrong field.

      5 documents in the test kit, modelled on a document we have seen in use

    • Romaine, cs 6141.00
      short 2 cs, credit to follow

      The driver wrote on it

      The printed total is no longer what is owed, and only the handwriting knows the real number.

      1 document in the test kit, modelled on a document we have seen in use

    Results · wrong fields

    What happened to a misread field

    494 of 515 documents had every key field right*. Submission was automatic, so an invoice went to QuickBooks unless something kept it out. Here is every invoice read with a field wrong, by how serious the mistake was.

    11 invoices had a key field misread, text and scanned together, and 10 of them were kept out of the books. Another 5 had only a lower severity slip, such as a unit price, which does not change what QuickBooks records.

    • Total, tax or subtotal wrong1invoicesKept out 1 · Posted 0
    • Document date wrong5invoicesKept out 5 · Posted 0
    • Due date wrong, document date right3invoicesKept out 2 · Posted 1
    • Vendor name, document number or currency wrong2invoicesKept out 2 · Posted 0
    • Lower severity only: a description, quantity or unit price5invoicesKept out 0 · Posted 5

    Kept out of the booksPosted to QuickBooks

    What "kept out" covers: 10 were held for review by one of DocStreamAI's checks.

    Results · receipts

    Receipts, from the inbox to the books

    200 receipts across the five companies, text and scanned together, with measures of their own. Each one was checked against its answer key, and every one that posted was read back from QuickBooks.

    Reading the receipt

    • 100.0%200 of 200

      Reached DocStreamAI and read

    • 97.5%195 of 200

      Read as a receipt

    • 95.5%191 of 200

      Every key field right

    • 88.5%177 of 200

      Every field right, line items included

    Traps

    24 of 25 caught

    • 5 of 5

      Not in dollars

      5 read in their own currency and kept out of these US dollar books.

    • 5 of 5

      A bigger, unrelated number

      The stray figure was never taken for the total.

    • 5 of 5

      Vendor spelled another way

      Booked to the same vendor however the name was written.

    • 9 of 10

      Total is not the amount owed

      5 held for review because a balance was still due, and 4 paid in full and posted for the full total.

      1 missed: 1 posted its full total while a balance was still due, and should have been held for review.

    In QuickBooks

    185 posted as expenses, and every one read back from QuickBooks.

    Amount

    185 of 185

    Tax

    185 of 185

    Vendor

    185 of 185

    Date

    182 of 185

    Currency

    185 of 185

    Kept out of the books

    15 of 200 never posted, so nothing wrong reached QuickBooks.

    • 5showed a balance due that differs from the total. Each was held for review, as it should be.
    • 5not in dollars. Each was read in its own currency and not posted to these US dollar books.
    • 4read as an invoice. Each was kept out, so nothing wrong was posted.
    • 1read right but not posted by the end of the test.

    Where every receipt ended up, by company

    Every receipt is counted once, in one of these. Passed means right from the email to the QuickBooks record.

    • 147 passed end to end
    • 14 traps caught, posted with every field right
    • 20 posted with the total right, a line item or subtotal read differently
    • 15 kept out of QuickBooks, nothing posted
    • 4 posted with a mistake
    • 0 never reached a record
    • When more than one applies, a receipt counts once, under the worst: never reached a record, then posted with a mistake, then kept out, then a line item or subtotal read differently.
    • Kept out means nothing reached the books: the receipt was held for review, or read and left unposted.
    • Of the 24 traps caught, 14 posted with every field right. The rest are counted where they ended up: 10 kept out of QuickBooks.

    Where it went wrong

    • 1 of 10 "total is not the amount owed" receipts posted its full total while a balance was still due. It should have been held for review.
    • 3 receipts were read right but posted with the wrong date by a bug in our bulk submit button. The date in QuickBooks does not match the receipt.
    • 5 receipts were read as an invoice: 4 were kept out of QuickBooks, and 1 still posted right as an expense.
    • 23 receipts had a line item or the subtotal read differently. Every other field was right on each one, the total included.

    Results · vendors

    Did each record land on the right vendor?

    A vendor only needs to be set up once. After that, every bill, receipt and credit from them should land on the same vendor in QuickBooks, whatever way the name is written. We read every posted record back from QuickBooks and compared its vendor with the document.

    How this was tested

    Every bill, vendor credit and expense that posted in the five QuickBooks companies was read back, and the vendor on each record was compared with the vendor printed on the document.

    100.0%392 of 392

    QuickBooks records with the right vendor. Text and scanned PDFs, every document type.

    • Vendor name written differentlythe spelling trap100.0%12 of 12
    • Text PDFs100.0%238 of 238
    • Scanned PDFs100.0%154 of 154
    • Invoices100.0%164 of 164
    • Receipts100.0%185 of 185
    • Credit memos100.0%43 of 43
    Roofing
    90 of 90
    HVAC & plumbing
    80 of 80
    Restaurant
    68 of 68
    Creative agency
    79 of 79
    E-commerce
    75 of 75

    392posted with the right vendor

    The vendor on the QuickBooks record is the vendor on the document. That includes all 12 posted records where the vendor's name was written a different way, such as with "The" in front or "Co" at the end.

    0posted with the wrong vendor

    No record in any of the five companies landed on the wrong vendor.

    Results · scanned PDFs

    Scanned PDFs, on their own

    Once a scan is read, it scores almost level with a text PDF: 98.3% of fields read correctly against 98.3%, and 215 of 216 identified as the right type. They are counted in the results above too. Here they stand on their own, next to the text PDFs, the kind billing software makes.

    216 scanned PDFs sent: office scans, phone photos, faxes and photocopies saved as PDF. All of them reached DocStreamAI. 208 were scored field by field. The other 8 are vendor statements, which have no fields to score.

    Once a scan is read

    • 98.3%2659 of 2704

      Fields read correctly

    • 95.2%198 of 208

      Every key field right*

    • 99.5%215 of 216

      Type detected

    Text PDFs, for comparison: 98.3% of fields read correctly, and every key field right* on 96.4% of documents.

    Getting a scan to that point

    The only attachment on its email

    167 of 167

    All 167 reached DocStreamAI.

    Sent with other attachments

    49 of 49

    All 49 reached DocStreamAI.

    Scanned vendor statements kept out of the books

    8 of 8

    All 8 were recognised as statements. None was posted as a bill.

    * Line descriptions, quantities and unit prices count as lower severity and are left out of this figure. QuickBooks records each line by its amount, so a wrong quantity or unit price does not change what lands in the books. Counting them too: 91.3% (190 of 208).

    Results · in QuickBooks

    What landed in QuickBooks

    The second place accuracy counts: the record in QuickBooks matches the document, field by field. Read back from each QuickBooks company, per record type.

    98.8%400 of 405

    Every record posted

    400 of 405 records posted to QuickBooks match the document on every field, every record type.

    The 5 that do not: 2 of the records that posted wrong, named at the top of this report, and 3 posted with a wrong date by a bug in our bulk submit button.

    98.6%146 of 148

    Documents with no trap

    98.6% of bills and vendor credits posted to QuickBooks with every field matching the document.

    Bills and vendor credits, traps included: 206 of 208 (99.0%).

    • 98.8%163 of 165

      Bills

      Created from invoices.

      98.8% match the document, traps included. From documents with no trap: 103 of 105. 2 invoices went in as expenses where a bill was due, and count here as bills that do not match.

    • 100.0%43 of 43

      Vendor credits

      Created from credit memos.

      100.0% match the document, traps included. From documents with no trap: 43 of 43.

    • 98.4%182 of 185

      Expenses

      Created from receipts.

      98.4% match the receipt on every field read back, lines included. On amount, tax, vendor, date and currency: 182 of 185. All 185 posted receipts across all five companies were read back.

    Send it your own paperwork.