A bank statement shows the date on only some rows because it prints each day’s date once, on that day’s first transaction, and leaves the cell blank on the rest. A converter carries that date down. Evidilo marks each carried row, but the file it writes holds no such mark, and its balance check never reads a date.

How a statement that prints one date a day is read

On a statement laid out this way, the date column carries a value only on the first transaction of each day. The rows under it have a description, an amount and often a balance, and nothing in the date cell. Read literally, those rows have no date, and every transaction in the QBO, OFX or CSV file Evidilo writes needs one.

Evidilo reads the blank cell the way the bank meant it, as the nearest date printed above it on the same page, or the last date printed on the page before. So a day that starts at the bottom of page 2 and runs onto page 3 keeps its date on both pages. The same rule runs on a PDF read from its text and on a scan or photo read from its picture. Each carried row is stored with a mark that its date came from the row above, because no cell of that row printed it.

Six rows, three printed dates

On 26 October 2026 we took six rows of a statement that prints three dates, with a balance beside every row, and wrote them through Evidilo’s own export code with the dates already carried, as in the table below. No statement page was read: the table shows the rows the writers were given, not what the reader returned from a PDF.

The six rows written on 26 October 2026, with the carried dates filled in
RowDate printed on the rowDate written to the fileCarried
ACH debit, $120.0010/02/202610/02/2026No
Card purchase, $45.50blank10/02/2026Yes
Deposit, $300.00blank10/02/2026Yes
Check 1043, $200.0010/05/202610/05/2026No
Service fee, $12.00blank10/05/2026Yes
ACH credit, $75.2510/09/202610/09/2026No

What the downloaded file cannot show

Each of the seven formats Evidilo offers was written three times: with no row marked as carried, with the three blank rows marked, and with all six marked. The table compares the bytes of those files.

Evidilo’s writers on the six rows, measured 26 October 2026
FormatBytes written with the carried mark against bytes written without it
QBOidentical in all 3 variants
OFXidentical in all 3 variants
QFXidentical in all 3 variants
QIFidentical in all 3 variants
IIFidentical in all 3 variants
CSVidentical in all 3 variants
Excelidentical in all 3 variants

The QBO and QFX files also came out identical byte for byte to each other. Evidilo writes the date and nothing about where it came from, so once the file exists the difference between a printed date and a carried one is kept only in the conversion that produced it. If you open the file in a spreadsheet, the date cells follow the rules in which file to open, CSV or Excel, and those rules know nothing about carrying either.

What the balance check cannot see

Evidilo’s balance check is handed two things per row: its amount and the balance printed beside it, if any. No date reaches it. We ran the check over the same six rows, once with a balance beside every row and once with a balance only on the last row of each day, and again with the deposit’s date changed from 10/02 to 10/05 while it kept its place.

Evidilo’s balance check on the six rows, 26 October 2026
What the check was givenVerdict
A balance beside every rowbalanced
One balance at the end of each daybalanced
The deposit’s date changed to 10/05, a balance beside every rowbalanced, the same as with the printed date
The deposit’s date changed to 10/05, one balance at the end of each daybalanced, the same as with the printed date
A control: the deposit moved to the end of the listneeds_review, running_balance at row 3

So a carried date that lands on the wrong day passes the check, whether the statement prints a balance beside every row or one at the end of each day. The check proves the amounts and their order; only a row that moves in the list breaks it. The day a row sits on is proved by comparing the file with the statement, which is the list below. What a tied-out statement tells you covers the rest of what the sum proves and what it leaves open.

A movement with nothing above it to carry

The hard case is a row with no date of its own and no dated row above it on the same page or the page before, for example a transaction at the very top of the first page. There is no date to carry, and the reader does not guess one from the statement period. Evidilo keeps the movement beside the rows and the review screen states it with its description, amount, page and side, and asks for one thing, the date. The download stays closed until every such movement has one or has been deleted.

  1. Find the movement on the paper or PDF statement and type the date it belongs to. It is written as a row on that date, and the balance check runs again over the statement.
  2. If you cannot date it, delete it. The screen says it will not be in the file, and the decision is written to the audit trail.
  3. With more than three such movements, one date field covers them all, or only the ones you tick, and the screen says how many the date will reach.

What to check before you import

  1. Look at the statement, not the file, for days that print several transactions under one date. Those are the rows whose dates were carried.
  2. For each of those days, count the transactions on the statement and in the file. A row carried onto the wrong day shows up as one day with a row too few and a neighbouring day with one too many.
  3. Check the first rows of every page. A page that opens without a date takes its date from the last one printed on the page before, so confirm on the statement that the day really runs across the break.
  4. Import only once each day matches. A date fixed after the import is a date fixed in your books rather than in the file, and importing a PDF statement into QuickBooks covers what a second import of the same month does.

What Evidilo is

Evidilo is a bank statement to accounting import file converter that holds a file back while a movement it read has no date, rather than writing it on a day the bank never printed. It turns a PDF, a scan or a photo of a paper statement into QBO, IIF, OFX, QFX, QIF, CSV or Excel, and it adds up every row against the opening, closing and daily balances the bank printed, marking the first day that does not tie out. Three statements a day convert free, up to 10 pages each, without an account.

How was this checked?

On 26 October 2026 we copied Evidilo’s seven file writers and its balance check out of the product’s source and ran them with Node v22.22.2 on the six rows above. Every statement here about how Evidilo carries a date or holds a movement is quoted from that source; no statement page was read. The results are in dataset.csv, and check.py repeats the measurement and finds every quote again.

Questions about statements that print a date once a day

Why does my bank statement leave the date blank on some rows?

The statement prints the date once for each day and leaves it off the other transactions of that day. Evidilo reads each blank row as belonging to the day printed above it and stores a note that the date was carried. Whatever converter you use, compare its file against the statement for one busy day.

Can I tell from a QBO or CSV file which dates were carried?

No. Written with and without the carried mark, the QBO, OFX, QFX, QIF, IIF, CSV and Excel files were identical byte for byte. Evidilo keeps the mark in the conversion itself, not in the file, so the only check on the file is to compare its days against the statement.

What happens to a transaction printed before the first date on the page?

If no date is printed above it on that page or the one before, it has no date to carry, so the reader does not invent one. Evidilo holds it as a movement to settle, and the download stays closed until you give it a date or delete it. Whatever converter you use, find that row on the statement and then in the file, because nothing on the page tells a reader which day it belongs to.

Will the balance check catch a row put on the wrong day?

No, as long as the row keeps its place in the list. Evidilo’s check is given each row’s amount and printed balance and never its date, and it returned balanced for a deposit moved to the wrong day both with a balance beside every row and with one at the end of each day. Compare the days in the file with the statement.

Is a PDF with a text layer read the same way as a scan?

For carrying a date down a day, yes. Evidilo runs the same carrying rule on every page, whether it was read from its text or from its picture, and a movement with no date to carry holds the download on either. Comparing the first rows of each page with the file is worth doing on both.