{
 "engine": "invoice-validator",
 "seed": 42,
 "params": {
  "seed": 42,
  "doc_mult": 1.0,
  "po_mult": 1.0,
  "tax_mult": 1.0,
  "portal_p": 0.85,
  "validator": true,
  "terms_days": 30,
  "date_window_days": 7,
  "amount_tolerance": 0.005,
  "fix_delay_days": "1-2",
  "portal_reject_delay_days": "4-13",
  "pay_lag": "normal(8, 6)"
 },
 "gstin_regex": "^[0-9]{2}[A-Z0-9]{13}$",
 "book": {
  "customers": 40,
  "invoices": 800,
  "days": 60,
  "value": 28989601,
  "defective": 233,
  "multi_failure": 28
 },
 "with_validator": {
  "mode": "validator",
  "invoices": 800,
  "clean": 567,
  "held": 233,
  "rejected": 0,
  "slipped": 0,
  "rupee_days": 12648985,
  "mean_days_to_cash": 38.5,
  "days_added_to_dso": 0.4,
  "days_to_cash_hist": [
   0,
   8,
   45,
   164,
   232,
   216,
   101,
   27,
   7,
   0,
   0,
   0,
   0,
   0
  ]
 },
 "without_validator": {
  "mode": "portal",
  "invoices": 800,
  "clean": 567,
  "held": 0,
  "rejected": 201,
  "slipped": 32,
  "rupee_days": 74320276,
  "mean_days_to_cash": 40.7,
  "days_added_to_dso": 2.6,
  "days_to_cash_hist": [
   0,
   6,
   38,
   135,
   199,
   191,
   113,
   74,
   30,
   11,
   2,
   1,
   0,
   0
  ]
 },
 "headline": {
  "rupee_days_avoided": 61671291,
  "mean_days_improvement": 2.1,
  "rejections_avoided": 201,
  "held": 233
 },
 "by_reason": [
  {
   "check": "PO_MISSING",
   "group": "po",
   "base_rate": 0.08,
   "rate": 0.08,
   "customers_requiring": 29,
   "defects_injected": 65,
   "failures": 49,
   "rejections_without": 44
  },
  {
   "check": "PO_EXHAUSTED",
   "group": "po",
   "base_rate": 0.04,
   "rate": 0.04,
   "customers_requiring": 29,
   "defects_injected": 24,
   "failures": 20,
   "rejections_without": 18
  },
  {
   "check": "GSTIN_INVALID",
   "group": "tax",
   "base_rate": 0.03,
   "rate": 0.03,
   "customers_requiring": 40,
   "defects_injected": 25,
   "failures": 25,
   "rejections_without": 19
  },
  {
   "check": "STATE_MISMATCH",
   "group": "tax",
   "base_rate": 0.05,
   "rate": 0.05,
   "customers_requiring": 40,
   "defects_injected": 43,
   "failures": 39,
   "rejections_without": 33
  },
  {
   "check": "ADDRESS_DRIFT",
   "group": "doc",
   "base_rate": 0.06,
   "rate": 0.06,
   "customers_requiring": 40,
   "defects_injected": 44,
   "failures": 44,
   "rejections_without": 38
  },
  {
   "check": "HSN_MISSING",
   "group": "doc",
   "base_rate": 0.07,
   "rate": 0.07,
   "customers_requiring": 20,
   "defects_injected": 70,
   "failures": 32,
   "rejections_without": 28
  },
  {
   "check": "DATE_WINDOW",
   "group": "doc",
   "base_rate": 0.06,
   "rate": 0.06,
   "customers_requiring": 12,
   "defects_injected": 47,
   "failures": 13,
   "rejections_without": 12
  },
  {
   "check": "DN_MISSING",
   "group": "doc",
   "base_rate": 0.09,
   "rate": 0.09,
   "customers_requiring": 11,
   "defects_injected": 71,
   "failures": 21,
   "rejections_without": 19
  },
  {
   "check": "AMOUNT_VS_PO",
   "group": "doc",
   "base_rate": 0.04,
   "rate": 0.04,
   "customers_requiring": 13,
   "defects_injected": 35,
   "failures": 9,
   "rejections_without": 8
  },
  {
   "check": "DUPLICATE_NUMBER",
   "group": "doc",
   "base_rate": 0.01,
   "rate": 0.01,
   "customers_requiring": 40,
   "defects_injected": 9,
   "failures": 9,
   "rejections_without": 9
  }
 ],
 "profiles": [
  {
   "id": "C01",
   "state": 23,
   "needs_po": false,
   "po_cap": false,
   "hsn": true,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 20,
   "held": 3,
   "rejected": 2
  },
  {
   "id": "C02",
   "state": 1,
   "needs_po": true,
   "po_cap": false,
   "hsn": true,
   "date_win": false,
   "dn": true,
   "wdays": false,
   "invoices": 23,
   "held": 7,
   "rejected": 5
  },
  {
   "id": "C03",
   "state": 2,
   "needs_po": true,
   "po_cap": true,
   "hsn": true,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 23,
   "held": 8,
   "rejected": 7
  },
  {
   "id": "C04",
   "state": 35,
   "needs_po": true,
   "po_cap": false,
   "hsn": false,
   "date_win": true,
   "dn": false,
   "wdays": true,
   "invoices": 13,
   "held": 5,
   "rejected": 5
  },
  {
   "id": "C05",
   "state": 20,
   "needs_po": true,
   "po_cap": false,
   "hsn": false,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 24,
   "held": 4,
   "rejected": 3
  },
  {
   "id": "C06",
   "state": 16,
   "needs_po": false,
   "po_cap": true,
   "hsn": false,
   "date_win": false,
   "dn": true,
   "wdays": false,
   "invoices": 22,
   "held": 2,
   "rejected": 1
  },
  {
   "id": "C07",
   "state": 7,
   "needs_po": true,
   "po_cap": false,
   "hsn": false,
   "date_win": false,
   "dn": false,
   "wdays": true,
   "invoices": 14,
   "held": 2,
   "rejected": 1
  },
  {
   "id": "C08",
   "state": 23,
   "needs_po": true,
   "po_cap": false,
   "hsn": true,
   "date_win": true,
   "dn": false,
   "wdays": false,
   "invoices": 30,
   "held": 15,
   "rejected": 13
  },
  {
   "id": "C09",
   "state": 15,
   "needs_po": true,
   "po_cap": false,
   "hsn": true,
   "date_win": true,
   "dn": false,
   "wdays": true,
   "invoices": 17,
   "held": 7,
   "rejected": 5
  },
  {
   "id": "C10",
   "state": 7,
   "needs_po": false,
   "po_cap": false,
   "hsn": true,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 19,
   "held": 5,
   "rejected": 5
  },
  {
   "id": "C11",
   "state": 34,
   "needs_po": false,
   "po_cap": true,
   "hsn": true,
   "date_win": true,
   "dn": false,
   "wdays": false,
   "invoices": 15,
   "held": 5,
   "rejected": 4
  },
  {
   "id": "C12",
   "state": 29,
   "needs_po": false,
   "po_cap": false,
   "hsn": true,
   "date_win": false,
   "dn": true,
   "wdays": false,
   "invoices": 14,
   "held": 6,
   "rejected": 6
  },
  {
   "id": "C13",
   "state": 1,
   "needs_po": true,
   "po_cap": false,
   "hsn": false,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 19,
   "held": 8,
   "rejected": 8
  },
  {
   "id": "C14",
   "state": 8,
   "needs_po": true,
   "po_cap": false,
   "hsn": false,
   "date_win": false,
   "dn": true,
   "wdays": true,
   "invoices": 25,
   "held": 8,
   "rejected": 8
  },
  {
   "id": "C15",
   "state": 6,
   "needs_po": true,
   "po_cap": true,
   "hsn": false,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 19,
   "held": 3,
   "rejected": 3
  },
  {
   "id": "C16",
   "state": 21,
   "needs_po": true,
   "po_cap": false,
   "hsn": true,
   "date_win": true,
   "dn": false,
   "wdays": false,
   "invoices": 23,
   "held": 8,
   "rejected": 7
  },
  {
   "id": "C17",
   "state": 8,
   "needs_po": false,
   "po_cap": false,
   "hsn": false,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 16,
   "held": 2,
   "rejected": 2
  },
  {
   "id": "C18",
   "state": 37,
   "needs_po": true,
   "po_cap": false,
   "hsn": false,
   "date_win": false,
   "dn": false,
   "wdays": true,
   "invoices": 16,
   "held": 4,
   "rejected": 3
  },
  {
   "id": "C19",
   "state": 11,
   "needs_po": true,
   "po_cap": true,
   "hsn": true,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 20,
   "held": 5,
   "rejected": 4
  },
  {
   "id": "C20",
   "state": 17,
   "needs_po": true,
   "po_cap": true,
   "hsn": true,
   "date_win": false,
   "dn": true,
   "wdays": false,
   "invoices": 27,
   "held": 16,
   "rejected": 16
  },
  {
   "id": "C21",
   "state": 24,
   "needs_po": true,
   "po_cap": false,
   "hsn": true,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 17,
   "held": 6,
   "rejected": 5
  },
  {
   "id": "C22",
   "state": 5,
   "needs_po": false,
   "po_cap": false,
   "hsn": true,
   "date_win": true,
   "dn": false,
   "wdays": false,
   "invoices": 18,
   "held": 3,
   "rejected": 2
  },
  {
   "id": "C23",
   "state": 6,
   "needs_po": true,
   "po_cap": false,
   "hsn": true,
   "date_win": true,
   "dn": false,
   "wdays": false,
   "invoices": 22,
   "held": 6,
   "rejected": 6
  },
  {
   "id": "C24",
   "state": 21,
   "needs_po": false,
   "po_cap": true,
   "hsn": false,
   "date_win": false,
   "dn": true,
   "wdays": false,
   "invoices": 25,
   "held": 6,
   "rejected": 5
  },
  {
   "id": "C25",
   "state": 19,
   "needs_po": true,
   "po_cap": false,
   "hsn": false,
   "date_win": true,
   "dn": true,
   "wdays": false,
   "invoices": 13,
   "held": 3,
   "rejected": 2
  },
  {
   "id": "C26",
   "state": 29,
   "needs_po": true,
   "po_cap": true,
   "hsn": false,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 21,
   "held": 5,
   "rejected": 5
  },
  {
   "id": "C27",
   "state": 2,
   "needs_po": true,
   "po_cap": false,
   "hsn": false,
   "date_win": false,
   "dn": true,
   "wdays": false,
   "invoices": 28,
   "held": 12,
   "rejected": 10
  },
  {
   "id": "C28",
   "state": 34,
   "needs_po": false,
   "po_cap": false,
   "hsn": true,
   "date_win": false,
   "dn": true,
   "wdays": false,
   "invoices": 26,
   "held": 7,
   "rejected": 7
  },
  {
   "id": "C29",
   "state": 19,
   "needs_po": true,
   "po_cap": true,
   "hsn": false,
   "date_win": true,
   "dn": false,
   "wdays": false,
   "invoices": 18,
   "held": 2,
   "rejected": 2
  },
  {
   "id": "C30",
   "state": 26,
   "needs_po": true,
   "po_cap": true,
   "hsn": false,
   "date_win": true,
   "dn": false,
   "wdays": false,
   "invoices": 18,
   "held": 6,
   "rejected": 6
  },
  {
   "id": "C31",
   "state": 16,
   "needs_po": true,
   "po_cap": false,
   "hsn": true,
   "date_win": false,
   "dn": false,
   "wdays": true,
   "invoices": 16,
   "held": 2,
   "rejected": 2
  },
  {
   "id": "C32",
   "state": 22,
   "needs_po": true,
   "po_cap": false,
   "hsn": false,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 21,
   "held": 3,
   "rejected": 1
  },
  {
   "id": "C33",
   "state": 29,
   "needs_po": true,
   "po_cap": false,
   "hsn": true,
   "date_win": true,
   "dn": false,
   "wdays": false,
   "invoices": 22,
   "held": 8,
   "rejected": 5
  },
  {
   "id": "C34",
   "state": 2,
   "needs_po": false,
   "po_cap": true,
   "hsn": false,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 18,
   "held": 6,
   "rejected": 6
  },
  {
   "id": "C35",
   "state": 13,
   "needs_po": false,
   "po_cap": false,
   "hsn": false,
   "date_win": true,
   "dn": false,
   "wdays": false,
   "invoices": 14,
   "held": 4,
   "rejected": 3
  },
  {
   "id": "C36",
   "state": 37,
   "needs_po": true,
   "po_cap": false,
   "hsn": true,
   "date_win": false,
   "dn": true,
   "wdays": false,
   "invoices": 16,
   "held": 5,
   "rejected": 5
  },
  {
   "id": "C37",
   "state": 34,
   "needs_po": true,
   "po_cap": true,
   "hsn": true,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 22,
   "held": 5,
   "rejected": 5
  },
  {
   "id": "C38",
   "state": 1,
   "needs_po": true,
   "po_cap": false,
   "hsn": false,
   "date_win": false,
   "dn": false,
   "wdays": true,
   "invoices": 17,
   "held": 5,
   "rejected": 3
  },
  {
   "id": "C39",
   "state": 8,
   "needs_po": true,
   "po_cap": true,
   "hsn": false,
   "date_win": false,
   "dn": true,
   "wdays": true,
   "invoices": 28,
   "held": 10,
   "rejected": 8
  },
  {
   "id": "C40",
   "state": 32,
   "needs_po": true,
   "po_cap": false,
   "hsn": true,
   "date_win": false,
   "dn": false,
   "wdays": false,
   "invoices": 21,
   "held": 6,
   "rejected": 5
  }
 ],
 "rejections_by_customer": [
  {
   "cust": "C20",
   "invoices": 27,
   "rejected": 16,
   "rupee_days": 5671205
  },
  {
   "cust": "C08",
   "invoices": 30,
   "rejected": 13,
   "rupee_days": 4931792
  },
  {
   "cust": "C27",
   "invoices": 28,
   "rejected": 10,
   "rupee_days": 5253120
  },
  {
   "cust": "C14",
   "invoices": 25,
   "rejected": 8,
   "rupee_days": 3996387
  },
  {
   "cust": "C13",
   "invoices": 19,
   "rejected": 8,
   "rupee_days": 3259397
  },
  {
   "cust": "C39",
   "invoices": 28,
   "rejected": 8,
   "rupee_days": 2294606
  },
  {
   "cust": "C03",
   "invoices": 23,
   "rejected": 7,
   "rupee_days": 2519211
  },
  {
   "cust": "C28",
   "invoices": 26,
   "rejected": 7,
   "rupee_days": 1851240
  },
  {
   "cust": "C16",
   "invoices": 23,
   "rejected": 7,
   "rupee_days": 1167608
  },
  {
   "cust": "C34",
   "invoices": 18,
   "rejected": 6,
   "rupee_days": 2279310
  }
 ],
 "sample_holds": [
  {
   "number": "INV-0003",
   "cust": "C24",
   "amount": 46963,
   "fails": [
    "DN_MISSING"
   ]
  },
  {
   "number": "INV-0005",
   "cust": "C27",
   "amount": 8434,
   "fails": [
    "PO_EXHAUSTED"
   ]
  },
  {
   "number": "INV-0013",
   "cust": "C31",
   "amount": 3209,
   "fails": [
    "DUPLICATE_NUMBER"
   ]
  },
  {
   "number": "INV-0018",
   "cust": "C39",
   "amount": 27115,
   "fails": [
    "PO_MISSING"
   ]
  },
  {
   "number": "INV-0019",
   "cust": "C02",
   "amount": 24414,
   "fails": [
    "ADDRESS_DRIFT"
   ]
  },
  {
   "number": "INV-0032",
   "cust": "C21",
   "amount": 15344,
   "fails": [
    "ADDRESS_DRIFT"
   ]
  },
  {
   "number": "INV-0034",
   "cust": "C39",
   "amount": 8033,
   "fails": [
    "DN_MISSING"
   ]
  },
  {
   "number": "INV-0041",
   "cust": "C23",
   "amount": 65708,
   "fails": [
    "PO_MISSING"
   ]
  },
  {
   "number": "INV-0045",
   "cust": "C36",
   "amount": 18581,
   "fails": [
    "PO_MISSING"
   ]
  },
  {
   "number": "INV-0047",
   "cust": "C38",
   "amount": 84865,
   "fails": [
    "PO_MISSING"
   ]
  },
  {
   "number": "INV-0049",
   "cust": "C27",
   "amount": 12544,
   "fails": [
    "ADDRESS_DRIFT"
   ]
  },
  {
   "number": "INV-0050",
   "cust": "C33",
   "amount": 25416,
   "fails": [
    "PO_MISSING"
   ]
  }
 ],
 "tie": {
  "with": 800,
  "without": 800,
  "held_equals_defective": true
 }
}