# Journal portability acceptance kit · v1

Created 8 September 2026 by ProEA Lab. All rows, amounts, labels and notes are fabricated. This kit is freely reusable as a test fixture with attribution to https://proea.app/en/blog/trading-journal-one-time-purchase. It contains no commercial application source or customer data.

Download the files linked in the article, including both source-trades-with-offset.csv and its explicitly UTC-normalized trades.csv. Keep the original files unchanged and record your results in a copy of acceptance-worksheet.csv.

## Run the acceptance check

1. Create an empty, disposable test workspace in the journal you are evaluating. Do not mix this kit with your real history. Record the edition, version and date.
2. Import trades.csv using a compatible column mapping. The three rows describe two explicitly declared fictional position groups: two exits in SYN-P1 and one row in SYN-P2. Financial rows alone do not prove grouping. This is a generic closed-trade CSV, not an MT5 statement or the free analyzer's posting schema.
3. Inspect the clock. The original source fixture uses a fixed +02:00 offset, so its first 23:55 opening is 21:55 UTC on 1 September. Its first exit crosses midnight in the source clock but remains 1 September in UTC. trades.csv writes those instants as UTC without an offset suffix for compatibility with the older, locally tested desktop source 1.0.0. The updated website importer also accepts the original offset form. Never remove an offset from an arbitrary time without converting the instant. A change of displayed timezone can be valid; changing the instant is not.
4. Add the note, note tags, planned risk and attachment from annotations.json manually only where the journal supports them. This manifest is not a vendor import schema. Record unsupported fields; do not silently discard them.
5. Check 0.00 gross P/L, -1.60 commission, -0.20 swap and -0.20 fees: net trading P/L is -2.00 USD. The separate cash ledger adds 75.00 USD. A hypothetical 1,000.00 balance before these entries ends at 1,073.00. Do not import cash rows as trades. Group results are 6.70 and -8.70; row win rate is not position win rate.
6. Export the full test scope, inspect columns and any separate notes/attachment exports, then restore into a second empty workspace. Use the statuses preserved, transformed, separate export, unavailable or untested for each field. Exporting a CSV is not a full restore test.
7. Repeat the import into the same disposable workspace and confirm whether duplicate IDs update, skip or duplicate. Record the actual behavior. Never infer deduplication merely because IDs survive a CSV round trip.

## ProEA's own check, 8 September 2026

The accompanying article and verification.json report an isolated source-function test of TradeLens's actual CSV exporter and generic importer with this fixture, including a check of the locally available download source version 1.0.0. The website importer was corrected to accept its own export's zoned ISO timestamps. The unchanged desktop source still needs explicit normalization to UTC text in YYYY-MM-DD HH:mm:ss form before reimporting that export. That manual transformation is not a direct round-trip pass. Comments and magic numbers are absent from the tested trade CSV exporter; richer annotations remain separate/untested. No live account, customer database or product API was used. The free MT5 report analyzer has a different purpose and schema; it does not import this annotations manifest or reconstruct journal groups.

The fixture's trade tags deliberately do not contain semicolons, because the tested format uses semicolons as tag separators. This test does not establish lossless handling of arbitrary tag names or every vendor format. The text attachment does not test image handling. Back up real data before an actual migration and keep the original export and any separate notes/files.
