happytails.ai

CSV fuzzy match

Open CSV fuzzy match on Happytails.ai. This view has the same page content and links, with explicit tool capabilities. Read the processing notes before using a tool.

Tool capabilities

{
  "id": "csv-fuzzy-match",
  "category": "data-tools",
  "built": true,
  "requirements": "Uses Unicode code-point Levenshtein distance. Similarity is 100 times one minus distance divided by the longer normalized length. Suggestions never automatically merge records; a right-side record may match several source records. 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. Fuzzy matching additionally limits selected cells to 256 code points, comparisons to 25,000 pairs and estimated edit-distance work to 5,000,000 cells. 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": "leftField",
        "label": "Left match column",
        "value": "name",
        "type": "text"
      },
      {
        "key": "rightField",
        "label": "Right match column",
        "value": "name",
        "type": "text"
      },
      {
        "key": "normalization",
        "label": "Text comparison",
        "value": "Trim and lowercase",
        "type": "select",
        "values": [
          "Exact characters",
          "Trim and lowercase",
          "NFKC, trim and lowercase"
        ]
      },
      {
        "key": "minimum",
        "label": "Minimum similarity (%)",
        "value": 80,
        "type": "number",
        "min": 0,
        "max": 100
      },
      {
        "key": "maximum",
        "label": "Suggestions per left record",
        "value": 3,
        "type": "number",
        "min": 1,
        "max": 10,
        "step": 1
      },
      {
        "key": "outputSafety",
        "label": "CSV output cells",
        "value": "Protect spreadsheet cells",
        "type": "select",
        "values": [
          "Protect spreadsheet cells",
          "Preserve original cells"
        ]
      }
    ],
    "live": false,
    "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. Suggest near matches using Unicode code-point Levenshtein distance. Up to 25,000 candidate pairs, 256 code points per selected cell and 5,000,000 estimated edit-distance cells. Empty fields are skipped. Suggestions require human review and never merge records. Ties keep right-source order. Runs in cancellable chunks. 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": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Left CSV",
      "placeholder": "name\nkitten",
      "help": "Paste CSV data with unique column headers. Quoted multiline cells are supported. Up to 1,000,000 characters. Review the settings before running.",
      "helpParts": [
        "Paste CSV data with unique column headers. Quoted multiline cells are supported.",
        "Up to 1,000,000 characters.",
        "Review the settings before running."
      ],
      "action": null
    },
    "mode": "explicit",
    "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"
  }
}

Page guide

Find near-matching text records in two CSV files and review scored suggestions.

How to use CSV fuzzy match
  1. Paste both CSV tables and select their text match columns.
  2. Choose normalization, minimum similarity and suggestions per source row.
  3. Review the suggested pairs before making any changes to the source data.

Useful next steps

Prepare the source

Paste both CSV tables and select their text match columns.

Choose the matching rules

Choose normalization, minimum similarity and suggestions per source row.

Review and keep the result

Review the suggested pairs before making any changes to the source data. Uses Unicode code-point Levenshtein distance. Similarity is 100 times one minus distance divided by the longer normalized length. Suggestions never automatically merge records; a right-side record may match several source records.