{
  "module_name": "customer",
  "module_root": "pypos/modules/customer",
  "effective_date": "2026-04-12",
  "score": {
    "max": 100,
    "pass_score": 90
  },
  "kpis": [
    {
      "id": "KPI-01",
      "name": "Function Budget",
      "weight": 20
    },
    {
      "id": "KPI-02",
      "name": "Exception Hygiene",
      "weight": 25
    },
    {
      "id": "KPI-03",
      "name": "Error Contract",
      "weight": 20
    },
    {
      "id": "KPI-04",
      "name": "Test Maturity",
      "weight": 25
    },
    {
      "id": "KPI-05",
      "name": "Governance Controls",
      "weight": 10
    }
  ],
  "critical_functions": [
    {
      "file_path": "pypos/modules/customer/controllers/customer_setup_controller.py",
      "class_name": "CustomerSetupController",
      "function_name": "on_submit",
      "max_loc": 60
    },
    {
      "file_path": "pypos/modules/customer/controllers/customer_setup_controller.py",
      "class_name": "CustomerSetupController",
      "function_name": "reload_page",
      "max_loc": 90
    }
  ],
  "exception_hygiene": {
    "baseline_generic_exception": 5,
    "max_allowed_generic_exception": 1,
    "min_reduction_pct": 70
  },
  "error_contract_targets": [],
  "test_matrix": {
    "customer_core": {
      "files": [
        "tests/test_customer_model_hardening.py",
        "tests/test_customer_search_model.py"
      ],
      "min_cases": 6
    }
  },
  "governance_checks": [
    {
      "file_path": "pypos/modules/customer/controllers/customer_setup_controller.py",
      "required_tokens": [
        "CustomerService",
        "show_error"
      ]
    }
  ]
}
