{
  "task_id": "F5-conf-04",
  "c_closed_y05": 0.329,
  "c_closed_y1": 0.658,
  "c_closed_y2": 1.316,
  "c_num_y05": 0.32881734052248063,
  "c_num_y1": 0.6589770804373355,
  "c_num_y2": 1.3095934115917793,
  "max_abs_error_policy": 0.006406588408220726,
  "value_closed_y1": -19.524412221722393,
  "value_num_y1": -19.524781221185183,
  "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 0.5, 1.0, 2.0 are not nodes of the 400-point log grid.",
      "handling": "VFI policy c(y) and value V(y) linearly interpolated in y between adjacent grid nodes, as allowed by the task."
    },
    {
      "issue": "Choice variable discretised: next-period output y' restricted to the same grid (discrete-choice VFI); log utility unbounded so -inf assigned to infeasible c<=0.",
      "handling": "Standard grid-search VFI; every grid y has feasible choices (y'=y_min always feasible), so no node is dropped. Discretisation error is reported."
    }
  ],
  "n_input_rows": {
    "model.csv": 10
  },
  "n_analysed": 400,
  "random_seed": null,
  "diagnostics": {
    "sup_abs_error_value_on_grid": 0.0004835155258184898,
    "sup_abs_error_policy_on_grid": 0.02512152290513381,
    "abs_error_policy_each_eval": [
      0.00018265947751938683,
      0.0009770804373354647,
      0.006406588408220726
    ],
    "iteration_error_bound_beta_tol_over_1mbeta": 1.8999999999999982e-07,
    "grid_log_step": 0.011541779914756887,
    "steady_state_y": 0.5468770327603131,
    "A": -19.524412221722393,
    "B": 1.519756838905775
  }
}