Unified Memory

Benchmarks / Which Small AI Model Should You Run on a Mac? We Ran 312 Tests / Summarize + extract

summarize-extract-001

easy extractionreceipt

The prompt

user

Extract information from the receipt below. Reply with only a JSON object with exactly these keys:
- "merchant" (string): the business name
- "date" (string "YYYY-MM-DD"): purchase date
- "time" (string "HH:MM" (24-hour)): purchase time
- "total" (number): the total charged
- "card_last4" (string): last four digits of the card used, as a string

Rules: include every key listed. Use null for any field that is not stated in the text (do not guess). Dates are YYYY-MM-DD. Times are HH:MM in 24-hour format. Amounts and counts are plain JSON numbers (no currency symbols, no commas). Phone numbers are in international format with + and the country code, for example +1 312 555 0100; leave out any national trunk prefix 0, so (0)20 or 020 becomes 20 after +44.

Receipt:
"""
THE COPPER KETTLE CAFE
418 Alder Street, Portland OR 97205
(503) 555-0139

Order #2291        Server: Maya
03/14/2026   08:42 AM

1  Lg Oat Latte          5.75
1  Blueberry Scone       3.50
1  Drip Coffee Refill    1.00

Subtotal                10.25
Tax                      0.00
TOTAL                   10.25

VISA ************4417
Approved  Auth 08812C

Thank you! Come back soon :)
"""
What we expected
{
  "kind": "extract",
  "answer": {
    "merchant": "The Copper Kettle Cafe",
    "date": "2026-03-14",
    "time": "08:42",
    "total": 10.25,
    "card_last4": "4417"
  },
  "fields": {
    "merchant": {
      "type": "string",
      "accept": [
        "Copper Kettle Cafe"
      ]
    },
    "date": {
      "type": "date"
    },
    "time": {
      "type": "time"
    },
    "total": {
      "type": "number"
    },
    "card_last4": {
      "type": "last4"
    }
  }
}

What each model answered

MiMo-V2.6 Distill 9B

✓ pass · score 100 · 2.56 s

{"merchant": "THE COPPER KETTLE CAFE", "date": "2026-03-14", "time": "08:42", "total": 10.25, "card_last4": "4417"}
Scoring detail
{
  "fields": {
    "merchant": {
      "score": 1,
      "expected": "The Copper Kettle Cafe",
      "got": "THE COPPER KETTLE CAFE"
    },
    "date": {
      "score": 1,
      "expected": "2026-03-14",
      "got": "2026-03-14"
    },
    "time": {
      "score": 1,
      "expected": "08:42",
      "got": "08:42"
    },
    "total": {
      "score": 1,
      "expected": 10.25,
      "got": 10.25
    },
    "card_last4": {
      "score": 1,
      "expected": "4417",
      "got": "4417"
    }
  },
  "fields_correct": 5,
  "fields_total": 5
}

Ornith-1.5 9B

✓ pass · score 100 · 2.47 s

{
  "merchant": "THE COPPER KETTLE CAFE",
  "date": "2026-03-14",
  "time": "08:42",
  "total": 10.25,
  "card_last4": "4417"
}
Scoring detail
{
  "fields": {
    "merchant": {
      "score": 1,
      "expected": "The Copper Kettle Cafe",
      "got": "THE COPPER KETTLE CAFE"
    },
    "date": {
      "score": 1,
      "expected": "2026-03-14",
      "got": "2026-03-14"
    },
    "time": {
      "score": 1,
      "expected": "08:42",
      "got": "08:42"
    },
    "total": {
      "score": 1,
      "expected": 10.25,
      "got": 10.25
    },
    "card_last4": {
      "score": 1,
      "expected": "4417",
      "got": "4417"
    }
  },
  "fields_correct": 5,
  "fields_total": 5
}

Granite 4.2 8B

✓ pass · score 100 · 2.35 s

{
  "merchant": "THE COPPER KETTLE CAFE",
  "date": "2026-03-14",
  "time": "08:42",
  "total": 10.25,
  "card_last4": "4417"
}
Scoring detail
{
  "fields": {
    "merchant": {
      "score": 1,
      "expected": "The Copper Kettle Cafe",
      "got": "THE COPPER KETTLE CAFE"
    },
    "date": {
      "score": 1,
      "expected": "2026-03-14",
      "got": "2026-03-14"
    },
    "time": {
      "score": 1,
      "expected": "08:42",
      "got": "08:42"
    },
    "total": {
      "score": 1,
      "expected": 10.25,
      "got": 10.25
    },
    "card_last4": {
      "score": 1,
      "expected": "4417",
      "got": "4417"
    }
  },
  "fields_correct": 5,
  "fields_total": 5
}

