{
 "engine": "reconciliation-engine",
 "seed": 42,
 "horizon_day": 200,
 "params": {
  "seed": 42,
  "uninvoiced_rate": 0.05,
  "typo_rate": 0.06,
  "shortpay_rate": 0.08,
  "tolerance_pct": 0.5
 },
 "book": {
  "customers": 60,
  "orders": 1200,
  "deliveries": 1171,
  "invoices": 1149,
  "payments": 888,
  "billed": 46026597
 },
 "invoice_match": {
  "T1_exact": 1051,
  "T2_amount_window": 61,
  "unmatched": 1
 },
 "payment_match": {
  "P1_reference": 797,
  "P2_amount": 72,
  "partial": 19,
  "unmatched": 0
 },
 "exceptions_total": 337,
 "by_cause": [
  {
   "cause": "UNINVOICED_DELIVERY",
   "count": 59,
   "value": 2757558
  },
  {
   "cause": "DUPLICATE_INVOICE",
   "count": 36,
   "value": 1856473
  },
  {
   "cause": "SHORT_PAY",
   "count": 78,
   "value": 342402
  },
  {
   "cause": "INVOICE_WITHOUT_DELIVERY",
   "count": 1,
   "value": 12646
  },
  {
   "cause": "UNMATCHED_PAYMENT",
   "count": 0,
   "value": 0
  },
  {
   "cause": "OVERDUE_OPEN",
   "count": 163,
   "value": 6989515
  }
 ],
 "ageing_found": [
  {
   "band": "0\u201330",
   "count": 23,
   "value": 492035
  },
  {
   "band": "31\u201360",
   "count": 22,
   "value": 1044729
  },
  {
   "band": "61\u201390",
   "count": 43,
   "value": 921562
  },
  {
   "band": "90+",
   "count": 85,
   "value": 2498107
  }
 ],
 "top_customers": [
  {
   "cust": "C054",
   "count": 5,
   "value": 849794,
   "causes": {
    "DUPLICATE_INVOICE": 3,
    "UNINVOICED_DELIVERY": 2
   }
  },
  {
   "cust": "C020",
   "count": 6,
   "value": 277130,
   "causes": {
    "DUPLICATE_INVOICE": 2,
    "UNINVOICED_DELIVERY": 2,
    "SHORT_PAY": 2
   }
  },
  {
   "cust": "C041",
   "count": 6,
   "value": 246062,
   "causes": {
    "DUPLICATE_INVOICE": 2,
    "UNINVOICED_DELIVERY": 2,
    "SHORT_PAY": 2
   }
  },
  {
   "cust": "C028",
   "count": 5,
   "value": 244285,
   "causes": {
    "UNINVOICED_DELIVERY": 4,
    "SHORT_PAY": 1
   }
  },
  {
   "cust": "C007",
   "count": 2,
   "value": 220727,
   "causes": {
    "UNINVOICED_DELIVERY": 2
   }
  },
  {
   "cust": "C053",
   "count": 7,
   "value": 199639,
   "causes": {
    "UNINVOICED_DELIVERY": 5,
    "SHORT_PAY": 2
   }
  },
  {
   "cust": "C039",
   "count": 3,
   "value": 176767,
   "causes": {
    "DUPLICATE_INVOICE": 2,
    "UNINVOICED_DELIVERY": 1
   }
  },
  {
   "cust": "C048",
   "count": 6,
   "value": 156527,
   "causes": {
    "DUPLICATE_INVOICE": 1,
    "UNINVOICED_DELIVERY": 3,
    "SHORT_PAY": 2
   }
  }
 ],
 "money_found": 4956433,
 "money_found_pct_of_billed": 10.77,
 "exposure_overdue": 6989515,
 "sample_exceptions": [
  {
   "cause": "UNINVOICED_DELIVERY",
   "id": "PO-0023",
   "cust": 53,
   "value": 400000,
   "age": 52,
   "note": "delivered day 148, never billed"
  },
  {
   "cause": "DUPLICATE_INVOICE",
   "id": "INV-0686",
   "cust": 53,
   "value": 256966,
   "age": 71,
   "note": "same delivery as INV-0685"
  },
  {
   "cause": "OVERDUE_OPEN",
   "id": "INV-0675",
   "cust": 59,
   "value": 204341,
   "age": 110,
   "note": "110 days past due"
  },
  {
   "cause": "UNINVOICED_DELIVERY",
   "id": "PO-0597",
   "cust": 6,
   "value": 203650,
   "age": 54,
   "note": "delivered day 146, never billed"
  },
  {
   "cause": "OVERDUE_OPEN",
   "id": "INV-0752",
   "cust": 13,
   "value": 190654,
   "age": 91,
   "note": "91 days past due"
  },
  {
   "cause": "OVERDUE_OPEN",
   "id": "INV-0123",
   "cust": 19,
   "value": 178772,
   "age": 64,
   "note": "64 days past due"
  },
  {
   "cause": "OVERDUE_OPEN",
   "id": "INV-0644",
   "cust": 24,
   "value": 173997,
   "age": 2,
   "note": "2 days past due"
  },
  {
   "cause": "OVERDUE_OPEN",
   "id": "INV-0184",
   "cust": 28,
   "value": 162855,
   "age": 155,
   "note": "155 days past due"
  },
  {
   "cause": "OVERDUE_OPEN",
   "id": "INV-0936",
   "cust": 26,
   "value": 157798,
   "age": 79,
   "note": "79 days past due"
  },
  {
   "cause": "OVERDUE_OPEN",
   "id": "INV-0808",
   "cust": 13,
   "value": 152183,
   "age": 102,
   "note": "102 days past due"
  },
  {
   "cause": "DUPLICATE_INVOICE",
   "id": "INV-0089",
   "cust": 38,
   "value": 128210,
   "age": 163,
   "note": "same delivery as INV-0088"
  },
  {
   "cause": "OVERDUE_OPEN",
   "id": "INV-1021",
   "cust": 35,
   "value": 126967,
   "age": 132,
   "note": "132 days past due"
  }
 ],
 "log_sample": [
  "INV-0070 matched to PO-0070 by amount+window (ref was PO-0071)",
  "INV-0080 matched to PO-0079 by amount+window (ref was PO-0070)",
  "INV-0121 matched to PO-0122 by amount+window (ref was PO-0123)",
  "INV-0132 matched to PO-0133 by amount+window (ref was PO-0134)",
  "INV-0163 matched to PO-0166 by amount+window (ref was PO-0167)",
  "INV-0186 matched to PO-0188 by amount+window (ref was PO-0189)",
  "INV-0205 matched to PO-0207 by amount+window (ref was PO-0208)",
  "INV-0209 matched to PO-0211 by amount+window (ref was PO-0212)",
  "INV-0210 matched to PO-0212 by amount+window (ref was PO-0213)",
  "INV-0239 matched to PO-0242 by amount+window (ref was PO-0243)"
 ]
}