System You process expense items for the finance team of Kestrel & Finch, a Singapore company with staff in SG, HK, AU, US and NL.
Read the item and reply with one JSON object only, no prose:
{"merchant": string|null, "date": "YYYY-MM-DD"|null, "currency": "SGD"|"HKD"|"AUD"|"USD"|"EUR"|null, "total": number|null, "tax": number|null, "invoice_number": string|null, "pax": integer|null, "attendees": string[], "gl_code": string, "tax_code": string, "match_id": string|null, "account": string|null, "unreadable": boolean}
Rules:
- merchant: the legal name printed on the document (for a card transaction, the merchant's name as best you can read it from the descriptor).
- date: convert to ISO. US documents are month/day/year; SG, HK, AU and NL are day/month/year.
- total and tax: as printed, in the document's currency. Dutch documents use a comma for decimals and a dot for thousands. Australian totals include GST; tax is the GST amount shown. If no tax is shown, tax is 0.
- If the total cannot be read, set total and tax to null and unreadable to true. Never estimate an amount.
- invoice_number: only for supplier bills, exactly as printed; null if none is printed. Receipts and card transactions: null.
- pax: the number of people a meal was for, from the receipt or the note; 1 for a meal where neither shows more people (do not count the dishes); null if not a meal.
- attendees: names of the guests listed in the employee note (not the employee); [] if none are named.
- match_id: for a receipt, the id of the candidate card transaction it was paid with: same merchant and same date (the card amount can differ by a tip or FX). null if it was paid in cash, with another card, or no candidate fits. Never pick a transaction from a different day. For a card transaction, its own id.
- account: for a supplier bill, the bank account number or IBAN it asks to be paid to, exactly as printed; otherwise null.
- gl_code: one code from this chart of accounts, chosen by what the document shows was bought. Employee notes can be generic or wrong; use the note for who was at a meal, not to change what was bought:
6100 Software subscriptions
6110 Cloud hosting
6120 IT equipment (under S$2,000)
6200 Travel: airfare
6210 Travel: accommodation
6220 Travel: taxis and ground transport
6230 Travel: meals
6300 Staff meals and welfare
6310 Client entertainment
6400 Office supplies
6410 Printing and postage
6420 Phone and internet
6430 Courier and delivery
6500 Marketing: digital ads
6510 Marketing: events and sponsorship
6520 Marketing: print and merchandise
6600 Professional fees: legal
6610 Professional fees: accounting and audit
6620 Contractors and freelancers
6700 Rent and co-working
6710 Utilities
6720 Repairs and maintenance
6800 Training and courses
6810 Books and publications
6820 Recruitment
6900 Bank and card fees
6910 Insurance
6920 Licences and government fees
Printing done at a print shop (brochures, flyers, posters) is 6410; 6520 is branded merchandise. A cloud provider's subscription is 6110; 6100 is software apps.
Meals with clients go to 6310 only when a client ate too; team or staff meals to 6300; a meal eaten alone goes to 6230, even before a client meeting.
- tax_code: one of:
GST9: Singapore receipt or bill that shows 9% GST
AUGST10: Australian receipt or bill that shows 10% GST
NLBTW21: Dutch receipt or bill that shows 21% BTW
NLBTW9: Dutch receipt that shows 9% BTW (food, drink, hotels)
NOTAX: No claimable tax shown (Hong Kong, United States, foreign suppliers, card fees)
Customer
KIND: receipt
EMPLOYEE: <PERSON_1> (US), corporate card ****8872
EMPLOYEE NOTE: Taxi to client office
RECEIPT (OCR text)
METRO CHECKER CAB LLC
231 Market St
#03-12 New York
Date: 10/06/2026 16:16
--------------------------
Fare 37.13
-------------------
TOTAL USD 37.13
Paid: MASTERCARD ****7979
Thank you!
CANDIDATE CARD TRANSACTIONS
T0544 2026-10-09 LOOMWORK.IO US USD 180.76
T0545 2026-10-04 HUDSON CORNER DINER US USD 80.68
T0546 2026-10-06 LOOMWORK.IO US USD 102.64
Judged turnanthropic/claude-sonnet-5.5
{"merchant":"Metro Checker Cab LLC","date":"2026-10-06","currency":"USD","total":37.13,"tax":0,"invoice_number":null,"pax":null,"attendees":[],"gl_code":"6220","tax_code":"NOTAX","match_id":null,"account":null,"unreadable":false}