Spark-X2.5 4B

✓ pass · score 100 · 1.69 s

{
  "merchant": "THE COPPER KETTLE CAFE",
  "date": "2026-03-14",
  "time": "08:42",
  "total": 10.25,
  "card_last4": "4417"
}
Scoring detail
{
  "fields": {
    "merchant": {
      "score": 1,
      "expected": "The Copper Kettle Cafe",
      "got": "THE COPPER KETTLE CAFE"
    },
    "date": {
      "score": 1,
      "expected": "2026-03-14",
      "got": "2026-03-14"
    },
    "time": {
      "score": 1,
      "expected": "08:42",
      "got": "08:42"
    },
    "total": {
      "score": 1,
      "expected": 10.25,
      "got": 10.25
    },
    "card_last4": {
      "score": 1,
      "expected": "4417",
      "got": "4417"
    }
  },
  "fields_correct": 5,
  "fields_total": 5
}

Mellum2.1 12B-A2.5B

✓ pass · score 100 · 1.03 s

{
  "merchant": "THE COPPER KETTLE CAFE",
  "date": "2026-03-14",
  "time": "08:42",
  "total": 10.25,
  "card_last4": "4417"
}
Scoring detail
{
  "fields": {
    "merchant": {
      "score": 1,
      "expected": "The Copper Kettle Cafe",
      "got": "THE COPPER KETTLE CAFE"
    },
    "date": {
      "score": 1,
      "expected": "2026-03-14",
      "got": "2026-03-14"
    },
    "time": {
      "score": 1,
      "expected": "08:42",
      "got": "08:42"
    },
    "total": {
      "score": 1,
      "expected": 10.25,
      "got": 10.25
    },
    "card_last4": {
      "score": 1,
      "expected": "4417",
      "got": "4417"
    }
  },
  "fields_correct": 5,
  "fields_total": 5
}

Ling-3.0-tiny (7.9B-A1.3B)

✓ pass · score 100 · 0.69 s

{"merchant": "THE COPPER KETTLE CAFE", "date": "2026-03-14", "time": "08:42", "total": 10.25, "card_last4": "4417"}
Scoring detail
{
  "fields": {
    "merchant": {
      "score": 1,
      "expected": "The Copper Kettle Cafe",
      "got": "THE COPPER KETTLE CAFE"
    },
    "date": {
      "score": 1,
      "expected": "2026-03-14",
      "got": "2026-03-14"
    },
    "time": {
      "score": 1,
      "expected": "08:42",
      "got": "08:42"
    },
    "total": {
      "score": 1,
      "expected": 10.25,
      "got": 10.25
    },
    "card_last4": {
      "score": 1,
      "expected": "4417",
      "got": "4417"
    }
  },
  "fields_correct": 5,
  "fields_total": 5
}

MiniCPM5 2B

✓ pass · score 100 · 0.87 s

{"merchant": "THE COPPER KETTLE CAFE", "date": "2026-03-14", "time": "08:42", "total": 10.25, "card_last4": "4417"}
Scoring detail
{
  "fields": {
    "merchant": {
      "score": 1,
      "expected": "The Copper Kettle Cafe",
      "got": "THE COPPER KETTLE CAFE"
    },
    "date": {
      "score": 1,
      "expected": "2026-03-14",
      "got": "2026-03-14"
    },
    "time": {
      "score": 1,
      "expected": "08:42",
      "got": "08:42"
    },
    "total": {
      "score": 1,
      "expected": 10.25,
      "got": 10.25
    },
    "card_last4": {
      "score": 1,
      "expected": "4417",
      "got": "4417"
    }
  },
  "fields_correct": 5,
  "fields_total": 5
}

K2-Horizon 0.9B

✓ pass · score 100 · 1.14 s

{
  "merchant": "THE COPPER KETTLE CAFE",
  "date": "2026-03-14",
  "time": "08:42",
  "total": 10.25,
  "card_last4": "4417"
}
Scoring detail
{
  "fields": {
    "merchant": {
      "score": 1,
      "expected": "The Copper Kettle Cafe",
      "got": "THE COPPER KETTLE CAFE"
    },
    "date": {
      "score": 1,
      "expected": "2026-03-14",
      "got": "2026-03-14"
    },
    "time": {
      "score": 1,
      "expected": "08:42",
      "got": "08:42"
    },
    "total": {
      "score": 1,
      "expected": 10.25,
      "got": 10.25
    },
    "card_last4": {
      "score": 1,
      "expected": "4417",
      "got": "4417"
    }
  },
  "fields_correct": 5,
  "fields_total": 5
}

All Summarize + extract itemssummarize-extract-002 →