{
    "extractor": "rules",
    "createdAt": "2026-10-12T12:45:38.849Z",
    "cases": 30,
    "errors": 0,
    "overall": 0.9813084112149533,
    "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": 29,
            "wrong": 1,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9666666666666667
        },
        "invoiceNumber": {
            "correct": 30,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 1
        },
        "issueDate": {
            "correct": 29,
            "wrong": 0,
            "missing": 1,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9666666666666667
        },
        "dueDate": {
            "correct": 29,
            "wrong": 0,
            "missing": 1,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9666666666666667
        },
        "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": 30,
            "wrong": 0,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 1
        },
        "shippingCents": {
            "correct": 27,
            "wrong": 0,
            "missing": 0,
            "spurious": 3,
            "total": 30,
            "accuracy": 0.9
        },
        "taxRatePercent": {
            "correct": 29,
            "wrong": 0,
            "missing": 1,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9666666666666667
        },
        "taxCents": {
            "correct": 29,
            "wrong": 0,
            "missing": 1,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9666666666666667
        },
        "totalCents": {
            "correct": 29,
            "wrong": 1,
            "missing": 0,
            "spurious": 0,
            "total": 30,
            "accuracy": 0.9666666666666667
        },
        "line.description": {
            "correct": 151,
            "wrong": 17,
            "missing": 0,
            "spurious": 0,
            "total": 168,
            "accuracy": 0.8988095238095238
        },
        "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": 0.9742268041237113
        },
        "compact": {
            "cases": 3,
            "overall": 0.9539473684210527
        },
        "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": 1.0
        },
        "sidebar": {
            "cases": 3,
            "overall": 0.9653179190751445
        },
        "taxsummary": {
            "cases": 3,
            "overall": 0.881578947368421
        }
    },
    "findings": {
        "planted": 32,
        "reported": 37,
        "found": 31,
        "missed": 1,
        "falseAlarms": 6,
        "recall": 0.96875,
        "precision": 0.8378378378378378
    },
    "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"
        },
        {
            "case": "invoice-005",
            "field": "shippingCents",
            "outcome": "spurious",
            "expected": 0,
            "actual": 147699
        },
        {
            "case": "invoice-005",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Jahresabschluss",
            "actual": "A011 Jahresabschluss"
        },
        {
            "case": "invoice-005",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Steuerberatung, Stunde",
            "actual": "A018 Steuerberatung, Stunde"
        },
        {
            "case": "invoice-005",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Buchführung, Monatspauschale",
            "actual": "A025 Buchführung, Monatspauschale"
        },
        {
            "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"
        },
        {
            "case": "invoice-015",
            "field": "totalCents",
            "outcome": "wrong",
            "expected": 2033105,
            "actual": 2026508
        },
        {
            "case": "invoice-015",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Suivi de chantier, visite",
            "actual": "A011 Suivi de chantier, visite"
        },
        {
            "case": "invoice-015",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Étude de faisabilité",
            "actual": "A018 Étude de faisabilité"
        },
        {
            "case": "invoice-015",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Plans d'exécution, heure",
            "actual": "A025 Plans d'exécution, heure"
        },
        {
            "case": "invoice-015",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Dossier de permis de construire",
            "actual": "A032 Dossier de permis de construire"
        },
        {
            "case": "invoice-015",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Déplacement",
            "actual": "A039 Déplacement"
        },
        {
            "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"
        },
        {
            "case": "invoice-025",
            "field": "shippingCents",
            "outcome": "spurious",
            "expected": 0,
            "actual": 7963
        },
        {
            "case": "invoice-025",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Dental floss, carton",
            "actual": "A011 Dental floss, carton"
        },
        {
            "case": "invoice-025",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Freight",
            "actual": "A018 Freight"
        },
        {
            "case": "invoice-025",
            "field": "line.description",
            "outcome": "wrong",
            "expected": "Sterilisation pouches, box",
            "actual": "A025 Sterilisation pouches, box"
        },
        {
            "case": "invoice-028",
            "field": "shippingCents",
            "outcome": "spurious",
            "expected": 0,
            "actual": 26148
        },
        {
            "case": "invoice-028",
            "field": "taxRatePercent",
            "outcome": "missing",
            "expected": 20,
            "actual": null
        },
        {
            "case": "invoice-028",
            "field": "taxCents",
            "outcome": "missing",
            "expected": 26148,
            "actual": null
        },
        {
            "case": "invoice-029",
            "field": "customerName",
            "outcome": "wrong",
            "expected": "Prairie Wind Co-op",
            "actual": "April 7, 2026"
        },
        {
            "case": "invoice-029",
            "field": "issueDate",
            "outcome": "missing",
            "expected": "2026-04-07",
            "actual": null
        },
        {
            "case": "invoice-029",
            "field": "dueDate",
            "outcome": "missing",
            "expected": "2026-05-07",
            "actual": null
        }
    ]
}