Merchant normalization & matching

Normalize transaction merchant names using identifying evidence.

Step 01

Define and Align

Upload sample data, define your output schema, and provide feedback on the hardest cases.

Output schema
MerchantText · optional

The underlying seller’s normalized name, excluding payment processors.

Same merchantYes / No / Unknown

Whether the compared records identify the same business.

  • true
  • false
  • null
Match basisChoose one

Evidence used to normalize or compare the merchants.

  • business_id
  • receipt_evidence
  • name_only
  • conflicting_identifiers
app.sutro.sh/functions/merchant-normalization-matching
Collecting feedback · 1/3
Normalize transaction merchant names using identifying evidence.
Example 1 of 3

Processor versus merchant

Model input

Statement: PAYPROC*CEDARCOFFEE. Receipt identifies Cedar Coffee as seller.

Model output
Merchant
Same merchant
Match basis

Step 02

Model Sweep

Compare quality and cost on your examples, then choose a model or use Sutro’s default.

Compare models on expert agreement and cost. The interactive chart uses illustrative measurements.

Illustrative sweep · select Value or Best to use that model in your function.

Step 03

Deployment

Call Sutro Functions like any other software. Swap the model as soon as something more performant is released.

Selected modelWaiting for sweep results.

Real-time

import sutro as so

input_data = {
    "text": "Statement: PAYPROC*CEDARCOFFEE. Receipt identifies Cedar Coffee as seller."
}

result = so.run_function(
    "merchant-normalization-matching",
    input_data,
)

Batch

import sutro as so

job_id = so.batch_run_function(
    name="merchant-normalization-matching",
    data="merchant_normalization_matching.csv",
)
results = so.await_job_completion(job_id)

Ready to get started?

Book time with the team

Join the self-serve waitlist

What are your bottlenecks? (Select any that apply)