{
  "test_date": "2026-09-09",
  "scope": "One iPhone, one built-in microphone route in measurement mode, one speaker setup, one session; sequential NIOSH and Lullasure passes.",
  "status": "Offline correction analysis of recorded values; corrected-app confirmation measurements have not been recorded.",
  "metric": "A-weighted Slow current level. Difference = Lullasure + correction - NIOSH; positive means Lullasure is higher.",
  "source_audit": {
    "all_18_pairs_match_both_sources": true,
    "missing_pairs": 0,
    "interpolated_values": 0
  },
  "counts": {
    "total": 18,
    "included_fit": 11,
    "same_session_held_out_sounds": 3,
    "repeats": 2,
    "excluded_background": 1,
    "excluded_lowest_250_hz_tone": 1,
    "included_total": 16
  },
  "correction": {
    "method": "Arithmetic mean of NIOSH minus Lullasure on 11 included fit cases only; single additive least-squares correction.",
    "exact_additive_db": 22.990054545454544,
    "rounded_additive_db": 23.0,
    "original_development_offset_db": 94,
    "provisional_offset_db": 117,
    "exact_vs_rounded_difference_db": 0.00994545454545559,
    "frequency_or_level_dependent_correction_fitted": false
  },
  "scoring": {
    "niosh": "Median of three visually verified large live A/Slow displayed values per case; these may include repeated UI values.",
    "lullasure": "One actual 1 Hz exported sample in the original last-1.8-second guarded scoring window; no interpolation.",
    "exclusion": "Background is not a stimulus fit case. Apply the pre-existing protocol background-screening heuristic (roughly 10 dB above measured background) in both passes; only the lowest 250 Hz tone fails. This was a protocol heuristic, not a formal preregistered study.",
    "low_tone_reference_margin_db": 5.600000000000001,
    "low_tone_lullasure_margin_db": 7.0344000000000015,
    "held_out_scope": "White noise, brown noise, and a multitone were reserved in the stimulus manifest and did not affect the fitted correction. They share the same session, phone, room, and source; they are not independent validation."
  },
  "included_reference_range_dba": [
    47.8,
    70.8
  ],
  "metrics": {
    "fit": {
      "original": {
        "count": 11,
        "mean_error_db": -22.990054545454544,
        "rmse_db": 22.997575273533037,
        "max_absolute_error_db": 24.0213,
        "mean_absolute_error_db": 22.990054545454544
      },
      "exact_fit_offline": {
        "count": 11,
        "mean_error_db": -6.459479416000911e-16,
        "rmse_db": 0.5880990212906111,
        "max_absolute_error_db": 1.0312454545454557,
        "mean_absolute_error_db": 0.49957851239669343
      },
      "rounded_correction_offline": {
        "count": 11,
        "mean_error_db": 0.009945454545455267,
        "rmse_db": 0.5881831100168485,
        "max_absolute_error_db": 1.0213000000000036,
        "mean_absolute_error_db": 0.5022909090909102
      }
    },
    "holdout": {
      "original": {
        "count": 3,
        "mean_error_db": -22.475166666666667,
        "rmse_db": 22.47806129562779,
        "max_absolute_error_db": 22.895300000000002,
        "mean_absolute_error_db": 22.475166666666667
      },
      "exact_fit_offline": {
        "count": 3,
        "mean_error_db": 0.5148878787878791,
        "rmse_db": 0.6286751492450132,
        "max_absolute_error_db": 0.9755545454545498,
        "mean_absolute_error_db": 0.5148878787878791
      },
      "rounded_correction_offline": {
        "count": 3,
        "mean_error_db": 0.5248333333333335,
        "rmse_db": 0.6368460907733782,
        "max_absolute_error_db": 0.9855000000000018,
        "mean_absolute_error_db": 0.5248333333333335
      }
    },
    "repeat": {
      "original": {
        "count": 2,
        "mean_error_db": -23.012000000000004,
        "rmse_db": 23.01212027084858,
        "max_absolute_error_db": 23.086400000000005,
        "mean_absolute_error_db": 23.012000000000004
      },
      "exact_fit_offline": {
        "count": 2,
        "mean_error_db": -0.02194545454546315,
        "rmse_db": 0.0775690851770671,
        "max_absolute_error_db": 0.09634545454546384,
        "mean_absolute_error_db": 0.07440000000000069
      },
      "rounded_correction_offline": {
        "count": 2,
        "mean_error_db": -0.012000000000004007,
        "rmse_db": 0.07536152864691771,
        "max_absolute_error_db": 0.0864000000000047,
        "mean_absolute_error_db": 0.07440000000000069
      }
    },
    "all_included": {
      "original": {
        "count": 16,
        "mean_error_db": -22.89625625,
        "rmse_db": 22.902890416154357,
        "max_absolute_error_db": 24.0213,
        "mean_absolute_error_db": 22.89625625
      },
      "exact_fit_offline": {
        "count": 16,
        "mean_error_db": 0.09379829545454399,
        "rmse_db": 0.5591397579685385,
        "max_absolute_error_db": 1.0312454545454557,
        "mean_absolute_error_db": 0.44930170454545415
      },
      "rounded_correction_offline": {
        "count": 16,
        "mean_error_db": 0.10374375000000002,
        "rmse_db": 0.5608938530372756,
        "max_absolute_error_db": 1.0213000000000036,
        "mean_absolute_error_db": 0.4530312500000009
      }
    },
    "excluded_cases_descriptive_only": {
      "original": {
        "count": 2,
        "mean_error_db": -24.093200000000003,
        "rmse_db": 24.103872346160482,
        "max_absolute_error_db": 24.8104,
        "mean_absolute_error_db": 24.093200000000003
      },
      "exact_fit_offline": {
        "count": 2,
        "mean_error_db": -1.103145454545455,
        "rmse_db": 1.3157909157173475,
        "max_absolute_error_db": 1.8203454545454534,
        "mean_absolute_error_db": 1.103145454545455
      },
      "rounded_correction_offline": {
        "count": 2,
        "mean_error_db": -1.093200000000003,
        "rmse_db": 1.3074639880317944,
        "max_absolute_error_db": 1.8104000000000013,
        "mean_absolute_error_db": 1.093200000000003
      }
    }
  },
  "sensitivity": {
    "full_two_second_samples": {
      "sample_count_per_case": 2,
      "fitted_additive_db": 22.990545454545455,
      "fitted_shift_from_guarded_db": 0.0004909090909102076,
      "largest_active_case_reading_change_db": 0.0727,
      "fit_rounded_metrics": {
        "count": 11,
        "mean_error_db": 0.009454545454546028,
        "rmse_db": 0.5833177595756575,
        "max_absolute_error_db": 1.0075000000000003,
        "mean_absolute_error_db": 0.4980727272727272
      }
    },
    "observed_niosh_ranges": {
      "maximum_active_case_display_range_db": 0.3999999999999986,
      "fitted_additive_using_all_minima_db": 22.908236363636366,
      "fitted_additive_using_all_maxima_db": 23.06278181818182,
      "rounded_residual_bounds": {
        "fit": {
          "rmse_minimum_db": 0.5365676463326038,
          "rmse_maximum_db": 0.6674110822628545,
          "largest_possible_absolute_difference_db": 1.0909000000000049
        },
        "holdout": {
          "rmse_minimum_db": 0.5827174358125896,
          "rmse_maximum_db": 0.7146838065419809,
          "largest_possible_absolute_difference_db": 0.9855000000000018
        },
        "repeat": {
          "rmse_minimum_db": 0.04412346314603822,
          "rmse_maximum_db": 0.15735107244629665,
          "largest_possible_absolute_difference_db": 0.21359999999999957
        }
      },
      "interpretation": "Descriptive sensitivity to the observed display range. Not measurement uncertainty, error bars for absolute SPL, or a confidence interval."
    },
    "including_lowest_250_hz_tone": {
      "fitted_additive_db": 23.022216666666665,
      "reason_not_primary": "This tone is too close to recorded background for the primary fit; reported here so the exclusion remains reviewable."
    }
  },
  "repeat_check": {
    "niosh_last_minus_first_db": -0.10000000000000142,
    "lullasure_last_minus_first_db": 0.048799999999999955,
    "user_reported_setup_dba": 65,
    "user_reported_return_dba": [
      65.2,
      65.4
    ]
  },
  "limitations": [
    "Agreement to a reference app does not establish absolute acoustic accuracy or NIOSH endorsement.",
    "Post-correction values are calculated offline from the original recording, not measured in a rerun of the corrected app.",
    "Residuals vary by sound family; a single offset does not remove all frequency dependence.",
    "The retained cases span 47.8-70.8 dBA indicated by NIOSH; lower quiet-room levels, other phones, and other recording modes remain unverified.",
    "Same-session held-out sounds give a limited check; a fresh session and equipment-based work are still needed."
  ]
}
