{
  "basis": "declared hypothetical fully reversed amplitudes and constant frequency; compatible evaluated detail assumed",
  "cases": [
    {
      "N": 200000,
      "assumed_stress_amplitude_ksi": 12,
      "assumed_fully_reversed_stress_range_ksi": 24,
      "frequency_Hz": 8,
      "accumulated_exposure_hours": 6.944444444444445,
      "design_range_read_ksi": {
        "N": 200000,
        "approximate_stress_range_ksi": 28.0,
        "graphic_read_band_ksi": [
          26.0,
          30.0
        ]
      },
      "comparison": "below_read_band",
      "status": "teaching comparison only; no failure time, repair deadline or project acceptance"
    },
    {
      "N": 500000,
      "assumed_stress_amplitude_ksi": 10.5,
      "assumed_fully_reversed_stress_range_ksi": 21.0,
      "frequency_Hz": 8,
      "accumulated_exposure_hours": 17.36111111111111,
      "design_range_read_ksi": {
        "N": 500000,
        "approximate_stress_range_ksi": 21.5,
        "graphic_read_band_ksi": [
          20.0,
          23.0
        ]
      },
      "comparison": "inside_read_band_unresolved",
      "status": "teaching comparison only; no failure time, repair deadline or project acceptance"
    },
    {
      "N": 1000000,
      "assumed_stress_amplitude_ksi": 12,
      "assumed_fully_reversed_stress_range_ksi": 24,
      "frequency_Hz": 8,
      "accumulated_exposure_hours": 34.72222222222222,
      "design_range_read_ksi": {
        "N": 1000000,
        "approximate_stress_range_ksi": 18.0,
        "graphic_read_band_ksi": [
          16.5,
          19.0
        ]
      },
      "comparison": "above_read_band",
      "status": "teaching comparison only; no failure time, repair deadline or project acceptance"
    }
  ],
  "interpolation_example": {
    "N": 300000,
    "approximate_stress_range_ksi": 24.911152035631716,
    "graphic_read_band_ksi": [
      23.15008614049792,
      26.67220088845442
    ]
  },
  "time_formula": "t_hours=N/(f_Hz*3600)",
  "accumulation": "N=sum(f_j*t_j) counts cycles; mixed stress levels require separate qualified damage method"
}
