{
    "extractor": "rules",
    "createdAt": "2026-10-13T20:53:18.979Z",
    "cases": 30,
    "errors": 0,
    "overall": 0.9906542056074766,
    "fields": {
        "supplierName": {
            "correct": 30,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 1
        },
        "vatId": {
            "correct": 30,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 1
        },
        "customerName": {
            "correct": 27,
            "wrong": 0,
            "missing": 3,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9
        },
        "invoiceNumber": {
            "correct": 30,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 1
        },
        "issueDate": {
            "correct": 30,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 1
        },
        "dueDate": {
            "correct": 30,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 1
        },
        "currency": {
            "correct": 30,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 1
        },
        "subtotalCents": {
            "correct": 30,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 1
        },
        "discountCents": {
            "correct": 29,
            "wrong": 0,
            "missing": 1,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9666666666666667
        },
        "shippingCents": {
            "correct": 29,
            "wrong": 0,
            "missing": 1,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9666666666666667
        },
        "taxRatePercent": {
            "correct": 29,
            "wrong": 0,
            "missing": 1,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9666666666666667
        },
        "taxCents": {
            "correct": 30,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 1
        },
        "totalCents": {
            "correct": 29,
            "wrong": 1,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9666666666666667
        },
        "line.description": {
            "correct": 162,
            "wrong": 6,
            "missing": 0,
            "spurious": 0,
            "total": 168,
            "accuracy": 0.9642857142857143
        },
        "line.quantity": {
            "correct": 168,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 168,
            "accuracy": 1
        },
        "line.unitPrice": {
            "correct": 168,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 168,
            "accuracy": 1
        },
        "line.amount": {
            "correct": 168,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 168,
            "accuracy": 1
        }
    },
    "byLayout": {
        "banner": {
            "cases": 3,
            "overall": 1.0
        },
        "cards": {
            "cases": 3,
            "overall": 1.0
        },
        "compact": {
            "cases": 3,
            "overall": 0.9868421052631579
        },
        "letter": {
            "cases": 3,
            "overall": 1.0
        },
        "letterhead": {
            "cases": 3,
            "overall": 1.0
        },
        "multipage": {
            "cases": 3,
            "overall": 1.0
        },
        "qtyfirst": {
            "cases": 3,
            "overall": 1.0
        },
        "receipt": {
            "cases": 3,
            "overall": 0.983957219251337
        },
        "sidebar": {
            "cases": 3,
            "overall": 0.9653179190751445
        },
        "taxsummary": {
            "cases": 3,
            "overall": 0.9539473684210527
        }
    },
    "findings": {
        "planted": 32,
        "reported": 35,
        "found": 31,
        "missed": 1,
        "falseAlarms": 4,
        "recall": 0.96875,
        "precision": 0.8857142857142857
    },
    "failures": [
        {
            "case": "invoice-003",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Coffee service",
            "actual": "Oakfield Primary Academy Coffee service"
        },
        {
            "case": "invoice-003",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Table linen hire",
            "actual": "School Lane Table linen hire York YO10 3FT"
        },
        {
            "case": "invoice-004",
            "field": "customerName",
            "outcome": "missing",
            "expected": "Kestrel Analytics Inc.",
            "actual": null
        },
        {
            "case": "invoice-013",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Implementation services, hour",
            "actual": "Kestrel Analytics Inc. Implementation services, hour"
        },
        {
            "case": "invoice-013",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Premium support plan",
            "actual": "950 Market Street Premium support plan San Francisco, CA 94102"
        },
        {
            "case": "invoice-014",
            "field": "customerName",
            "outcome": "missing",
            "expected": "Margalla Retail Group",
            "actual": null
        },
        {
            "case": "invoice-015",
            "field": "shippingCents",
            "outcome": "missing",
            "expected": 1597,
            "actual": null
        },
        {
            "case": "invoice-015",
            "field": "totalCents",
            "outcome": "wrong",
            "expected": 2033105,
            "actual": 2026508
        },
        {
            "case": "invoice-023",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Sample swatch set",
            "actual": "Lotus Home Retail Pvt Ltd Sample swatch set"
        },
        {
            "case": "invoice-023",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Embroidery work, per piece",
            "actual": "Okhla Phase II Embroidery work, per piece New Delhi 110020"
        },
        {
            "case": "invoice-024",
            "field": "customerName",
            "outcome": "missing",
            "expected": "Hotel Sol y Mar S.A.",
            "actual": null
        },
        {
            "case": "invoice-025",
            "field": "discountCents",
            "outcome": "missing",
            "expected": 4191,
            "actual": null
        },
        {
            "case": "invoice-028",
            "field": "taxRatePercent",
            "outcome": "missing",
            "expected": 20,
            "actual": null
        }
    ]
}