{
  "title": "CSV reconciliation report",
  "human_url": "https://happytails.ai/en/data-tools/csv-reconciliation-report/",
  "agent_url": "https://happytails.ai/agents/en/data-tools/csv-reconciliation-report/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/data-tools/csv-reconciliation-report.md",
  "content": "CSV reconciliation report\nMatch two exports by business key and quantify missing records and amount differences.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use CSV reconciliation report\nPaste the two CSV exports.\nChoose unique business key columns and numeric amount columns.\nDownload the row-by-row reconciliation and exact totals.\nUseful next steps\nSQL result comparator\nCSV fuzzy match\nPrepare the source\nPaste the two CSV exports.\nChoose the matching rules\nChoose unique business key columns and numeric amount columns.\nReview and keep the result\nDownload the row-by-row reconciliation and exact totals. Amounts use exact decimal arithmetic and differences are right minus left. Missing amounts and duplicate keys block reconciliation. Totals do not perform currency conversion, accounting classification or financial certification.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "SQL result comparator",
      "url": "https://happytails.ai/en/data-tools/sql-result-comparator/"
    },
    {
      "name": "CSV fuzzy match",
      "url": "https://happytails.ai/en/data-tools/csv-fuzzy-match/"
    }
  ],
  "tool": {
    "id": "csv-reconciliation-report",
    "category": "data-tools",
    "built": true,
    "requirements": "Amounts use exact decimal arithmetic and differences are right minus left. Missing amounts and duplicate keys block reconciliation. Totals do not perform currency conversion, accounting classification or financial certification. Up to 1,000,000 characters, 10,000 data records, 100 columns and 100,000 cells across the sources. Files for multi-source tools are limited to 4,000,000 bytes total. Reports retain at most 500 diagnostic findings and state any omitted count. CSV and JSON outputs are limited to 4,000,000 characters. Output is budgeted incrementally before retaining each row; expanded decimal output counts toward the same 4,000,000-character limit even when input uses short exponent notation.",
    "implementation": {
      "fields": [
        {
          "key": "separator",
          "label": "Input CSV separator",
          "value": ",",
          "type": "select",
          "values": [
            ",",
            ";",
            "\t"
          ]
        },
        {
          "key": "comparison",
          "label": "Comparison CSV",
          "value": "id,amount\nA,10.00\nB,3.50\n",
          "type": "textarea",
          "help": "Paste the second table, including its header row. Both tables use the selected separator."
        },
        {
          "key": "keys",
          "label": "Business key columns (JSON)",
          "value": "[\"id\"]",
          "type": "textarea",
          "help": "Keys must be nonempty and unique in each input."
        },
        {
          "key": "amounts",
          "label": "Amount columns (JSON)",
          "value": "[\"amount\"]",
          "type": "textarea",
          "help": "Select up to 20 decimal amount columns. Empty, currency-formatted and nonnumeric amounts are rejected."
        },
        {
          "key": "outputSafety",
          "label": "CSV output cells",
          "value": "Protect spreadsheet cells",
          "type": "select",
          "values": [
            "Protect spreadsheet cells",
            "Preserve original cells"
          ]
        }
      ],
      "live": true,
      "presentation": "metrics",
      "note": "Runs locally on your device. CSV requires unique nonempty headers. Up to 1,000,000 characters, 10,000 data records and 100,000 cells across inputs, with 100 columns. Quoted multiline cells are supported. Each JSON settings field is limited to 100,000 characters. Output files are bounded to 4,000,000 characters. Diagnostic reports contain at most 500 findings and disclose the omitted count. Match exports by business key, list missing and changed records, and total each side, unmatched amounts and matched differences. Differences are right minus left. Exact base-10 arithmetic avoids binary rounding. No currency conversion or financial certification is implied. Protect spreadsheet cells prefixes formula-like values, including negative numbers, with an apostrophe. Choose Preserve original cells only for a trusted import workflow.",
      "experience": {
        "automatic": true,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Left CSV export",
        "placeholder": "id,amount\nA,0.1\nB,3.0",
        "help": "Paste CSV data with unique column headers. Quoted multiline cells are supported. Results update as you type. Up to 1,000,000 characters.",
        "action": null
      },
      "mode": "automatic",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# CSV reconciliation report\n\n- Human page: https://happytails.ai/en/data-tools/csv-reconciliation-report/\n- Markdown: https://happytails.ai/en/data-tools/csv-reconciliation-report.md\n- Structured JSON: https://happytails.ai/agents/en/data-tools/csv-reconciliation-report/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `csv-reconciliation-report` |\n| Category | data-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Automatic updates after valid input or file selection. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nRuns locally on your device. CSV requires unique nonempty headers. Up to 1,000,000 characters, 10,000 data records and 100,000 cells across inputs, with 100 columns. Quoted multiline cells are supported. Each JSON settings field is limited to 100,000 characters. Output files are bounded to 4,000,000 characters. Diagnostic reports contain at most 500 findings and disclose the omitted count. Match exports by business key, list missing and changed records, and total each side, unmatched amounts and matched differences. Differences are right minus left. Exact base-10 arithmetic avoids binary rounding. No currency conversion or financial certification is implied. Protect spreadsheet cells prefixes formula-like values, including negative numbers, with an apostrophe. Choose Preserve original cells only for a trusted import workflow.\n\n### Inputs and settings\n\nText input: Left CSV export.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\nid,amount\nA,0.1\nB,3.0\n```\n\nPaste CSV data with unique column headers. Quoted multiline cells are supported. Results update as you type. Up to 1,000,000 characters.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `separator` | Input CSV separator | select | \",\" | Allowed: ,, ;, \t |\n| `comparison` | Comparison CSV | textarea | \"id,amount\\nA,10.00\\nB,3.50\\n\" |  |\n| `keys` | Business key columns (JSON) | textarea | \"[\\\"id\\\"]\" |  |\n| `amounts` | Amount columns (JSON) | textarea | \"[\\\"amount\\\"]\" |  |\n| `outputSafety` | CSV output cells | select | \"Protect spreadsheet cells\" | Allowed: Protect spreadsheet cells, Preserve original cells |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nAmounts use exact decimal arithmetic and differences are right minus left. Missing amounts and duplicate keys block reconciliation. Totals do not perform currency conversion, accounting classification or financial certification. Up to 1,000,000 characters, 10,000 data records, 100 columns and 100,000 cells across the sources. Files for multi-source tools are limited to 4,000,000 bytes total. Reports retain at most 500 diagnostic findings and state any omitted count. CSV and JSON outputs are limited to 4,000,000 characters. Output is budgeted incrementally before retaining each row; expanded decimal output counts toward the same 4,000,000-character limit even when input uses short exponent notation.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"csv-reconciliation-report\",\n  \"category\": \"data-tools\",\n  \"built\": true,\n  \"requirements\": \"Amounts use exact decimal arithmetic and differences are right minus left. Missing amounts and duplicate keys block reconciliation. Totals do not perform currency conversion, accounting classification or financial certification. Up to 1,000,000 characters, 10,000 data records, 100 columns and 100,000 cells across the sources. Files for multi-source tools are limited to 4,000,000 bytes total. Reports retain at most 500 diagnostic findings and state any omitted count. CSV and JSON outputs are limited to 4,000,000 characters. Output is budgeted incrementally before retaining each row; expanded decimal output counts toward the same 4,000,000-character limit even when input uses short exponent notation.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"separator\",\n        \"label\": \"Input CSV separator\",\n        \"value\": \",\",\n        \"type\": \"select\",\n        \"values\": [\n          \",\",\n          \";\",\n          \"\\t\"\n        ]\n      },\n      {\n        \"key\": \"comparison\",\n        \"label\": \"Comparison CSV\",\n        \"value\": \"id,amount\\nA,10.00\\nB,3.50\\n\",\n        \"type\": \"textarea\",\n        \"help\": \"Paste the second table, including its header row. Both tables use the selected separator.\"\n      },\n      {\n        \"key\": \"keys\",\n        \"label\": \"Business key columns (JSON)\",\n        \"value\": \"[\\\"id\\\"]\",\n        \"type\": \"textarea\",\n        \"help\": \"Keys must be nonempty and unique in each input.\"\n      },\n      {\n        \"key\": \"amounts\",\n        \"label\": \"Amount columns (JSON)\",\n        \"value\": \"[\\\"amount\\\"]\",\n        \"type\": \"textarea\",\n        \"help\": \"Select up to 20 decimal amount columns. Empty, currency-formatted and nonnumeric amounts are rejected.\"\n      },\n      {\n        \"key\": \"outputSafety\",\n        \"label\": \"CSV output cells\",\n        \"value\": \"Protect spreadsheet cells\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Protect spreadsheet cells\",\n          \"Preserve original cells\"\n        ]\n      }\n    ],\n    \"live\": true,\n    \"presentation\": \"metrics\",\n    \"note\": \"Runs locally on your device. CSV requires unique nonempty headers. Up to 1,000,000 characters, 10,000 data records and 100,000 cells across inputs, with 100 columns. Quoted multiline cells are supported. Each JSON settings field is limited to 100,000 characters. Output files are bounded to 4,000,000 characters. Diagnostic reports contain at most 500 findings and disclose the omitted count. Match exports by business key, list missing and changed records, and total each side, unmatched amounts and matched differences. Differences are right minus left. Exact base-10 arithmetic avoids binary rounding. No currency conversion or financial certification is implied. Protect spreadsheet cells prefixes formula-like values, including negative numbers, with an apostrophe. Choose Preserve original cells only for a trusted import workflow.\",\n    \"experience\": {\n      \"automatic\": true,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Left CSV export\",\n      \"placeholder\": \"id,amount\\nA,0.1\\nB,3.0\",\n      \"help\": \"Paste CSV data with unique column headers. Quoted multiline cells are supported. Results update as you type. Up to 1,000,000 characters.\",\n      \"action\": null\n    },\n    \"mode\": \"automatic\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nMatch two exports by business key and quantify missing records and amount differences.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use CSV reconciliation report\n\n1. Paste the two CSV exports.\n2. Choose unique business key columns and numeric amount columns.\n3. Download the row-by-row reconciliation and exact totals.\n\n## Useful next steps\n\n- [SQL result comparator](https://happytails.ai/en/data-tools/sql-result-comparator/) ([Markdown](https://happytails.ai/en/data-tools/sql-result-comparator.md))\n\n- [CSV fuzzy match](https://happytails.ai/en/data-tools/csv-fuzzy-match/) ([Markdown](https://happytails.ai/en/data-tools/csv-fuzzy-match.md))\n\n## Prepare the source\n\nPaste the two CSV exports.\n\n### Choose the matching rules\n\nChoose unique business key columns and numeric amount columns.\n\n### Review and keep the result\n\nDownload the row-by-row reconciliation and exact totals. Amounts use exact decimal arithmetic and differences are right minus left. Missing amounts and duplicate keys block reconciliation. Totals do not perform currency conversion, accounting classification or financial certification.\n"
}