heybadrinath/reconriver-synthetic-reconciliation
ReconRiver synthetic reconciliation dataset This dataset contains deterministic, entirely synthetic payment-reconciliation scenarios generated by the project's Java 21 dataset generator. Each scenario starts with a canonical payment collection and derives an internal ledger, processor events, bank settlements, and expected reconciliation ground truth. No record describes a genuine person, payment, card, bank account, address, or customer. Identifiers use a conspicuous SYNTH-… See the full description on the dataset page: https://huggingface.co/datasets/heybadrinath/reconriver-synthetic-reconciliation.
ReconRiver synthetic reconciliation dataset
This dataset contains deterministic, entirely synthetic payment-reconciliation scenarios generated by the project's Java 21 dataset generator. Each scenario starts with a canonical payment collection and derives an internal ledger, processor events, bank settlements, and expected reconciliation ground truth.
No record describes a genuine person, payment, card, bank account, address, or customer. Identifiers use a conspicuous SYNTH- prefix. Never upload genuine financial or personal information to the public demonstration.
Included scenario packs
Exception percentages and distributions are demonstration assumptions. They are not measurements, estimates, or benchmarks of real payment behavior.
Pack structure
Every generated scenario directory contains:
internal_transactions.csvprocessor_transactions.csvbank_settlements.csvexpected_reconciliation.csvscenario_manifest.jsonREADME.md<scenario-id>.zip
The mixed-exceptions pack also includes internal_transactions_duplicate.csv, a byte-identical input used to demonstrate duplicate-file detection.
The ground-truth file contains separate ORDER and SETTLEMENT results. Its result_scope plus work_key form the stable logical identity used to compare generated expectations with API results. Normal order keys are merchant order IDs, normal settlement keys are external settlement batch IDs, and visibly synthetic prefixed keys identify invalid-row and bank-only work.
The manifest records the generator version, fixed inputs, row counts, injected conditions, fee and settlement policy, currencies, SHA-256 checksums, expected-outcome totals by scope and overall, and the synthetic-data disclaimer. Checksums cover every loose file except the manifest and ZIP, avoiding a recursive checksum definition.
SHA256SUMS provides the publication checksum for every dataset card, schema, loose file, manifest, and ZIP archive. It excludes only itself.
Reproduce a pack
From backend/:
JAVA_HOME=$(/usr/libexec/java_home -v 21) ./mvnw -pl dataset-generator package
JAVA_HOME=$(/usr/libexec/java_home -v 21) java \
-jar dataset-generator/target/reconriver-dataset-generator.jar \
--scenario mixed-exceptions \
--records 1000 \
--seed 42 \
--start-date 2026-01-01 \
--output ../datasets/generatedThe same scenario, record count, seed, and start date produce byte-identical loose files and ZIP entries. The generation timestamp is the fixed start date at midnight UTC, not wall-clock time.
Monetary policy
All monetary generation and calculations use Java BigDecimal with two decimal places. The default synthetic fee is 2.90% of a positive gross amount plus 0.30, rounded HALF_UP. Every valid processor row satisfies:
net_amount = gross_amount - fee_amountMalformed rows are deliberately exempt because their invalid values are import-test fixtures.
Limitations
- The data models reconciliation behavior, not fraud, credit risk, consumer behavior, or market activity.
- Distributions are designed for explainable product demonstrations and tests, not statistical realism.
- Settlement policy is intentionally simplified and must not be treated as processor or bank guidance.
- Currency codes do not imply exchange-rate conversion; cross-currency mismatches are expected exceptions.
Licence
Generated data is licensed under the Creative Commons Attribution 4.0 International licence.
