Private CSV workbench

Merge CSV files and review duplicates.

Choose files, confirm their columns and keys, select what to keep, then take away cleaned and excluded-row CSV files. Everything stays in this browser.

Choose CSV files

UTF-8 CSV only, up to 20,000 rows and 100 columns per file. Source files are never changed.

Approved-value dictionary (optional)

Only exact cell values are replaced by column. The dictionary stays in this page's memory.

    No dictionary loaded.

    Choose CSV files.

    Compare a recipe change (optional)

    Apply the old and new recipes to the same input CSV and review changed rows and newly rejected rows. The new rule is applied and saved only after approval.

    Choose the input CSV and old/new recipes.

    Apply repeat-delivery recipes to multiple CSVs (optional)

    Load a recipe-set JSON, assign one recipe explicitly to every file, then save destination-scoped CSVs and a manifest in one ZIP. Filenames are never used for matching.

    Up to 100,000 data rows. Files stay in this browser.

    Choose a recipe-set JSON.

    Resubmit rejected rows only (optional)

    Choose the original CSV and the destination result CSV, then review and edit failed rows only. Successful rows are not exported; unknown rows stay separate.

    Choose both CSV files.

    Relation-preserving pseudonymized copy (optional)

    Keep customer/order relations while explicitly choosing keep, pseudonymize, fixed value, or remove for every column. Pseudonyms are not a legal anonymization or external-sharing guarantee.

    Choose a schema JSON and CSV files.

    Repair broken references and deliver related tables (optional)

    Declare parent tables, child tables and keys in schema JSON, then assign each CSV explicitly. Orphans, duplicate primary keys, empty keys and cycles stop safely; save the corrected table set as a ZIP.

    Load a schema JSON and CSV files.

    Convert dates, decimals, or units explicitly (optional)

    Choose the input and delivery formats, review each converted value, then save. Ambiguous, invalid, and unsupported values are never guessed.

    Grouping is checked exactly: choose ASCII space (U+0020) or nonbreaking space (U+00A0) to match the source. Invalid values stay unchanged and block saving.

    Choose one CSV file.

    Build delivery JSON from parent and child CSVs (optional)

    Assign a recipient schema or saved mapping manifest and CSVs explicitly, review parent/child references, then save nested JSON and a reusable mapping manifest. Nothing is sent externally.

    Load a schema JSON and CSV files.

    Review Shopify product update CSV safely (optional)

    Compare an existing export and a proposed update in the browser, hold blank values instead of erasing data, and save only explicitly adopted changes. Nothing is sent to Shopify.

    Choose an existing export and a proposed update CSV.

    Reconcile invoices and payments (optional)

    Choose invoice and payment columns explicitly. Review split payments, one payment across multiple invoices, and unmatched rows; save only an explicitly confirmed local report. Nothing is sent to a financial institution.

    Choose an invoice CSV and a payment CSV.

    Review similar duplicate candidates (optional)

    Choose a comparison column and decide each candidate as same, different, or hold before saving a cleaned CSV. Nothing is merged automatically.

    Choose one CSV file.

    Reproduce CSV delivery errors with synthetic data (optional)

    Create fixed synthetic cases and reproduction steps locally so you can discuss a delivery error without sharing source data. Select cases, then explicitly generate and save.

    Select cases to reproduce

    Select one or more cases.

    Input, filenames and results stay in temporary browser memory until an explicit save. No automatic deletion or entity matching is performed.

    Turn team time into a client report

    Filter member work CSVs by project and period, choose the columns to share, review the rows, then save a report CSV. Everything stays in this browser.

    Header: member,project,start,end,minutes,description. Timestamps must include a timezone.

      Choose CSV files.

      Partition one CSV by recipient (optional)

      Choose the recipient key column, recipients, and columns explicitly, then create one CSV per recipient. Check source, distributed, and excluded row counts before saving. No guessing, deduplication, or external sending.

      Supported scope

      This does not perform customer matching or guarantee destination acceptance. Review the output and destination requirements.