diff --git a/src/plugins/value/utils/eva_audit.ml b/src/plugins/value/utils/eva_audit.ml
index 99fa9e2d23dc257f19f603bd223acc7ddcb42459..2fca718e2f4ea71eacf7b8dcf501af9854b51fe3 100644
--- a/src/plugins/value/utils/eva_audit.ml
+++ b/src/plugins/value/utils/eva_audit.ml
@@ -20,21 +20,21 @@
 (*                                                                        *)
 (**************************************************************************)
 
-
-let json_of_parameters parms =
-  let pair param =
+let get_correctness_parameters () =
+  let get param =
     let name = param.Typed_parameter.name in
     let value = Typed_parameter.get_value param in
-    (name, `String value)
+    (name, value)
   in
-  let parms_json = List.map pair parms in
-  `Assoc [("correctness-parameters", `Assoc parms_json)]
+  List.map get (Value_parameters.parameters_correctness)
 
-let parameters_of_json parms_json =
+let parameters_of_json json =
   try
     let open Yojson.Basic.Util in
-    let parms = parms_json |> member "correctness-parameters" |> to_assoc in
-    List.map (fun (key, value) -> (key, value |> to_string)) parms
+    let params =
+      json |> member "eva" |> member "correctness-parameters" |> to_assoc
+    in
+    List.map (fun (key, value) -> (key, to_string value)) params
   with
   | Yojson.Json_error msg ->
     Kernel.abort "error reading JSON file: %s" msg
@@ -43,35 +43,22 @@ let parameters_of_json parms_json =
       (Yojson.Basic.pretty_to_string v)
 
 let print_correctness_parameters path =
-  let parameters_correctness = Value_parameters.parameters_correctness in
+  let parameters = get_correctness_parameters () in
   if Filepath.Normalized.is_special_stdout path then begin
     Value_parameters.feedback "Correctness parameters of the analysis:";
-    let print param =
-      let name = param.Typed_parameter.name in
-      let value = Typed_parameter.get_value param in
-      Value_parameters.printf "  %s: %s" name value
-    in
-    List.iter print parameters_correctness
+    let print (name, value) = Value_parameters.printf "  %s: %s" name value in
+    List.iter print parameters
   end else begin
-    let json = `Assoc [("eva", json_of_parameters parameters_correctness)] in
-    Json.merge_object path json
+    let json = List.map (fun (name, value) -> name, `String value) parameters in
+    let params_json = `Assoc [("correctness-parameters", `Assoc json)] in
+    let eva_json = `Assoc [("eva", params_json)] in
+    Json.merge_object path eva_json
   end
 
 let check_correctness_parameters json =
-  let get param =
-    let name = param.Typed_parameter.name in
-    let value = Typed_parameter.get_value param in
-    (name, value)
-  in
-  let parameters_correctness = Value_parameters.parameters_correctness in
-  let parameters = List.map get parameters_correctness in
-  let expected_parameters =
-    parameters_of_json (json |> Yojson.Basic.Util.member "eva")
-  in
-  let sort = List.sort (fun (p1, _) (p2, _) -> Stdlib.String.compare p1 p2) in
-  let expected_parameters = sort expected_parameters in
-  let parameters = sort parameters in
-  (* Note: we could simply compare lengths and use a two-list iterator,
+  let parameters = get_correctness_parameters () in
+  let expected_parameters = parameters_of_json json in
+  (* Note: we could compare lengths and use a two-list iterator on sorted lists,
      but in case of divergence, the error messages would be less clear. *)
   List.iter (fun (exp_p, exp_v) ->
       try
@@ -100,10 +87,11 @@ let json_of_warning_statuses wkeys key_name =
   let json_of_wkey = List.map (fun (c, _) -> `String c) in
   (key_name, `List (json_of_wkey wkeys))
 
-let warning_statuses_of_json json =
+let enabled_warning_of_json name json =
   try
     let open Yojson.Basic.Util in
-    json |> to_list |> filter_string
+    json |> member name |> member "warning-categories" |>
+    member "enabled" |> to_list |> filter_string
   with
   | Yojson.Json_error msg ->
     Kernel.abort "error reading JSON file: %s" msg
@@ -125,41 +113,25 @@ let print_warning_status path name (module Plugin: Log.Messages) =
         pp_categories (List.map fst disabled)
     end
   else begin
-    let enabled_json =
-      json_of_warning_statuses enabled "enabled"
-    in
-    let disabled_json =
-      json_of_warning_statuses disabled "disabled"
-    in
-    let json = `Assoc [(Stdlib.String.lowercase_ascii name,
-                        `Assoc [("warning-categories",
-                                 `Assoc [enabled_json; disabled_json])])]
-    in
+    let enabled_json = json_of_warning_statuses enabled "enabled"
+    and disabled_json = json_of_warning_statuses disabled "disabled" in
+    let warning_json = `Assoc [enabled_json; disabled_json] in
+    let name = Stdlib.String.lowercase_ascii name in
+    let json = `Assoc [(name, `Assoc [("warning-categories", warning_json)])] in
     Json.merge_object path json
   end
 
 let check_warning_status json name (module Plugin: Log.Messages) =
-  let lower_name = Stdlib.String.lowercase_ascii name in
+  let name = Stdlib.String.lowercase_ascii name in
   let enabled, _disabled = compute_warning_status (module Plugin) in
   let enabled = List.map fst enabled in
-  let (expected_enabled : string list) =
-    try
-      let open Yojson.Basic.Util in
-      json |> member lower_name |> member "warning-categories" |>
-      member "enabled" |> to_list |> filter_string
-    with
-    | Yojson.Json_error msg ->
-      Kernel.abort "error reading JSON file: %s" msg
-    | Yojson.Basic.Util.Type_error (msg, v) ->
-      Kernel.abort "error reading JSON file: %s - %s" msg
-        (Yojson.Basic.pretty_to_string v)
-  in
+  let expected_enabled = enabled_warning_of_json name json in
   let diff l1 l2 = List.filter (fun k -> not (List.mem k l2)) l1 in
   let should_be_enabled = diff expected_enabled enabled in
   if should_be_enabled <> [] then
     Kernel.warning ~wkey:Kernel.wkey_audit
       "the following warning categories were expected to be enabled,@ \
-       but were disabled: %a"
+       but are disabled: %a"
       (Pretty_utils.pp_list ~sep:", " Format.pp_print_string) should_be_enabled
 
 let check_configuration path =