CoolFace
Datasetpublic

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.

sourceHugging Facecc-by-4.0updated 2mo agoView on Hugging Face
0likes106downloads
Dataset Card

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

ScenarioDefault canonical paymentsPurposeStored in Git
clean-settlement100Exact matches with correct fees and complete bank settlementsYes
mixed-exceptions1,000Missing, duplicate, mismatched, late, refund, malformed, and duplicate-file casesYes
month-end-close10,000Multi-day close with documented assumed exception ratesYes
failure-recovery10,000Invalid and duplicate rows plus a controlled restart contractYes
local-performance100,000Local streaming and performance testsNo; intentionally ignored

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.csv
  • —processor_transactions.csv
  • —bank_settlements.csv
  • —expected_reconciliation.csv
  • —scenario_manifest.json
  • —README.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/:

bash
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/generated

The 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:

text
net_amount = gross_amount - fee_amount

Malformed 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.