{
  "task_id": "F5-conf-04",
  "c_closed_y05": 0.329,
  "c_closed_y1": 0.658,
  "c_closed_y2": 1.316,
  "c_num_y05": 0.32881774872035086,
  "c_num_y1": 0.6589935200017671,
  "c_num_y2": 1.309625047452993,
  "max_abs_error_policy": 0.006374952547007151,
  "value_closed_y1": -19.524412221722393,
  "value_num_y1": -19.52475624982261,
  "savings_rate_closed_form": 0.34199999999999997,
  "contraction_modulus": 0.95,
  "grid_points_used": 400,
  "n_iterations": 361,
  "final_sup_change": 9.996650618404601e-09,
  "feasibility": "complete",
  "feasibility_reason": null,
  "data_issues": [
    {
      "issue": "Evaluation points y=0.5, 1.0, 2.0 (and y=1 for V) are not nodes of the prescribed 400-point log grid.",
      "handling": "VFI policy and value are linearly interpolated in ln y between adjacent grid nodes (as allowed by TASK.md); grid itself unchanged."
    },
    {
      "issue": "VFI implemented as discrete choice of next-period output y' restricted to the same grid (consumption c = y - y'^(1/alpha)); infeasible choices (c<=0) excluded.",
      "handling": "Design choice, not a deviation from prescribed parameters; it introduces a discretisation error in the policy reported as max_abs_error_policy."
    }
  ],
  "n_input_rows": {
    "model.csv": 10
  },
  "n_analysed": 400,
  "random_seed": null,
  "diagnostics": {
    "eval_points_are_grid_nodes": [
      false,
      false,
      false
    ],
    "policy_at_lower_bound_count": 0,
    "policy_at_upper_bound_count": 0,
    "max_abs_policy_error_over_grid": 0.02512152290513381,
    "max_abs_value_error_over_grid": 0.0004835155258184898,
    "grid_log_step": 0.011541779914757022,
    "closed_form_a": -19.524412221722393,
    "closed_form_b": 1.519756838905775
  }
}