Why your trading CSV totals differ
Reconcile accepted and rejected rows, spot date and decimal-format errors, and avoid subtracting trading fees twice with a downloadable USD example.
An invented USD example with one deliberately invalid date. Check it locally, then compare your results with the walkthrough below.
Download the three-row synthetic CSV ↓Compare the same rows before comparing money
A lower total after a CSV check may mean that some rows were rejected, not that the arithmetic changed. Keep the original file unchanged. Compare the same currency, date range and completed records, then count input rows, accepted rows and rejected rows separately. SanForex totals and exports include accepted rows only. They cannot certify that every trade is present or that a broker statement is correct.
Run a three-row example you can inspect
Download the synthetic CSV above and open the USD trade CSV checker linked below. Choose that file. It contains the exact header date,pair,gross,costs,notes. Row A, dated 2026-02-01, has gross USD 120.35 and costs 2.10: net 118.25. Row B, dated 2026-02-02, has gross −40.20 and costs 0.80: net −41.00. Row C has gross 15.00 and costs 1.00, but its date is 2026-02-30. February 30 does not exist, so the checker rejects C. These are invented amounts and records, not trading results.
Explain the difference instead of hiding it
The expected result is 3 input rows = 2 accepted + 1 rejected. Accepted gross is 120.35 − 40.20 = 80.15; costs are 2.10 + 0.80 = 2.90; accepted net is 77.25. Adding every amount without validating dates gives 95.15 − 3.90 = 91.25. The 14.00 difference is exactly the rejected row’s 15.00 − 1.00. Export accepted rows only after recording that exclusion. In this synthetic exercise, change C’s date to 2026-02-28 in a copy and recheck: all 3 rows are accepted and net becomes 91.25. For a real file, establish the correct date from its source; never invent one just to pass validation.
Distinguish a bad row from an unreadable file
A valid CSV structure can contain an invalid date or amount; those records receive individual errors. An incorrect header, broken quoting or an exceeded file/row limit instead rejects the whole file, with no totals or export. RFC 4180 describes quoting fields containing commas or line breaks and doubling a quote inside a quoted field. A quoted multiline note is one record, so CSV record numbers need not match a text editor’s line numbers. Do not remove commas from notes or delete rejected rows merely to make the numbers agree.
Check spreadsheet conversion and fee meaning
Microsoft documents that CSV imports can interpret date columns according to the chosen format and that delimiters can vary. Inspect the import preview and column interpretation before saving a copy. This checker expects real YYYY-MM-DD dates, comma-separated fields and dot-decimal USD amounts with at most two decimals; changing a file extension does not convert its layout. Establish whether a result already includes fees. MetaTrader 5 distinguishes gross results that exclude swaps and commissions from profit/loss figures that include them. For an invented gross 100.00 and separate fee 3.00, net is 97.00; entering 97.00 as gross and subtracting 3.00 again incorrectly gives 94.00. Check the source definition rather than assuming a column name is universal.
Stop when the records need a different model
Use this checker only for USD amounts and already closed, aggregated rows: at most 1 MiB and 1,000 data rows. It does not infer currency, match partial fills, detect duplicate trades or import arbitrary broker formats. Its normalized CSV is not the local journal’s JSON backup. If a total still differs, compare the record set, fee inclusion and currency before changing values. The checker page has a format-request checklist for describing different columns with invented examples; send no actual trading files, identifiers or credentials through contact. A matching arithmetic total does not verify performance.
Sources and conventions
Examples are hypothetical. Arithmetic follows the formulas documented in our methodology. Broker contract specifications determine actual lot, margin and execution conditions. These sources document definitions and data; a source link does not imply endorsement of SanForex or a trading service.
- RFC 4180: CSV field counts, commas, quotes and line breaks ↗
- Microsoft: importing CSV files, delimiters and date formats ↗
- MetaTrader 5: gross results, swaps, commissions and trade-count conventions ↗
These materials are prepared with AI assistance and checked against worked examples and deterministic calculation tests where applicable. They are not an expert suitability assessment or investment advice.
Open trade csv checker tool ↗