{
  "model": "openai/gpt-4o-mini",
  "n": 288,
  "score": {
    "n": 288,
    "accuracy": 80.7,
    "invented_count": 10,
    "missed_count": 170,
    "weight_zero_violation_count": 1,
    "latency_p50_ms": 1425,
    "latency_p95_ms": 2827,
    "cost_usd": 0.041718,
    "accuracy_by_band": {
      "A": {
        "n": 90,
        "accuracy": 99.7,
        "invented_count": 0,
        "missed_count": 1,
        "weight_zero_violation_count": 0,
        "latency_p50_ms": 1342,
        "latency_p95_ms": 2427,
        "cost_usd": 0.012453
      },
      "B": {
        "n": 96,
        "accuracy": 79.3,
        "invented_count": 1,
        "missed_count": 58,
        "weight_zero_violation_count": 1,
        "latency_p50_ms": 1322,
        "latency_p95_ms": 2819,
        "cost_usd": 0.013963
      },
      "C": {
        "n": 84,
        "accuracy": 100,
        "invented_count": 0,
        "missed_count": 0,
        "weight_zero_violation_count": 0,
        "latency_p50_ms": 1379,
        "latency_p95_ms": 2565,
        "cost_usd": 0.010856
      },
      "D": {
        "n": 18,
        "accuracy": 46.7,
        "invented_count": 9,
        "missed_count": 111,
        "weight_zero_violation_count": 0,
        "latency_p50_ms": 2787,
        "latency_p95_ms": 5325,
        "cost_usd": 0.004446
      }
    }
  },
  "caption": "OpenRouter bench envelope (temperature 0, seed, json_schema name=prescription_rows, strict:false, usage.include). Production interpretPrescription is Base44 InvokeLLM({prompt, response_json_schema}) with model omitted, then sane() drops declined rows. Same RULES string; different envelope.",
  "runs": [
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A1",
      "seed": 1,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 180
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 180,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1065,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:27.549Z",
      "diffs": [
        {
          "row": "A1",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A1",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A1",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "A1",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg r180"
        }
      ],
      "context": "context/A1.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A1.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A1",
      "seed": 2,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 180
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 180,
            "rpe": null,
            "note": "@100kg r180"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1928,
      "cost_usd": 0.00013995,
      "tokens_prompt": 737,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:29.042Z",
      "diffs": [
        {
          "row": "A1",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A1",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A1",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "A1",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg r180"
        }
      ],
      "context": "context/A1.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A1.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A1",
      "seed": 3,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 180
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 180,
            "rpe": null,
            "note": "@100kg r180"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1892,
      "cost_usd": 0.00013995,
      "tokens_prompt": 737,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:29.441Z",
      "diffs": [
        {
          "row": "A1",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A1",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A1",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "A1",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg r180"
        }
      ],
      "context": "context/A1.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A1.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A2",
      "seed": 1,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 60,
        "rest": 90,
        "rpe": 8
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 60,
            "rest_seconds": 90,
            "rpe": 8,
            "note": "RPE8"
          }
        ]
      },
      "score_line": 100,
      "fields": 5,
      "ok": 5,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 846,
      "cost_usd": 0.0001389,
      "tokens_prompt": 742,
      "tokens_completion": 46,
      "ts": "2026-09-11T16:32:29.621Z",
      "diffs": [
        {
          "row": "A2",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "weight_kg",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "rpe",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @60kg RPE8 rest 90s"
        }
      ],
      "context": "context/A2.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A2.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A2",
      "seed": 3,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 60,
        "rest": 90,
        "rpe": 8
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 60,
            "rest_seconds": 90,
            "rpe": 8,
            "note": "RPE8"
          }
        ]
      },
      "score_line": 100,
      "fields": 5,
      "ok": 5,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 984,
      "cost_usd": 0.0001389,
      "tokens_prompt": 742,
      "tokens_completion": 46,
      "ts": "2026-09-11T16:32:30.426Z",
      "diffs": [
        {
          "row": "A2",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "weight_kg",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "rpe",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @60kg RPE8 rest 90s"
        }
      ],
      "context": "context/A2.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A2.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A2",
      "seed": 2,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 60,
        "rest": 90,
        "rpe": 8
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 60,
            "rest_seconds": 90,
            "rpe": 8,
            "note": "RPE8"
          }
        ]
      },
      "score_line": 100,
      "fields": 5,
      "ok": 5,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1710,
      "cost_usd": 0.0001395,
      "tokens_prompt": 742,
      "tokens_completion": 47,
      "ts": "2026-09-11T16:32:30.753Z",
      "diffs": [
        {
          "row": "A2",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "weight_kg",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        },
        {
          "row": "A2",
          "field": "rpe",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @60kg RPE8 rest 90s"
        }
      ],
      "context": "context/A2.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A2.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A3",
      "seed": 2,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1323,
      "cost_usd": 0.00013635,
      "tokens_prompt": 733,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:31.242Z",
      "diffs": [
        {
          "row": "A3",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "A3",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "A3",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 BW"
        }
      ],
      "context": "context/A3.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A3.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A3",
      "seed": 1,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1670,
      "cost_usd": 0.00013695,
      "tokens_prompt": 733,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:31.291Z",
      "diffs": [
        {
          "row": "A3",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "A3",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "A3",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 BW"
        }
      ],
      "context": "context/A3.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A3.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A4",
      "seed": 1,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 80
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 80,
            "rest_seconds": null,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 876,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:31.303Z",
      "diffs": [
        {
          "row": "A4",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "A4",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "A4",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "8/6/4 @80kg"
        }
      ],
      "context": "context/A4.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A4.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A6",
      "seed": 1,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 40,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 40,
            "rest_seconds": 90,
            "rpe": null,
            "note": "休息90秒"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 848,
      "cost_usd": 0.0001392,
      "tokens_prompt": 740,
      "tokens_completion": 47,
      "ts": "2026-09-11T16:32:32.152Z",
      "diffs": [
        {
          "row": "A6",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "A6",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "A6",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "A6",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 @40kg 休息90秒"
        }
      ],
      "context": "context/A6.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A6.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A5",
      "seed": 1,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": "descanso 2 min"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1278,
      "cost_usd": 0.00013965,
      "tokens_prompt": 739,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:32.255Z",
      "diffs": [
        {
          "row": "A5",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A5",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A5",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "A5",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg descanso 2 min"
        }
      ],
      "context": "context/A5.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A5.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A5",
      "seed": 3,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": "descanso 2 min"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1140,
      "cost_usd": 0.00013965,
      "tokens_prompt": 739,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:32.432Z",
      "diffs": [
        {
          "row": "A5",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A5",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A5",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "A5",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg descanso 2 min"
        }
      ],
      "context": "context/A5.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A5.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A4",
      "seed": 2,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 80
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 80,
            "rest_seconds": null,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1802,
      "cost_usd": 0.00013755,
      "tokens_prompt": 737,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:32.555Z",
      "diffs": [
        {
          "row": "A4",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "A4",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "A4",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "8/6/4 @80kg"
        }
      ],
      "context": "context/A4.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A4.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A3",
      "seed": 3,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2450,
      "cost_usd": 0.00013695,
      "tokens_prompt": 733,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:32.589Z",
      "diffs": [
        {
          "row": "A3",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "A3",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "A3",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 BW"
        }
      ],
      "context": "context/A3.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A3.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A5",
      "seed": 2,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": "descanso 2 min"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2082,
      "cost_usd": 0.00014025,
      "tokens_prompt": 739,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:33.325Z",
      "diffs": [
        {
          "row": "A5",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A5",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "A5",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "A5",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg descanso 2 min"
        }
      ],
      "context": "context/A5.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A5.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A4",
      "seed": 3,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 80
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 80,
            "rest_seconds": null,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2652,
      "cost_usd": 0.00013755,
      "tokens_prompt": 737,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:33.476Z",
      "diffs": [
        {
          "row": "A4",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "A4",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "A4",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "8/6/4 @80kg"
        }
      ],
      "context": "context/A4.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A4.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B1",
      "seed": 2,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "heavy-ish, last set to failure"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 961,
      "cost_usd": 0.0001413,
      "tokens_prompt": 742,
      "tokens_completion": 50,
      "ts": "2026-09-11T16:32:33.517Z",
      "diffs": [
        {
          "row": "B1",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "B1",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "B1",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 sets of 8, heavy-ish, last set to failure"
        }
      ],
      "context": "context/B1.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B1.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A6",
      "seed": 2,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 40,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 40,
            "rest_seconds": 90,
            "rpe": null,
            "note": "休息90秒"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1551,
      "cost_usd": 0.0001398,
      "tokens_prompt": 740,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:33.703Z",
      "diffs": [
        {
          "row": "A6",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "A6",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "A6",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "A6",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 @40kg 休息90秒"
        }
      ],
      "context": "context/A6.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A6.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B1",
      "seed": 3,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "heavy-ish, last set to failure"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1715,
      "cost_usd": 0.0001419,
      "tokens_prompt": 742,
      "tokens_completion": 51,
      "ts": "2026-09-11T16:32:34.304Z",
      "diffs": [
        {
          "row": "B1",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "B1",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "B1",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 sets of 8, heavy-ish, last set to failure"
        }
      ],
      "context": "context/B1.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B1.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B2",
      "seed": 1,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "working up to 140kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1017,
      "cost_usd": 0.00014115,
      "tokens_prompt": 745,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:34.343Z",
      "diffs": [
        {
          "row": "B2",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "B2",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "B2",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "ladder 5,4,3,2,1 working up to 140kg"
        }
      ],
      "context": "context/B2.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B2.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B2",
      "seed": 2,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "working up to 140kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 932,
      "cost_usd": 0.00014115,
      "tokens_prompt": 745,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:34.408Z",
      "diffs": [
        {
          "row": "B2",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "B2",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "B2",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "ladder 5,4,3,2,1 working up to 140kg"
        }
      ],
      "context": "context/B2.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B2.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B2",
      "seed": 3,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "working up to 140kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 893,
      "cost_usd": 0.00014115,
      "tokens_prompt": 745,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:34.410Z",
      "diffs": [
        {
          "row": "B2",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "B2",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "B2",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "ladder 5,4,3,2,1 working up to 140kg"
        }
      ],
      "context": "context/B2.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B2.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "A6",
      "seed": 3,
      "band": "A",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 40,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 40,
            "rest_seconds": 90,
            "rpe": null,
            "note": "休息90秒"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2292,
      "cost_usd": 0.0001398,
      "tokens_prompt": 740,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:34.547Z",
      "diffs": [
        {
          "row": "A6",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "A6",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "A6",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "A6",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 @40kg 休息90秒"
        }
      ],
      "context": "context/A6.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/A6.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B1",
      "seed": 1,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "heavy-ish, last set to failure"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2844,
      "cost_usd": 0.0001419,
      "tokens_prompt": 742,
      "tokens_completion": 51,
      "ts": "2026-09-11T16:32:35.276Z",
      "diffs": [
        {
          "row": "B1",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "B1",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "B1",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 sets of 8, heavy-ish, last set to failure"
        }
      ],
      "context": "context/B1.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B1.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B3",
      "seed": 3,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "work up to a heavy triple, then two back-off sets at 85%"
          }
        ]
      },
      "score_line": 33.3,
      "fields": 3,
      "ok": 1,
      "invented": 0,
      "missed": 2,
      "weight_zero": 0,
      "latency_ms": 984,
      "cost_usd": 0.000147,
      "tokens_prompt": 744,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:32:35.328Z",
      "diffs": [
        {
          "row": "B3",
          "field": "sets",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "B3",
          "field": "reps",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "B3",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "work up to a heavy triple, then two back-off sets at 85%"
        }
      ],
      "context": "context/B3.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B3.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B4",
      "seed": 2,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 12,
        "reps": 3,
        "weight": 70
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 12,
            "reps": 3,
            "weight_kg": 70,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 12 min: 3 cleans @70kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1016,
      "cost_usd": 0.000144,
      "tokens_prompt": 740,
      "tokens_completion": 55,
      "ts": "2026-09-11T16:32:35.426Z",
      "diffs": [
        {
          "row": "B4",
          "field": "sets",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "B4",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "B4",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 12 min: 3 cleans @70kg"
        }
      ],
      "context": "context/B4.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B4.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B3",
      "seed": 1,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "work up to a heavy triple, then two back-off sets at 85%"
          }
        ]
      },
      "score_line": 33.3,
      "fields": 3,
      "ok": 1,
      "invented": 0,
      "missed": 2,
      "weight_zero": 0,
      "latency_ms": 2206,
      "cost_usd": 0.0001476,
      "tokens_prompt": 744,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:32:35.909Z",
      "diffs": [
        {
          "row": "B3",
          "field": "sets",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "B3",
          "field": "reps",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "B3",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "work up to a heavy triple, then two back-off sets at 85%"
        }
      ],
      "context": "context/B3.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B3.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B3",
      "seed": 2,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "work up to a heavy triple, then two back-off sets at 85%"
          }
        ]
      },
      "score_line": 33.3,
      "fields": 3,
      "ok": 1,
      "invented": 0,
      "missed": 2,
      "weight_zero": 0,
      "latency_ms": 1759,
      "cost_usd": 0.0001476,
      "tokens_prompt": 744,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:32:36.064Z",
      "diffs": [
        {
          "row": "B3",
          "field": "sets",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "B3",
          "field": "reps",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "B3",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "work up to a heavy triple, then two back-off sets at 85%"
        }
      ],
      "context": "context/B3.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B3.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B4",
      "seed": 1,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 12,
        "reps": 3,
        "weight": 70
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 12,
            "reps": 3,
            "weight_kg": 70,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 12 min: 3 cleans @70kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1738,
      "cost_usd": 0.0001446,
      "tokens_prompt": 740,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:32:36.146Z",
      "diffs": [
        {
          "row": "B4",
          "field": "sets",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "B4",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "B4",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 12 min: 3 cleans @70kg"
        }
      ],
      "context": "context/B4.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B4.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B5",
      "seed": 2,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "AMRAP 8 min of 5 pull-ups + 10 push-ups"
          }
        ]
      },
      "score_line": 50,
      "fields": 2,
      "ok": 1,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 943,
      "cost_usd": 0.000147,
      "tokens_prompt": 744,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:32:36.220Z",
      "diffs": [
        {
          "row": "B5",
          "field": "reps",
          "expected": 5,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "B5",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "AMRAP 8 min of 5 pull-ups + 10 push-ups"
        }
      ],
      "context": "context/B5.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B5.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B5",
      "seed": 1,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "AMRAP 8 min of 5 pull-ups + 10 push-ups"
          }
        ]
      },
      "score_line": 50,
      "fields": 2,
      "ok": 1,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1795,
      "cost_usd": 0.0001476,
      "tokens_prompt": 744,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:32:36.342Z",
      "diffs": [
        {
          "row": "B5",
          "field": "reps",
          "expected": 5,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "B5",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "AMRAP 8 min of 5 pull-ups + 10 push-ups"
        }
      ],
      "context": "context/B5.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B5.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B6",
      "seed": 1,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 4,
        "reps": 12,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 12,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "pyramid 12-10-8-6 adding 5kg each set from 40kg"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1030,
      "cost_usd": 0.00014985,
      "tokens_prompt": 747,
      "tokens_completion": 63,
      "ts": "2026-09-11T16:32:36.457Z",
      "diffs": [
        {
          "row": "B6",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "B6",
          "field": "reps",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "B6",
          "field": "weight_kg",
          "expected": 40,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "pyramid 12-10-8-6 adding 5kg each set from 40kg"
        }
      ],
      "context": "context/B6.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B6.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B5",
      "seed": 3,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "AMRAP 8 min of 5 pull-ups + 10 push-ups"
          }
        ]
      },
      "score_line": 50,
      "fields": 2,
      "ok": 1,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1381,
      "cost_usd": 0.000147,
      "tokens_prompt": 744,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:32:36.710Z",
      "diffs": [
        {
          "row": "B5",
          "field": "reps",
          "expected": 5,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "B5",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "AMRAP 8 min of 5 pull-ups + 10 push-ups"
        }
      ],
      "context": "context/B5.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B5.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B4",
      "seed": 3,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 12,
        "reps": 3,
        "weight": 70
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 12,
            "reps": 3,
            "weight_kg": 70,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 12 min: 3 cleans @70kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2455,
      "cost_usd": 0.0001446,
      "tokens_prompt": 740,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:32:36.866Z",
      "diffs": [
        {
          "row": "B4",
          "field": "sets",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "B4",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "B4",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 12 min: 3 cleans @70kg"
        }
      ],
      "context": "context/B4.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B4.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B6",
      "seed": 3,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 4,
        "reps": 12,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 12,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "pyramid 12-10-8-6 adding 5kg each set from 40kg"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1235,
      "cost_usd": 0.00014985,
      "tokens_prompt": 747,
      "tokens_completion": 63,
      "ts": "2026-09-11T16:32:37.300Z",
      "diffs": [
        {
          "row": "B6",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "B6",
          "field": "reps",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "B6",
          "field": "weight_kg",
          "expected": 40,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "pyramid 12-10-8-6 adding 5kg each set from 40kg"
        }
      ],
      "context": "context/B6.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B6.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B7",
      "seed": 3,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ciężar taki żeby ostatnie 2 były trudne"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 974,
      "cost_usd": 0.0001455,
      "tokens_prompt": 750,
      "tokens_completion": 55,
      "ts": "2026-09-11T16:32:37.317Z",
      "diffs": [
        {
          "row": "B7",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "B7",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "B7",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x8 na każdą stronę, ciężar taki żeby ostatnie 2 były trudne"
        }
      ],
      "context": "context/B7.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B7.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B7",
      "seed": 2,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ciężar taki żeby ostatnie 2 były trudne"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1282,
      "cost_usd": 0.0001455,
      "tokens_prompt": 750,
      "tokens_completion": 55,
      "ts": "2026-09-11T16:32:37.502Z",
      "diffs": [
        {
          "row": "B7",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "B7",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "B7",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x8 na każdą stronę, ciężar taki żeby ostatnie 2 były trudne"
        }
      ],
      "context": "context/B7.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B7.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B8",
      "seed": 1,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "tempo 3-1-3, 70% ciężaru maksymalnego"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1120,
      "cost_usd": 0.00014865,
      "tokens_prompt": 755,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:32:37.577Z",
      "diffs": [
        {
          "row": "B8",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "B8",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "B8",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "tempo 3-1-3, 4 serie po 6 powtórzeń, 70% ciężaru maksymalnego"
        }
      ],
      "context": "context/B8.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B8.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B8",
      "seed": 3,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "tempo 3-1-3, 70% ciężaru maksymalnego"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 968,
      "cost_usd": 0.00014865,
      "tokens_prompt": 755,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:32:37.834Z",
      "diffs": [
        {
          "row": "B8",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "B8",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "B8",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "tempo 3-1-3, 4 serie po 6 powtórzeń, 70% ciężaru maksymalnego"
        }
      ],
      "context": "context/B8.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B8.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B8",
      "seed": 2,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "tempo 3-1-3, 70% ciężaru maksymalnego"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1393,
      "cost_usd": 0.00014865,
      "tokens_prompt": 755,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:32:38.104Z",
      "diffs": [
        {
          "row": "B8",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "B8",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "B8",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "tempo 3-1-3, 4 serie po 6 powtórzeń, 70% ciężaru maksymalnego"
        }
      ],
      "context": "context/B8.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B8.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C1",
      "seed": 2,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Sente o glúteo em cada repetição"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 887,
      "cost_usd": 0.00014325,
      "tokens_prompt": 739,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:32:38.204Z",
      "diffs": [
        {
          "row": "C1",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Sente o glúteo em cada repetição"
        }
      ],
      "context": "context/C1.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C1.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C2",
      "seed": 1,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 650,
      "cost_usd": 0.0001128,
      "tokens_prompt": 736,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:32:38.227Z",
      "diffs": [
        {
          "row": "C2",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 band pull-aparts between sets"
        }
      ],
      "context": "context/C2.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C2.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B6",
      "seed": 2,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 4,
        "reps": 12,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 12,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "pyramid 12-10-8-6 adding 5kg each set from 40kg"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 2344,
      "cost_usd": 0.00015045,
      "tokens_prompt": 747,
      "tokens_completion": 64,
      "ts": "2026-09-11T16:32:38.253Z",
      "diffs": [
        {
          "row": "B6",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "B6",
          "field": "reps",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "B6",
          "field": "weight_kg",
          "expected": 40,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "pyramid 12-10-8-6 adding 5kg each set from 40kg"
        }
      ],
      "context": "context/B6.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B6.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C2",
      "seed": 2,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 573,
      "cost_usd": 0.0001128,
      "tokens_prompt": 736,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:32:38.407Z",
      "diffs": [
        {
          "row": "C2",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 band pull-aparts between sets"
        }
      ],
      "context": "context/C2.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C2.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C1",
      "seed": 3,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Sente o glúteo em cada repetição"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1081,
      "cost_usd": 0.00014325,
      "tokens_prompt": 739,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:32:38.583Z",
      "diffs": [
        {
          "row": "C1",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Sente o glúteo em cada repetição"
        }
      ],
      "context": "context/C1.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C1.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "B7",
      "seed": 1,
      "band": "B",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ciężar taki żeby ostatnie 2 były trudne"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2577,
      "cost_usd": 0.0001461,
      "tokens_prompt": 750,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:32:38.723Z",
      "diffs": [
        {
          "row": "B7",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "B7",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "B7",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x8 na każdą stronę, ciężar taki żeby ostatnie 2 były trudne"
        }
      ],
      "context": "context/B7.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/B7.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C1",
      "seed": 1,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Sente o glúteo em cada repetição"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1425,
      "cost_usd": 0.00014325,
      "tokens_prompt": 739,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:32:38.726Z",
      "diffs": [
        {
          "row": "C1",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Sente o glúteo em cada repetição"
        }
      ],
      "context": "context/C1.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C1.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C3",
      "seed": 1,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Focus on bracing, film the top set"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 838,
      "cost_usd": 0.00014175,
      "tokens_prompt": 737,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:32:39.042Z",
      "diffs": [
        {
          "row": "C3",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Focus on bracing, film the top set"
        }
      ],
      "context": "context/C3.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C3.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C4",
      "seed": 3,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 528,
      "cost_usd": 0.0001128,
      "tokens_prompt": 736,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:32:39.252Z",
      "diffs": [
        {
          "row": "C4",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "zapytaj mnie jak pójdzie"
        }
      ],
      "context": "context/C4.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C4.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C3",
      "seed": 2,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Focus on bracing, film the top set"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1105,
      "cost_usd": 0.00014175,
      "tokens_prompt": 737,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:32:39.333Z",
      "diffs": [
        {
          "row": "C3",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Focus on bracing, film the top set"
        }
      ],
      "context": "context/C3.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C3.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C2",
      "seed": 3,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1674,
      "cost_usd": 0.0001134,
      "tokens_prompt": 736,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:32:39.778Z",
      "diffs": [
        {
          "row": "C2",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 band pull-aparts between sets"
        }
      ],
      "context": "context/C2.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C2.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-en-barbell-coach",
      "seed": 2,
      "band": "A",
      "locale": "en",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 180
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 180,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 859,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:39.902Z",
      "diffs": [
        {
          "row": "M-A-en-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-en-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-en-barbell-coach",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-en-barbell-coach",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg r180"
        }
      ],
      "context": "context/M-A-en-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-en-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-en-barbell-coach",
      "seed": 1,
      "band": "A",
      "locale": "en",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 180
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 180,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1490,
      "cost_usd": 0.00013755,
      "tokens_prompt": 737,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:40.216Z",
      "diffs": [
        {
          "row": "M-A-en-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-en-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-en-barbell-coach",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-en-barbell-coach",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg r180"
        }
      ],
      "context": "context/M-A-en-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-en-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-en-bodyweight-self",
      "seed": 1,
      "band": "A",
      "locale": "en",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 905,
      "cost_usd": 0.00013635,
      "tokens_prompt": 733,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:40.238Z",
      "diffs": [
        {
          "row": "M-A-en-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-en-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-en-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 BW"
        }
      ],
      "context": "context/M-A-en-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-en-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C3",
      "seed": 3,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Focus on bracing, film the top set"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2027,
      "cost_usd": 0.00014235,
      "tokens_prompt": 737,
      "tokens_completion": 53,
      "ts": "2026-09-11T16:32:40.280Z",
      "diffs": [
        {
          "row": "C3",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Focus on bracing, film the top set"
        }
      ],
      "context": "context/C3.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C3.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C4",
      "seed": 2,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "zapytaj mnie jak pójdzie"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1750,
      "cost_usd": 0.0001416,
      "tokens_prompt": 736,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:32:40.333Z",
      "diffs": [
        {
          "row": "C4",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "zapytaj mnie jak pójdzie"
        }
      ],
      "context": "context/C4.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C4.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-en-barbell-coach",
      "seed": 3,
      "band": "A",
      "locale": "en",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 180
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 180,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1280,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:40.533Z",
      "diffs": [
        {
          "row": "M-A-en-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-en-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-en-barbell-coach",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-en-barbell-coach",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg r180"
        }
      ],
      "context": "context/M-A-en-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-en-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-en-bodyweight-self",
      "seed": 2,
      "band": "A",
      "locale": "en",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 858,
      "cost_usd": 0.00013635,
      "tokens_prompt": 733,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:40.636Z",
      "diffs": [
        {
          "row": "M-A-en-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-en-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-en-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 BW"
        }
      ],
      "context": "context/M-A-en-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-en-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-en-conditioning-coach",
      "seed": 2,
      "band": "A",
      "locale": "en",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 20,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 20,
            "rest_seconds": 60,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 790,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:41.029Z",
      "diffs": [
        {
          "row": "M-A-en-conditioning-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-en-conditioning-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-en-conditioning-coach",
          "field": "weight_kg",
          "expected": 20,
          "actual": 20,
          "verdict": "match"
        },
        {
          "row": "M-A-en-conditioning-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @20kg r60"
        }
      ],
      "context": "context/M-A-en-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-en-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-en-conditioning-coach",
      "seed": 1,
      "band": "A",
      "locale": "en",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 20,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 20,
            "rest_seconds": 60,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 813,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:41.030Z",
      "diffs": [
        {
          "row": "M-A-en-conditioning-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-en-conditioning-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-en-conditioning-coach",
          "field": "weight_kg",
          "expected": 20,
          "actual": 20,
          "verdict": "match"
        },
        {
          "row": "M-A-en-conditioning-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @20kg r60"
        }
      ],
      "context": "context/M-A-en-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-en-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "C4",
      "seed": 1,
      "band": "C",
      "locale": "",
      "modality": "",
      "voice": "",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "zapytaj mnie jak pójdzie"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2708,
      "cost_usd": 0.0001416,
      "tokens_prompt": 736,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:32:41.115Z",
      "diffs": [
        {
          "row": "C4",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "zapytaj mnie jak pójdzie"
        }
      ],
      "context": "context/C4.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/C4.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-pl-barbell-self",
      "seed": 1,
      "band": "A",
      "locale": "pl",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": "przerwa 2 min"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 959,
      "cost_usd": 0.00014055,
      "tokens_prompt": 741,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:41.293Z",
      "diffs": [
        {
          "row": "M-A-pl-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-barbell-self",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-barbell-self",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg przerwa 2 min"
        }
      ],
      "context": "context/M-A-pl-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-pl-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-en-bodyweight-self",
      "seed": 3,
      "band": "A",
      "locale": "en",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2283,
      "cost_usd": 0.00013695,
      "tokens_prompt": 733,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:42.186Z",
      "diffs": [
        {
          "row": "M-A-en-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-en-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-en-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 BW"
        }
      ],
      "context": "context/M-A-en-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-en-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-pl-endurance-self",
      "seed": 1,
      "band": "A",
      "locale": "pl",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 6,
        "reps": 8,
        "weight": 0,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 6,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": 90,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 999,
      "cost_usd": 0.0001374,
      "tokens_prompt": 736,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:42.292Z",
      "diffs": [
        {
          "row": "M-A-pl-endurance-self",
          "field": "sets",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-endurance-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-endurance-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-endurance-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "6x8 @0 r90"
        }
      ],
      "context": "context/M-A-pl-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-pl-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-pl-bodyweight-coach",
      "seed": 3,
      "band": "A",
      "locale": "pl",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 12,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 12,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1242,
      "cost_usd": 0.00013635,
      "tokens_prompt": 733,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:42.357Z",
      "diffs": [
        {
          "row": "M-A-pl-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-bodyweight-coach",
          "field": "reps",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x12 BW"
        }
      ],
      "context": "context/M-A-pl-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-pl-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-pl-bodyweight-coach",
      "seed": 2,
      "band": "A",
      "locale": "pl",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 12,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 12,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1363,
      "cost_usd": 0.00013635,
      "tokens_prompt": 733,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:42.393Z",
      "diffs": [
        {
          "row": "M-A-pl-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-bodyweight-coach",
          "field": "reps",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x12 BW"
        }
      ],
      "context": "context/M-A-pl-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-pl-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-en-conditioning-coach",
      "seed": 3,
      "band": "A",
      "locale": "en",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 20,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 20,
            "rest_seconds": 60,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2352,
      "cost_usd": 0.00013755,
      "tokens_prompt": 737,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:42.632Z",
      "diffs": [
        {
          "row": "M-A-en-conditioning-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-en-conditioning-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-en-conditioning-coach",
          "field": "weight_kg",
          "expected": 20,
          "actual": 20,
          "verdict": "match"
        },
        {
          "row": "M-A-en-conditioning-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @20kg r60"
        }
      ],
      "context": "context/M-A-en-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-en-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-pl-barbell-self",
      "seed": 2,
      "band": "A",
      "locale": "pl",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": "przerwa 2 min"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2235,
      "cost_usd": 0.00014115,
      "tokens_prompt": 741,
      "tokens_completion": 50,
      "ts": "2026-09-11T16:32:42.768Z",
      "diffs": [
        {
          "row": "M-A-pl-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-barbell-self",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-barbell-self",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg przerwa 2 min"
        }
      ],
      "context": "context/M-A-pl-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-pl-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-pl-barbell-self",
      "seed": 3,
      "band": "A",
      "locale": "pl",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": "przerwa 2 min"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2238,
      "cost_usd": 0.00014115,
      "tokens_prompt": 741,
      "tokens_completion": 50,
      "ts": "2026-09-11T16:32:42.874Z",
      "diffs": [
        {
          "row": "M-A-pl-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-barbell-self",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-barbell-self",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg przerwa 2 min"
        }
      ],
      "context": "context/M-A-pl-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-pl-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-pl-bodyweight-coach",
      "seed": 1,
      "band": "A",
      "locale": "pl",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 12,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 12,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1940,
      "cost_usd": 0.00013695,
      "tokens_prompt": 733,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:42.970Z",
      "diffs": [
        {
          "row": "M-A-pl-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-bodyweight-coach",
          "field": "reps",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x12 BW"
        }
      ],
      "context": "context/M-A-pl-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-pl-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-es-barbell-coach",
      "seed": 1,
      "band": "A",
      "locale": "es",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": 80,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": 80,
            "rest_seconds": 90,
            "rpe": null,
            "note": "descanso 90s"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1051,
      "cost_usd": 0.00013965,
      "tokens_prompt": 739,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:43.409Z",
      "diffs": [
        {
          "row": "M-A-es-barbell-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-es-barbell-coach",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-es-barbell-coach",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        },
        {
          "row": "M-A-es-barbell-coach",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x6 @80kg descanso 90s"
        }
      ],
      "context": "context/M-A-es-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-es-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-pl-endurance-self",
      "seed": 2,
      "band": "A",
      "locale": "pl",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 6,
        "reps": 8,
        "weight": 0,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 6,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": 90,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1342,
      "cost_usd": 0.0001374,
      "tokens_prompt": 736,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:43.528Z",
      "diffs": [
        {
          "row": "M-A-pl-endurance-self",
          "field": "sets",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-endurance-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-endurance-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-endurance-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "6x8 @0 r90"
        }
      ],
      "context": "context/M-A-pl-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-pl-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-es-barbell-coach",
      "seed": 2,
      "band": "A",
      "locale": "es",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": 80,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": 80,
            "rest_seconds": 90,
            "rpe": null,
            "note": "descanso 90s"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1175,
      "cost_usd": 0.00013965,
      "tokens_prompt": 739,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:43.568Z",
      "diffs": [
        {
          "row": "M-A-es-barbell-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-es-barbell-coach",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-es-barbell-coach",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        },
        {
          "row": "M-A-es-barbell-coach",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x6 @80kg descanso 90s"
        }
      ],
      "context": "context/M-A-es-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-es-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-es-conditioning-self",
      "seed": 2,
      "band": "A",
      "locale": "es",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 40,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 40,
            "rest_seconds": 60,
            "rpe": null,
            "note": "@40kg r60"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 862,
      "cost_usd": 0.00013935,
      "tokens_prompt": 737,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:43.736Z",
      "diffs": [
        {
          "row": "M-A-es-conditioning-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-es-conditioning-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-es-conditioning-self",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "M-A-es-conditioning-self",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @40kg r60"
        }
      ],
      "context": "context/M-A-es-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-es-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-pl-endurance-self",
      "seed": 3,
      "band": "A",
      "locale": "pl",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 6,
        "reps": 8,
        "weight": 0,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 6,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": 90,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1631,
      "cost_usd": 0.000138,
      "tokens_prompt": 736,
      "tokens_completion": 46,
      "ts": "2026-09-11T16:32:43.924Z",
      "diffs": [
        {
          "row": "M-A-pl-endurance-self",
          "field": "sets",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-endurance-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-endurance-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-pl-endurance-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "6x8 @0 r90"
        }
      ],
      "context": "context/M-A-pl-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-pl-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-es-barbell-coach",
      "seed": 3,
      "band": "A",
      "locale": "es",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": 80,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": 80,
            "rest_seconds": 90,
            "rpe": null,
            "note": "descanso 90s"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1680,
      "cost_usd": 0.00014025,
      "tokens_prompt": 739,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:44.313Z",
      "diffs": [
        {
          "row": "M-A-es-barbell-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-es-barbell-coach",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-es-barbell-coach",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        },
        {
          "row": "M-A-es-barbell-coach",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x6 @80kg descanso 90s"
        }
      ],
      "context": "context/M-A-es-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-es-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-es-endurance-coach",
      "seed": 3,
      "band": "A",
      "locale": "es",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 8,
        "reps": 1,
        "weight": null,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 8,
            "reps": 1,
            "weight_kg": null,
            "rest_seconds": 60,
            "rpe": null,
            "note": "descanso 60s"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 991,
      "cost_usd": 0.00013935,
      "tokens_prompt": 737,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:44.559Z",
      "diffs": [
        {
          "row": "M-A-es-endurance-coach",
          "field": "sets",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-es-endurance-coach",
          "field": "reps",
          "expected": 1,
          "actual": 1,
          "verdict": "match"
        },
        {
          "row": "M-A-es-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "M-A-es-endurance-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "8x200m descanso 60s"
        }
      ],
      "context": "context/M-A-es-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-es-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-fr-barbell-self",
      "seed": 1,
      "band": "A",
      "locale": "fr",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 90,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 90,
            "rest_seconds": 120,
            "rpe": null,
            "note": "repos 2 min"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 951,
      "cost_usd": 0.00013905,
      "tokens_prompt": 739,
      "tokens_completion": 47,
      "ts": "2026-09-11T16:32:44.688Z",
      "diffs": [
        {
          "row": "M-A-fr-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-barbell-self",
          "field": "weight_kg",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-barbell-self",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @90kg repos 2 min"
        }
      ],
      "context": "context/M-A-fr-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-fr-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-es-conditioning-self",
      "seed": 3,
      "band": "A",
      "locale": "es",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 40,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 40,
            "rest_seconds": 60,
            "rpe": null,
            "note": "@40kg r60"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1822,
      "cost_usd": 0.00013995,
      "tokens_prompt": 737,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:44.792Z",
      "diffs": [
        {
          "row": "M-A-es-conditioning-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-es-conditioning-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-es-conditioning-self",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "M-A-es-conditioning-self",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @40kg r60"
        }
      ],
      "context": "context/M-A-es-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-es-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-es-endurance-coach",
      "seed": 2,
      "band": "A",
      "locale": "es",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 8,
        "reps": 1,
        "weight": null,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 8,
            "reps": 1,
            "weight_kg": null,
            "rest_seconds": 60,
            "rpe": null,
            "note": "descanso 60s"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1302,
      "cost_usd": 0.00013935,
      "tokens_prompt": 737,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:44.831Z",
      "diffs": [
        {
          "row": "M-A-es-endurance-coach",
          "field": "sets",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-es-endurance-coach",
          "field": "reps",
          "expected": 1,
          "actual": 1,
          "verdict": "match"
        },
        {
          "row": "M-A-es-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "M-A-es-endurance-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "8x200m descanso 60s"
        }
      ],
      "context": "context/M-A-es-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-es-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-es-conditioning-self",
      "seed": 1,
      "band": "A",
      "locale": "es",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 40,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 40,
            "rest_seconds": 60,
            "rpe": null,
            "note": "@40kg r60"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2426,
      "cost_usd": 0.00013995,
      "tokens_prompt": 737,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:45.194Z",
      "diffs": [
        {
          "row": "M-A-es-conditioning-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-es-conditioning-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-es-conditioning-self",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "M-A-es-conditioning-self",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @40kg r60"
        }
      ],
      "context": "context/M-A-es-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-es-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-fr-barbell-self",
      "seed": 3,
      "band": "A",
      "locale": "fr",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 90,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 90,
            "rest_seconds": 120,
            "rpe": null,
            "note": "repos 2 min"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 935,
      "cost_usd": 0.00013905,
      "tokens_prompt": 739,
      "tokens_completion": 47,
      "ts": "2026-09-11T16:32:45.249Z",
      "diffs": [
        {
          "row": "M-A-fr-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-barbell-self",
          "field": "weight_kg",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-barbell-self",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @90kg repos 2 min"
        }
      ],
      "context": "context/M-A-fr-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-fr-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-fr-barbell-self",
      "seed": 2,
      "band": "A",
      "locale": "fr",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 90,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 90,
            "rest_seconds": 120,
            "rpe": null,
            "note": "repos 2 min"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2116,
      "cost_usd": 0.00013965,
      "tokens_prompt": 739,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:46.040Z",
      "diffs": [
        {
          "row": "M-A-fr-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-barbell-self",
          "field": "weight_kg",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-barbell-self",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @90kg repos 2 min"
        }
      ],
      "context": "context/M-A-fr-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-fr-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-es-endurance-coach",
      "seed": 1,
      "band": "A",
      "locale": "es",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 8,
        "reps": 1,
        "weight": null,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 8,
            "reps": 200,
            "weight_kg": null,
            "rest_seconds": 60,
            "rpe": null,
            "note": "descanso 60s"
          }
        ]
      },
      "score_line": 75,
      "fields": 4,
      "ok": 3,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 2827,
      "cost_usd": 0.00013995,
      "tokens_prompt": 737,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:46.237Z",
      "diffs": [
        {
          "row": "M-A-es-endurance-coach",
          "field": "sets",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-es-endurance-coach",
          "field": "reps",
          "expected": 1,
          "actual": 200,
          "verdict": "miss"
        },
        {
          "row": "M-A-es-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "M-A-es-endurance-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "8x200m descanso 60s"
        }
      ],
      "context": "context/M-A-es-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-es-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-fr-bodyweight-coach",
      "seed": 2,
      "band": "A",
      "locale": "fr",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "poids du corps"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1820,
      "cost_usd": 0.00013905,
      "tokens_prompt": 735,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:46.508Z",
      "diffs": [
        {
          "row": "M-A-fr-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-bodyweight-coach",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 poids du corps"
        }
      ],
      "context": "context/M-A-fr-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-fr-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-fr-bodyweight-coach",
      "seed": 1,
      "band": "A",
      "locale": "fr",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "poids du corps"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2216,
      "cost_usd": 0.00013905,
      "tokens_prompt": 735,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:46.775Z",
      "diffs": [
        {
          "row": "M-A-fr-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-bodyweight-coach",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 poids du corps"
        }
      ],
      "context": "context/M-A-fr-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-fr-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-fr-conditioning-self",
      "seed": 2,
      "band": "A",
      "locale": "fr",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": 30,
        "rest": 45
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": 30,
            "rest_seconds": 45,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1829,
      "cost_usd": 0.00013755,
      "tokens_prompt": 737,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:47.024Z",
      "diffs": [
        {
          "row": "M-A-fr-conditioning-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-conditioning-self",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-conditioning-self",
          "field": "weight_kg",
          "expected": 30,
          "actual": 30,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-conditioning-self",
          "field": "rest_seconds",
          "expected": 45,
          "actual": 45,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x6 @30kg r45"
        }
      ],
      "context": "context/M-A-fr-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-fr-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-fr-bodyweight-coach",
      "seed": 3,
      "band": "A",
      "locale": "fr",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "poids du corps"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2427,
      "cost_usd": 0.00013905,
      "tokens_prompt": 735,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:47.219Z",
      "diffs": [
        {
          "row": "M-A-fr-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-bodyweight-coach",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 poids du corps"
        }
      ],
      "context": "context/M-A-fr-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-fr-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-fr-conditioning-self",
      "seed": 3,
      "band": "A",
      "locale": "fr",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": 30,
        "rest": 45
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": 30,
            "rest_seconds": 45,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1982,
      "cost_usd": 0.00013755,
      "tokens_prompt": 737,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:47.231Z",
      "diffs": [
        {
          "row": "M-A-fr-conditioning-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-conditioning-self",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-conditioning-self",
          "field": "weight_kg",
          "expected": 30,
          "actual": 30,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-conditioning-self",
          "field": "rest_seconds",
          "expected": 45,
          "actual": 45,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x6 @30kg r45"
        }
      ],
      "context": "context/M-A-fr-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-fr-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-fr-conditioning-self",
      "seed": 1,
      "band": "A",
      "locale": "fr",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": 30,
        "rest": 45
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": 30,
            "rest_seconds": 45,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2419,
      "cost_usd": 0.00013755,
      "tokens_prompt": 737,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:47.250Z",
      "diffs": [
        {
          "row": "M-A-fr-conditioning-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-conditioning-self",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-conditioning-self",
          "field": "weight_kg",
          "expected": 30,
          "actual": 30,
          "verdict": "match"
        },
        {
          "row": "M-A-fr-conditioning-self",
          "field": "rest_seconds",
          "expected": 45,
          "actual": 45,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x6 @30kg r45"
        }
      ],
      "context": "context/M-A-fr-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-fr-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-de-barbell-coach",
      "seed": 2,
      "band": "A",
      "locale": "de",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 180
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 180,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1128,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:47.365Z",
      "diffs": [
        {
          "row": "M-A-de-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-barbell-coach",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-de-barbell-coach",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg r180"
        }
      ],
      "context": "context/M-A-de-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-de-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-de-barbell-coach",
      "seed": 3,
      "band": "A",
      "locale": "de",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 180
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 180,
            "rpe": null,
            "note": "@100kg r180"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 863,
      "cost_usd": 0.00013935,
      "tokens_prompt": 737,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:47.371Z",
      "diffs": [
        {
          "row": "M-A-de-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-barbell-coach",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-de-barbell-coach",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg r180"
        }
      ],
      "context": "context/M-A-de-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-de-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-de-bodyweight-self",
      "seed": 1,
      "band": "A",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 982,
      "cost_usd": 0.00013635,
      "tokens_prompt": 733,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:47.757Z",
      "diffs": [
        {
          "row": "M-A-de-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-de-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-de-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 BW"
        }
      ],
      "context": "context/M-A-de-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-de-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-de-barbell-coach",
      "seed": 1,
      "band": "A",
      "locale": "de",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 180
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 180,
            "rpe": null,
            "note": "@100kg r180"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1973,
      "cost_usd": 0.00013995,
      "tokens_prompt": 737,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:48.013Z",
      "diffs": [
        {
          "row": "M-A-de-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-barbell-coach",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-de-barbell-coach",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg r180"
        }
      ],
      "context": "context/M-A-de-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-de-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-de-bodyweight-self",
      "seed": 3,
      "band": "A",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 823,
      "cost_usd": 0.00013635,
      "tokens_prompt": 733,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:48.043Z",
      "diffs": [
        {
          "row": "M-A-de-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-de-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-de-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 BW"
        }
      ],
      "context": "context/M-A-de-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-de-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-de-endurance-coach",
      "seed": 1,
      "band": "A",
      "locale": "de",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 0,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 0,
            "rest_seconds": 60,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 902,
      "cost_usd": 0.0001374,
      "tokens_prompt": 736,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:48.133Z",
      "diffs": [
        {
          "row": "M-A-de-endurance-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-endurance-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-endurance-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-de-endurance-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @0 r60"
        }
      ],
      "context": "context/M-A-de-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-de-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-de-bodyweight-self",
      "seed": 2,
      "band": "A",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1127,
      "cost_usd": 0.00013635,
      "tokens_prompt": 733,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:48.151Z",
      "diffs": [
        {
          "row": "M-A-de-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-de-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-de-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 BW"
        }
      ],
      "context": "context/M-A-de-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-de-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-de-endurance-coach",
      "seed": 3,
      "band": "A",
      "locale": "de",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 0,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 0,
            "rest_seconds": 60,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 878,
      "cost_usd": 0.0001374,
      "tokens_prompt": 736,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:48.243Z",
      "diffs": [
        {
          "row": "M-A-de-endurance-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-endurance-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-endurance-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-de-endurance-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @0 r60"
        }
      ],
      "context": "context/M-A-de-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-de-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-it-conditioning-coach",
      "seed": 2,
      "band": "A",
      "locale": "it",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 25,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 25,
            "rest_seconds": 60,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 940,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:49.073Z",
      "diffs": [
        {
          "row": "M-A-it-conditioning-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-it-conditioning-coach",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-it-conditioning-coach",
          "field": "weight_kg",
          "expected": 25,
          "actual": 25,
          "verdict": "match"
        },
        {
          "row": "M-A-it-conditioning-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 @25kg r60"
        }
      ],
      "context": "context/M-A-it-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-it-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-it-conditioning-coach",
      "seed": 3,
      "band": "A",
      "locale": "it",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 25,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 25,
            "rest_seconds": 60,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1093,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:49.245Z",
      "diffs": [
        {
          "row": "M-A-it-conditioning-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-it-conditioning-coach",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-it-conditioning-coach",
          "field": "weight_kg",
          "expected": 25,
          "actual": 25,
          "verdict": "match"
        },
        {
          "row": "M-A-it-conditioning-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 @25kg r60"
        }
      ],
      "context": "context/M-A-it-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-it-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-it-endurance-self",
      "seed": 1,
      "band": "A",
      "locale": "it",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 0,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": 90,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1211,
      "cost_usd": 0.0001374,
      "tokens_prompt": 736,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:49.454Z",
      "diffs": [
        {
          "row": "M-A-it-endurance-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-it-endurance-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-it-endurance-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-it-endurance-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @0 r90"
        }
      ],
      "context": "context/M-A-it-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-it-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-de-endurance-coach",
      "seed": 2,
      "band": "A",
      "locale": "de",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 0,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 0,
            "rest_seconds": 60,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2385,
      "cost_usd": 0.000138,
      "tokens_prompt": 736,
      "tokens_completion": 46,
      "ts": "2026-09-11T16:32:49.635Z",
      "diffs": [
        {
          "row": "M-A-de-endurance-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-endurance-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-de-endurance-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-de-endurance-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @0 r60"
        }
      ],
      "context": "context/M-A-de-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-de-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-it-barbell-self",
      "seed": 1,
      "band": "A",
      "locale": "it",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 70,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 70,
            "rest_seconds": 90,
            "rpe": null,
            "note": "riposo 90s"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2382,
      "cost_usd": 0.0001404,
      "tokens_prompt": 740,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:49.753Z",
      "diffs": [
        {
          "row": "M-A-it-barbell-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-it-barbell-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-it-barbell-self",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        },
        {
          "row": "M-A-it-barbell-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @70kg riposo 90s"
        }
      ],
      "context": "context/M-A-it-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-it-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-it-barbell-self",
      "seed": 2,
      "band": "A",
      "locale": "it",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 70,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 70,
            "rest_seconds": 90,
            "rpe": null,
            "note": "riposo 90s"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2323,
      "cost_usd": 0.0001404,
      "tokens_prompt": 740,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:50.080Z",
      "diffs": [
        {
          "row": "M-A-it-barbell-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-it-barbell-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-it-barbell-self",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        },
        {
          "row": "M-A-it-barbell-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @70kg riposo 90s"
        }
      ],
      "context": "context/M-A-it-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-it-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-it-conditioning-coach",
      "seed": 1,
      "band": "A",
      "locale": "it",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 25,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 25,
            "rest_seconds": 60,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2348,
      "cost_usd": 0.00013755,
      "tokens_prompt": 737,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:50.391Z",
      "diffs": [
        {
          "row": "M-A-it-conditioning-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-it-conditioning-coach",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-it-conditioning-coach",
          "field": "weight_kg",
          "expected": 25,
          "actual": 25,
          "verdict": "match"
        },
        {
          "row": "M-A-it-conditioning-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 @25kg r60"
        }
      ],
      "context": "context/M-A-it-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-it-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-ru-barbell-coach",
      "seed": 2,
      "band": "A",
      "locale": "ru",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": "отдых 2 мин"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 950,
      "cost_usd": 0.00013965,
      "tokens_prompt": 739,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:50.585Z",
      "diffs": [
        {
          "row": "M-A-ru-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-barbell-coach",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-barbell-coach",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg отдых 2 мин"
        }
      ],
      "context": "context/M-A-ru-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-ru-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-ru-barbell-coach",
      "seed": 3,
      "band": "A",
      "locale": "ru",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": "отдых 2 мин"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 989,
      "cost_usd": 0.00013965,
      "tokens_prompt": 739,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:50.743Z",
      "diffs": [
        {
          "row": "M-A-ru-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-barbell-coach",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-barbell-coach",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg отдых 2 мин"
        }
      ],
      "context": "context/M-A-ru-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-ru-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-it-barbell-self",
      "seed": 3,
      "band": "A",
      "locale": "it",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 70,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 70,
            "rest_seconds": 90,
            "rpe": null,
            "note": "riposo 90s"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2932,
      "cost_usd": 0.0001404,
      "tokens_prompt": 740,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:50.945Z",
      "diffs": [
        {
          "row": "M-A-it-barbell-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-it-barbell-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-it-barbell-self",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        },
        {
          "row": "M-A-it-barbell-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @70kg riposo 90s"
        }
      ],
      "context": "context/M-A-it-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-it-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-ru-bodyweight-self",
      "seed": 1,
      "band": "A",
      "locale": "ru",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "своим весом"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 960,
      "cost_usd": 0.00013905,
      "tokens_prompt": 735,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:51.040Z",
      "diffs": [
        {
          "row": "M-A-ru-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 своим весом"
        }
      ],
      "context": "context/M-A-ru-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-ru-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-it-endurance-self",
      "seed": 2,
      "band": "A",
      "locale": "it",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 0,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": 90,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2110,
      "cost_usd": 0.000138,
      "tokens_prompt": 736,
      "tokens_completion": 46,
      "ts": "2026-09-11T16:32:51.184Z",
      "diffs": [
        {
          "row": "M-A-it-endurance-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-it-endurance-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-it-endurance-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-it-endurance-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @0 r90"
        }
      ],
      "context": "context/M-A-it-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-it-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-ru-barbell-coach",
      "seed": 1,
      "band": "A",
      "locale": "ru",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 100,
        "rest": 120
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": "отдых 2 мин"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1763,
      "cost_usd": 0.00014025,
      "tokens_prompt": 739,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:51.217Z",
      "diffs": [
        {
          "row": "M-A-ru-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-barbell-coach",
          "field": "weight_kg",
          "expected": 100,
          "actual": 100,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-barbell-coach",
          "field": "rest_seconds",
          "expected": 120,
          "actual": 120,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @100kg отдых 2 мин"
        }
      ],
      "context": "context/M-A-ru-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-ru-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-it-endurance-self",
      "seed": 3,
      "band": "A",
      "locale": "it",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 0,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": 90,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2135,
      "cost_usd": 0.000138,
      "tokens_prompt": 736,
      "tokens_completion": 46,
      "ts": "2026-09-11T16:32:51.380Z",
      "diffs": [
        {
          "row": "M-A-it-endurance-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-it-endurance-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-it-endurance-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-it-endurance-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x8 @0 r90"
        }
      ],
      "context": "context/M-A-it-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-it-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-ru-conditioning-coach",
      "seed": 1,
      "band": "A",
      "locale": "ru",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": 40,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": 40,
            "rest_seconds": 60,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 989,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:51.732Z",
      "diffs": [
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x6 @40kg r60"
        }
      ],
      "context": "context/M-A-ru-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-ru-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-zh-barbell-self",
      "seed": 1,
      "band": "A",
      "locale": "zh",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 80,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 80,
            "rest_seconds": 90,
            "rpe": null,
            "note": "休息90秒"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 856,
      "cost_usd": 0.0001392,
      "tokens_prompt": 740,
      "tokens_completion": 47,
      "ts": "2026-09-11T16:32:52.040Z",
      "diffs": [
        {
          "row": "M-A-zh-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-barbell-self",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-barbell-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @80kg 休息90秒"
        }
      ],
      "context": "context/M-A-zh-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-zh-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-ru-conditioning-coach",
      "seed": 3,
      "band": "A",
      "locale": "ru",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": 40,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": 40,
            "rest_seconds": 60,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1308,
      "cost_usd": 0.00013695,
      "tokens_prompt": 737,
      "tokens_completion": 44,
      "ts": "2026-09-11T16:32:52.349Z",
      "diffs": [
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x6 @40kg r60"
        }
      ],
      "context": "context/M-A-ru-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-ru-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-zh-barbell-self",
      "seed": 3,
      "band": "A",
      "locale": "zh",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 80,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 80,
            "rest_seconds": 90,
            "rpe": null,
            "note": "休息90秒"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1134,
      "cost_usd": 0.0001392,
      "tokens_prompt": 740,
      "tokens_completion": 47,
      "ts": "2026-09-11T16:32:52.514Z",
      "diffs": [
        {
          "row": "M-A-zh-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-barbell-self",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-barbell-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @80kg 休息90秒"
        }
      ],
      "context": "context/M-A-zh-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-zh-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-zh-barbell-self",
      "seed": 2,
      "band": "A",
      "locale": "zh",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": 80,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 80,
            "rest_seconds": 90,
            "rpe": null,
            "note": "休息90秒"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1387,
      "cost_usd": 0.0001392,
      "tokens_prompt": 740,
      "tokens_completion": 47,
      "ts": "2026-09-11T16:32:52.604Z",
      "diffs": [
        {
          "row": "M-A-zh-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-barbell-self",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-barbell-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5x5 @80kg 休息90秒"
        }
      ],
      "context": "context/M-A-zh-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-zh-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-ru-conditioning-coach",
      "seed": 2,
      "band": "A",
      "locale": "ru",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": 40,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": 40,
            "rest_seconds": 60,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1834,
      "cost_usd": 0.00013755,
      "tokens_prompt": 737,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:52.779Z",
      "diffs": [
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-conditioning-coach",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4x6 @40kg r60"
        }
      ],
      "context": "context/M-A-ru-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-ru-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-ru-bodyweight-self",
      "seed": 2,
      "band": "A",
      "locale": "ru",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "своим весом"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2404,
      "cost_usd": 0.00013905,
      "tokens_prompt": 735,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:52.795Z",
      "diffs": [
        {
          "row": "M-A-ru-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 своим весом"
        }
      ],
      "context": "context/M-A-ru-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-ru-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-ru-bodyweight-self",
      "seed": 3,
      "band": "A",
      "locale": "ru",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "своим весом"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2240,
      "cost_usd": 0.00013905,
      "tokens_prompt": 735,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:52.826Z",
      "diffs": [
        {
          "row": "M-A-ru-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-ru-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 своим весом"
        }
      ],
      "context": "context/M-A-ru-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-ru-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-zh-bodyweight-coach",
      "seed": 3,
      "band": "A",
      "locale": "zh",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "自重"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 799,
      "cost_usd": 0.0001371,
      "tokens_prompt": 734,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:53.149Z",
      "diffs": [
        {
          "row": "M-A-zh-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-bodyweight-coach",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 自重"
        }
      ],
      "context": "context/M-A-zh-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-zh-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-zh-endurance-self",
      "seed": 2,
      "band": "A",
      "locale": "zh",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 6,
        "reps": 8,
        "weight": 0,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 6,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": 60,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 820,
      "cost_usd": 0.0001374,
      "tokens_prompt": 736,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:53.425Z",
      "diffs": [
        {
          "row": "M-A-zh-endurance-self",
          "field": "sets",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-endurance-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-endurance-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-endurance-self",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "6x8 @0 r60"
        }
      ],
      "context": "context/M-A-zh-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-zh-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-zh-endurance-self",
      "seed": 1,
      "band": "A",
      "locale": "zh",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 6,
        "reps": 8,
        "weight": 0,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 6,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": 60,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 915,
      "cost_usd": 0.0001374,
      "tokens_prompt": 736,
      "tokens_completion": 45,
      "ts": "2026-09-11T16:32:53.429Z",
      "diffs": [
        {
          "row": "M-A-zh-endurance-self",
          "field": "sets",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-endurance-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-endurance-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-endurance-self",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "6x8 @0 r60"
        }
      ],
      "context": "context/M-A-zh-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-zh-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-zh-bodyweight-coach",
      "seed": 1,
      "band": "A",
      "locale": "zh",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "自重"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1827,
      "cost_usd": 0.0001377,
      "tokens_prompt": 734,
      "tokens_completion": 46,
      "ts": "2026-09-11T16:32:53.559Z",
      "diffs": [
        {
          "row": "M-A-zh-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-bodyweight-coach",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 自重"
        }
      ],
      "context": "context/M-A-zh-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-zh-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-en-barbell-self",
      "seed": 2,
      "band": "B",
      "locale": "en",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "work up to a heavy triple, then two back-off sets at 85%"
          }
        ]
      },
      "score_line": 33.3,
      "fields": 3,
      "ok": 1,
      "invented": 0,
      "missed": 2,
      "weight_zero": 0,
      "latency_ms": 1056,
      "cost_usd": 0.000147,
      "tokens_prompt": 744,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:32:53.882Z",
      "diffs": [
        {
          "row": "M-B-en-barbell-self",
          "field": "sets",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-en-barbell-self",
          "field": "reps",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-en-barbell-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "work up to a heavy triple, then two back-off sets at 85%"
        }
      ],
      "context": "context/M-B-en-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-en-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-en-barbell-self",
      "seed": 3,
      "band": "B",
      "locale": "en",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "work up to a heavy triple, then two back-off sets at 85%"
          }
        ]
      },
      "score_line": 33.3,
      "fields": 3,
      "ok": 1,
      "invented": 0,
      "missed": 2,
      "weight_zero": 0,
      "latency_ms": 973,
      "cost_usd": 0.000147,
      "tokens_prompt": 744,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:32:54.123Z",
      "diffs": [
        {
          "row": "M-B-en-barbell-self",
          "field": "sets",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-en-barbell-self",
          "field": "reps",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-en-barbell-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "work up to a heavy triple, then two back-off sets at 85%"
        }
      ],
      "context": "context/M-B-en-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-en-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-zh-bodyweight-coach",
      "seed": 2,
      "band": "A",
      "locale": "zh",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "自重"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2300,
      "cost_usd": 0.0001377,
      "tokens_prompt": 734,
      "tokens_completion": 46,
      "ts": "2026-09-11T16:32:54.340Z",
      "diffs": [
        {
          "row": "M-A-zh-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-bodyweight-coach",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3x10 自重"
        }
      ],
      "context": "context/M-A-zh-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-zh-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-A-zh-endurance-self",
      "seed": 3,
      "band": "A",
      "locale": "zh",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 6,
        "reps": 8,
        "weight": 0,
        "rest": 60
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 6,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": 60,
            "rpe": null,
            "note": "@0"
          }
        ]
      },
      "score_line": 100,
      "fields": 4,
      "ok": 4,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1728,
      "cost_usd": 0.000138,
      "tokens_prompt": 736,
      "tokens_completion": 46,
      "ts": "2026-09-11T16:32:54.508Z",
      "diffs": [
        {
          "row": "M-A-zh-endurance-self",
          "field": "sets",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-endurance-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-endurance-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "M-A-zh-endurance-self",
          "field": "rest_seconds",
          "expected": 60,
          "actual": 60,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "6x8 @0 r60"
        }
      ],
      "context": "context/M-A-zh-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-A-zh-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-en-conditioning-self",
      "seed": 1,
      "band": "B",
      "locale": "en",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 12,
        "reps": 3,
        "weight": 70
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 12,
            "reps": 3,
            "weight_kg": 70,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 12 min: 3 cleans at 70 kilograms"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 962,
      "cost_usd": 0.00014475,
      "tokens_prompt": 741,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:32:54.844Z",
      "diffs": [
        {
          "row": "M-B-en-conditioning-self",
          "field": "sets",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-B-en-conditioning-self",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-en-conditioning-self",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 12 min: 3 cleans at 70 kilograms"
        }
      ],
      "context": "context/M-B-en-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-en-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-en-barbell-self",
      "seed": 1,
      "band": "B",
      "locale": "en",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "work up to a heavy triple, then two back-off sets at 85%"
          }
        ]
      },
      "score_line": 33.3,
      "fields": 3,
      "ok": 1,
      "invented": 0,
      "missed": 2,
      "weight_zero": 0,
      "latency_ms": 2162,
      "cost_usd": 0.0001476,
      "tokens_prompt": 744,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:32:54.958Z",
      "diffs": [
        {
          "row": "M-B-en-barbell-self",
          "field": "sets",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-en-barbell-self",
          "field": "reps",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-en-barbell-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "work up to a heavy triple, then two back-off sets at 85%"
        }
      ],
      "context": "context/M-B-en-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-en-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-en-conditioning-self",
      "seed": 2,
      "band": "B",
      "locale": "en",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 12,
        "reps": 3,
        "weight": 70
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 12,
            "reps": 3,
            "weight_kg": 70,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 12 min: 3 cleans at 70 kilograms"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 892,
      "cost_usd": 0.00014475,
      "tokens_prompt": 741,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:32:55.016Z",
      "diffs": [
        {
          "row": "M-B-en-conditioning-self",
          "field": "sets",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-B-en-conditioning-self",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-en-conditioning-self",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 12 min: 3 cleans at 70 kilograms"
        }
      ],
      "context": "context/M-B-en-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-en-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-en-bodyweight-coach",
      "seed": 1,
      "band": "B",
      "locale": "en",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "last set to failure"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1661,
      "cost_usd": 0.00013995,
      "tokens_prompt": 741,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:55.087Z",
      "diffs": [
        {
          "row": "M-B-en-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-en-bodyweight-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-en-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 sets of 8 pull-ups, last set to failure"
        }
      ],
      "context": "context/M-B-en-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-en-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-en-conditioning-self",
      "seed": 3,
      "band": "B",
      "locale": "en",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 12,
        "reps": 3,
        "weight": 70
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 12,
            "reps": 3,
            "weight_kg": 70,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 12 min: 3 cleans at 70 kilograms"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1003,
      "cost_usd": 0.00014475,
      "tokens_prompt": 741,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:32:55.344Z",
      "diffs": [
        {
          "row": "M-B-en-conditioning-self",
          "field": "sets",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-B-en-conditioning-self",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-en-conditioning-self",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 12 min: 3 cleans at 70 kilograms"
        }
      ],
      "context": "context/M-B-en-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-en-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-en-bodyweight-coach",
      "seed": 2,
      "band": "B",
      "locale": "en",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "last set to failure"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 2072,
      "cost_usd": 0.00013995,
      "tokens_prompt": 741,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:55.501Z",
      "diffs": [
        {
          "row": "M-B-en-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-en-bodyweight-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-en-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 sets of 8 pull-ups, last set to failure"
        }
      ],
      "context": "context/M-B-en-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-en-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-en-bodyweight-coach",
      "seed": 3,
      "band": "B",
      "locale": "en",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "last set to failure"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 2357,
      "cost_usd": 0.00013995,
      "tokens_prompt": 741,
      "tokens_completion": 48,
      "ts": "2026-09-11T16:32:55.916Z",
      "diffs": [
        {
          "row": "M-B-en-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-en-bodyweight-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-en-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 sets of 8 pull-ups, last set to failure"
        }
      ],
      "context": "context/M-B-en-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-en-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-pl-bodyweight-self",
      "seed": 2,
      "band": "B",
      "locale": "pl",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ciężar taki żeby ostatnie 2 były trudne"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 927,
      "cost_usd": 0.0001458,
      "tokens_prompt": 752,
      "tokens_completion": 55,
      "ts": "2026-09-11T16:32:56.014Z",
      "diffs": [
        {
          "row": "M-B-pl-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-bodyweight-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-bodyweight-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 serie po 8 na każdą stronę, ciężar taki żeby ostatnie 2 były trudne"
        }
      ],
      "context": "context/M-B-pl-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-pl-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-pl-bodyweight-self",
      "seed": 1,
      "band": "B",
      "locale": "pl",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ciężar taki żeby ostatnie 2 były trudne"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1007,
      "cost_usd": 0.0001458,
      "tokens_prompt": 752,
      "tokens_completion": 55,
      "ts": "2026-09-11T16:32:56.024Z",
      "diffs": [
        {
          "row": "M-B-pl-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-bodyweight-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-bodyweight-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 serie po 8 na każdą stronę, ciężar taki żeby ostatnie 2 były trudne"
        }
      ],
      "context": "context/M-B-pl-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-pl-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-pl-endurance-coach",
      "seed": 1,
      "band": "B",
      "locale": "pl",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "drabinka 5,4,3,2,1 na rowerze, bez podanego obciążenia"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1028,
      "cost_usd": 0.00015375,
      "tokens_prompt": 753,
      "tokens_completion": 68,
      "ts": "2026-09-11T16:32:56.529Z",
      "diffs": [
        {
          "row": "M-B-pl-endurance-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-endurance-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "drabinka 5,4,3,2,1 na rowerze, bez podanego obciążenia"
        }
      ],
      "context": "context/M-B-pl-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-pl-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-pl-barbell-coach",
      "seed": 1,
      "band": "B",
      "locale": "pl",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "tempo 3-1-3, 70% ciężaru maksymalnego"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2222,
      "cost_usd": 0.00014925,
      "tokens_prompt": 755,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:32:56.731Z",
      "diffs": [
        {
          "row": "M-B-pl-barbell-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-barbell-coach",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "tempo 3-1-3, 4 serie po 6 powtórzeń, 70% ciężaru maksymalnego"
        }
      ],
      "context": "context/M-B-pl-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-pl-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-pl-barbell-coach",
      "seed": 2,
      "band": "B",
      "locale": "pl",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "tempo 3-1-3, 70% ciężaru maksymalnego"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1890,
      "cost_usd": 0.00014925,
      "tokens_prompt": 755,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:32:56.735Z",
      "diffs": [
        {
          "row": "M-B-pl-barbell-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-barbell-coach",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "tempo 3-1-3, 4 serie po 6 powtórzeń, 70% ciężaru maksymalnego"
        }
      ],
      "context": "context/M-B-pl-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-pl-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-es-barbell-self",
      "seed": 1,
      "band": "B",
      "locale": "es",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 12,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 12,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "pirámide 12-10-8-6 sumando 5kg cada serie desde 40kg"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 994,
      "cost_usd": 0.0001515,
      "tokens_prompt": 750,
      "tokens_completion": 65,
      "ts": "2026-09-11T16:32:57.018Z",
      "diffs": [
        {
          "row": "M-B-es-barbell-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-es-barbell-self",
          "field": "reps",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-B-es-barbell-self",
          "field": "weight_kg",
          "expected": 40,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "pirámide 12-10-8-6 sumando 5kg cada serie desde 40kg"
        }
      ],
      "context": "context/M-B-es-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-es-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-pl-bodyweight-self",
      "seed": 3,
      "band": "B",
      "locale": "pl",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ciężar taki żeby ostatnie 2 były trudne"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2202,
      "cost_usd": 0.0001464,
      "tokens_prompt": 752,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:32:57.546Z",
      "diffs": [
        {
          "row": "M-B-pl-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-bodyweight-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-bodyweight-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 serie po 8 na każdą stronę, ciężar taki żeby ostatnie 2 były trudne"
        }
      ],
      "context": "context/M-B-pl-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-pl-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-es-barbell-self",
      "seed": 2,
      "band": "B",
      "locale": "es",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 12,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 12,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "pirámide 12-10-8-6 sumando 5kg cada serie desde 40kg"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1187,
      "cost_usd": 0.0001515,
      "tokens_prompt": 750,
      "tokens_completion": 65,
      "ts": "2026-09-11T16:32:57.717Z",
      "diffs": [
        {
          "row": "M-B-es-barbell-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-es-barbell-self",
          "field": "reps",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-B-es-barbell-self",
          "field": "weight_kg",
          "expected": 40,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "pirámide 12-10-8-6 sumando 5kg cada serie desde 40kg"
        }
      ],
      "context": "context/M-B-es-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-es-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-es-conditioning-coach",
      "seed": 1,
      "band": "B",
      "locale": "es",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 10,
        "reps": 5,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 10,
            "reps": 5,
            "weight_kg": 40,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 10 minutos: 5 thrusters a 40kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1070,
      "cost_usd": 0.0001455,
      "tokens_prompt": 742,
      "tokens_completion": 57,
      "ts": "2026-09-11T16:32:57.806Z",
      "diffs": [
        {
          "row": "M-B-es-conditioning-coach",
          "field": "sets",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-B-es-conditioning-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-es-conditioning-coach",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 10 minutos: 5 thrusters a 40kg"
        }
      ],
      "context": "context/M-B-es-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-es-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-es-conditioning-coach",
      "seed": 2,
      "band": "B",
      "locale": "es",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 10,
        "reps": 5,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 10,
            "reps": 5,
            "weight_kg": 40,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 10 minutos: 5 thrusters a 40kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 893,
      "cost_usd": 0.0001455,
      "tokens_prompt": 742,
      "tokens_completion": 57,
      "ts": "2026-09-11T16:32:57.911Z",
      "diffs": [
        {
          "row": "M-B-es-conditioning-coach",
          "field": "sets",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-B-es-conditioning-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-es-conditioning-coach",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 10 minutos: 5 thrusters a 40kg"
        }
      ],
      "context": "context/M-B-es-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-es-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-pl-barbell-coach",
      "seed": 3,
      "band": "B",
      "locale": "pl",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 6,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "tempo 3-1-3, 70% ciężaru maksymalnego"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 3174,
      "cost_usd": 0.00014925,
      "tokens_prompt": 755,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:32:58.132Z",
      "diffs": [
        {
          "row": "M-B-pl-barbell-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-barbell-coach",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "tempo 3-1-3, 4 serie po 6 powtórzeń, 70% ciężaru maksymalnego"
        }
      ],
      "context": "context/M-B-pl-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-pl-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-pl-endurance-coach",
      "seed": 2,
      "band": "B",
      "locale": "pl",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "drabinka 5,4,3,2,1 na rowerze, bez podanego obciążenia"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2384,
      "cost_usd": 0.00015435,
      "tokens_prompt": 753,
      "tokens_completion": 69,
      "ts": "2026-09-11T16:32:58.301Z",
      "diffs": [
        {
          "row": "M-B-pl-endurance-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-endurance-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "drabinka 5,4,3,2,1 na rowerze, bez podanego obciążenia"
        }
      ],
      "context": "context/M-B-pl-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-pl-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-pl-endurance-coach",
      "seed": 3,
      "band": "B",
      "locale": "pl",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "drabinka 5,4,3,2,1 na rowerze, bez podanego obciążenia"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2614,
      "cost_usd": 0.00015435,
      "tokens_prompt": 753,
      "tokens_completion": 69,
      "ts": "2026-09-11T16:32:58.628Z",
      "diffs": [
        {
          "row": "M-B-pl-endurance-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-endurance-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-pl-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "drabinka 5,4,3,2,1 na rowerze, bez podanego obciążenia"
        }
      ],
      "context": "context/M-B-pl-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-pl-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-es-conditioning-coach",
      "seed": 3,
      "band": "B",
      "locale": "es",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 10,
        "reps": 5,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 10,
            "reps": 5,
            "weight_kg": 40,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 10 minutos: 5 thrusters a 40kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1116,
      "cost_usd": 0.0001455,
      "tokens_prompt": 742,
      "tokens_completion": 57,
      "ts": "2026-09-11T16:32:58.663Z",
      "diffs": [
        {
          "row": "M-B-es-conditioning-coach",
          "field": "sets",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-B-es-conditioning-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-es-conditioning-coach",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 10 minutos: 5 thrusters a 40kg"
        }
      ],
      "context": "context/M-B-es-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-es-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-es-endurance-self",
      "seed": 2,
      "band": "B",
      "locale": "es",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 1,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "trote de vuelta como descanso"
          }
        ]
      },
      "score_line": 33.3,
      "fields": 3,
      "ok": 1,
      "invented": 0,
      "missed": 2,
      "weight_zero": 0,
      "latency_ms": 872,
      "cost_usd": 0.000141,
      "tokens_prompt": 744,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:58.678Z",
      "diffs": [
        {
          "row": "M-B-es-endurance-self",
          "field": "sets",
          "expected": 4,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-es-endurance-self",
          "field": "reps",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-es-endurance-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 repeticiones de 400 metros, trote de vuelta como descanso"
        }
      ],
      "context": "context/M-B-es-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-es-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-es-barbell-self",
      "seed": 3,
      "band": "B",
      "locale": "es",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 12,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 12,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "pirámide 12-10-8-6 sumando 5kg cada serie desde 40kg"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 2090,
      "cost_usd": 0.0001521,
      "tokens_prompt": 750,
      "tokens_completion": 66,
      "ts": "2026-09-11T16:32:58.822Z",
      "diffs": [
        {
          "row": "M-B-es-barbell-self",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-es-barbell-self",
          "field": "reps",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-B-es-barbell-self",
          "field": "weight_kg",
          "expected": 40,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "pirámide 12-10-8-6 sumando 5kg cada serie desde 40kg"
        }
      ],
      "context": "context/M-B-es-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-es-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-es-endurance-self",
      "seed": 1,
      "band": "B",
      "locale": "es",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 1,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "trote de vuelta como descanso"
          }
        ]
      },
      "score_line": 33.3,
      "fields": 3,
      "ok": 1,
      "invented": 0,
      "missed": 2,
      "weight_zero": 0,
      "latency_ms": 1821,
      "cost_usd": 0.0001416,
      "tokens_prompt": 744,
      "tokens_completion": 50,
      "ts": "2026-09-11T16:32:59.538Z",
      "diffs": [
        {
          "row": "M-B-es-endurance-self",
          "field": "sets",
          "expected": 4,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-es-endurance-self",
          "field": "reps",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-es-endurance-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 repeticiones de 400 metros, trote de vuelta como descanso"
        }
      ],
      "context": "context/M-B-es-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-es-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-fr-barbell-coach",
      "seed": 2,
      "band": "B",
      "locale": "fr",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 2,
            "reps": 3,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "monte jusqu'à un lourd triple, puis deux séries de retour à 85%"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1322,
      "cost_usd": 0.0001476,
      "tokens_prompt": 744,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:32:59.623Z",
      "diffs": [
        {
          "row": "M-B-fr-barbell-coach",
          "field": "sets",
          "expected": 3,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "M-B-fr-barbell-coach",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "monte jusqu'à un lourd triple, puis deux séries de retour à 85%"
        }
      ],
      "context": "context/M-B-fr-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-fr-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-fr-bodyweight-self",
      "seed": 1,
      "band": "B",
      "locale": "fr",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "dernières répétitions difficiles"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 979,
      "cost_usd": 0.0001404,
      "tokens_prompt": 740,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:32:59.643Z",
      "diffs": [
        {
          "row": "M-B-fr-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 séries de 10 dips, dernières répétitions difficiles"
        }
      ],
      "context": "context/M-B-fr-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-fr-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-fr-barbell-coach",
      "seed": 1,
      "band": "B",
      "locale": "fr",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 2,
            "reps": 3,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "deux séries de retour à 85%"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1654,
      "cost_usd": 0.0001434,
      "tokens_prompt": 744,
      "tokens_completion": 53,
      "ts": "2026-09-11T16:32:59.786Z",
      "diffs": [
        {
          "row": "M-B-fr-barbell-coach",
          "field": "sets",
          "expected": 3,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "M-B-fr-barbell-coach",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "monte jusqu'à un lourd triple, puis deux séries de retour à 85%"
        }
      ],
      "context": "context/M-B-fr-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-fr-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-fr-barbell-coach",
      "seed": 3,
      "band": "B",
      "locale": "fr",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 2,
            "reps": 3,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "deux séries de retour à 85%"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1309,
      "cost_usd": 0.0001428,
      "tokens_prompt": 744,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:32:59.937Z",
      "diffs": [
        {
          "row": "M-B-fr-barbell-coach",
          "field": "sets",
          "expected": 3,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "M-B-fr-barbell-coach",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "monte jusqu'à un lourd triple, puis deux séries de retour à 85%"
        }
      ],
      "context": "context/M-B-fr-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-fr-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-es-endurance-self",
      "seed": 3,
      "band": "B",
      "locale": "es",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 4,
        "reps": 1,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "trote de vuelta como descanso"
          }
        ]
      },
      "score_line": 33.3,
      "fields": 3,
      "ok": 1,
      "invented": 0,
      "missed": 2,
      "weight_zero": 0,
      "latency_ms": 2217,
      "cost_usd": 0.0001416,
      "tokens_prompt": 744,
      "tokens_completion": 50,
      "ts": "2026-09-11T16:33:00.129Z",
      "diffs": [
        {
          "row": "M-B-es-endurance-self",
          "field": "sets",
          "expected": 4,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-es-endurance-self",
          "field": "reps",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "M-B-es-endurance-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 repeticiones de 400 metros, trote de vuelta como descanso"
        }
      ],
      "context": "context/M-B-es-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-es-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-fr-bodyweight-self",
      "seed": 3,
      "band": "B",
      "locale": "fr",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "dernières répétitions difficiles"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1348,
      "cost_usd": 0.0001404,
      "tokens_prompt": 740,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:33:00.170Z",
      "diffs": [
        {
          "row": "M-B-fr-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 séries de 10 dips, dernières répétitions difficiles"
        }
      ],
      "context": "context/M-B-fr-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-fr-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-fr-bodyweight-self",
      "seed": 2,
      "band": "B",
      "locale": "fr",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 10,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 10,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "dernières répétitions difficiles"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1842,
      "cost_usd": 0.000141,
      "tokens_prompt": 740,
      "tokens_completion": 50,
      "ts": "2026-09-11T16:33:00.521Z",
      "diffs": [
        {
          "row": "M-B-fr-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-bodyweight-self",
          "field": "reps",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 séries de 10 dips, dernières répétitions difficiles"
        }
      ],
      "context": "context/M-B-fr-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-fr-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-fr-conditioning-coach",
      "seed": 1,
      "band": "B",
      "locale": "fr",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 8,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "AMRAP 8 min de 5 tractions et 10 pompes"
          }
        ]
      },
      "score_line": 100,
      "fields": 2,
      "ok": 2,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1124,
      "cost_usd": 0.000147,
      "tokens_prompt": 744,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:33:00.662Z",
      "diffs": [
        {
          "row": "M-B-fr-conditioning-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-conditioning-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "AMRAP 8 min de 5 tractions et 10 pompes"
        }
      ],
      "context": "context/M-B-fr-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-fr-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-de-barbell-self",
      "seed": 2,
      "band": "B",
      "locale": "de",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "arbeite dich hoch bis 140kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 947,
      "cost_usd": 0.0001428,
      "tokens_prompt": 748,
      "tokens_completion": 51,
      "ts": "2026-09-11T16:33:00.885Z",
      "diffs": [
        {
          "row": "M-B-de-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-de-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-de-barbell-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Leiter 5,4,3,2,1, arbeite dich hoch bis 140kg"
        }
      ],
      "context": "context/M-B-de-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-de-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-de-barbell-self",
      "seed": 3,
      "band": "B",
      "locale": "de",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "arbeite dich hoch bis 140kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 844,
      "cost_usd": 0.0001428,
      "tokens_prompt": 748,
      "tokens_completion": 51,
      "ts": "2026-09-11T16:33:00.974Z",
      "diffs": [
        {
          "row": "M-B-de-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-de-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-de-barbell-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Leiter 5,4,3,2,1, arbeite dich hoch bis 140kg"
        }
      ],
      "context": "context/M-B-de-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-de-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-fr-conditioning-coach",
      "seed": 2,
      "band": "B",
      "locale": "fr",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 8,
            "reps": 5,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "AMRAP 8 min de 5 tractions et 10 pompes"
          }
        ]
      },
      "score_line": 50,
      "fields": 2,
      "ok": 1,
      "invented": 1,
      "missed": 0,
      "weight_zero": 1,
      "latency_ms": 1693,
      "cost_usd": 0.0001476,
      "tokens_prompt": 744,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:33:01.317Z",
      "diffs": [
        {
          "row": "M-B-fr-conditioning-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-conditioning-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": 0,
          "verdict": "weight_zero"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "AMRAP 8 min de 5 tractions et 10 pompes"
        }
      ],
      "context": "context/M-B-fr-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-fr-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-de-bodyweight-coach",
      "seed": 1,
      "band": "B",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "letzter Satz bis zum Versagen"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1440,
      "cost_usd": 0.0001425,
      "tokens_prompt": 746,
      "tokens_completion": 51,
      "ts": "2026-09-11T16:33:01.611Z",
      "diffs": [
        {
          "row": "M-B-de-bodyweight-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-de-bodyweight-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-de-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 Sätze mit 8 Klimmzügen, letzter Satz bis zum Versagen"
        }
      ],
      "context": "context/M-B-de-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-de-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-de-bodyweight-coach",
      "seed": 3,
      "band": "B",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "letzter Satz bis zum Versagen"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1043,
      "cost_usd": 0.0001425,
      "tokens_prompt": 746,
      "tokens_completion": 51,
      "ts": "2026-09-11T16:33:01.706Z",
      "diffs": [
        {
          "row": "M-B-de-bodyweight-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-de-bodyweight-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-de-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 Sätze mit 8 Klimmzügen, letzter Satz bis zum Versagen"
        }
      ],
      "context": "context/M-B-de-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-de-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-de-barbell-self",
      "seed": 1,
      "band": "B",
      "locale": "de",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "arbeite dich hoch bis 140kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1979,
      "cost_usd": 0.0001434,
      "tokens_prompt": 748,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:33:01.766Z",
      "diffs": [
        {
          "row": "M-B-de-barbell-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-de-barbell-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-de-barbell-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Leiter 5,4,3,2,1, arbeite dich hoch bis 140kg"
        }
      ],
      "context": "context/M-B-de-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-de-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-fr-conditioning-coach",
      "seed": 3,
      "band": "B",
      "locale": "fr",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 8,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "AMRAP 8 min de 5 tractions et 10 pompes"
          }
        ]
      },
      "score_line": 100,
      "fields": 2,
      "ok": 2,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2535,
      "cost_usd": 0.0001476,
      "tokens_prompt": 744,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:33:02.178Z",
      "diffs": [
        {
          "row": "M-B-fr-conditioning-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-fr-conditioning-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "AMRAP 8 min de 5 tractions et 10 pompes"
        }
      ],
      "context": "context/M-B-fr-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-fr-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-de-bodyweight-coach",
      "seed": 2,
      "band": "B",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "letzter Satz bis zum Versagen"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1764,
      "cost_usd": 0.0001431,
      "tokens_prompt": 746,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:33:02.285Z",
      "diffs": [
        {
          "row": "M-B-de-bodyweight-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-de-bodyweight-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-de-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 Sätze mit 8 Klimmzügen, letzter Satz bis zum Versagen"
        }
      ],
      "context": "context/M-B-de-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-de-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-de-endurance-self",
      "seed": 3,
      "band": "B",
      "locale": "de",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 1,
        "weight": null,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": 90,
            "rpe": null,
            "note": "Wiederholungen à 200 Meter Ruder, Pause 90 Sekunden"
          }
        ]
      },
      "score_line": 75,
      "fields": 4,
      "ok": 3,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1107,
      "cost_usd": 0.0001464,
      "tokens_prompt": 744,
      "tokens_completion": 58,
      "ts": "2026-09-11T16:33:02.424Z",
      "diffs": [
        {
          "row": "M-B-de-endurance-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-de-endurance-self",
          "field": "reps",
          "expected": 1,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "M-B-de-endurance-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "M-B-de-endurance-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5 Wiederholungen à 200 Meter Ruder, Pause 90 Sekunden"
        }
      ],
      "context": "context/M-B-de-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-de-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-it-barbell-coach",
      "seed": 2,
      "band": "B",
      "locale": "it",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 2,
            "reps": 3,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "due serie di scarico all'85%"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 972,
      "cost_usd": 0.0001434,
      "tokens_prompt": 748,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:33:02.678Z",
      "diffs": [
        {
          "row": "M-B-it-barbell-coach",
          "field": "sets",
          "expected": 3,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "M-B-it-barbell-coach",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-it-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "sali fino a un triplo pesante, poi due serie di scarico all'85%"
        }
      ],
      "context": "context/M-B-it-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-it-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-de-endurance-self",
      "seed": 2,
      "band": "B",
      "locale": "de",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 1,
        "weight": null,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": 90,
            "rpe": null,
            "note": "Wiederholungen à 200 Meter Ruder, Pause 90 Sekunden"
          }
        ]
      },
      "score_line": 75,
      "fields": 4,
      "ok": 3,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1906,
      "cost_usd": 0.000147,
      "tokens_prompt": 744,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:33:02.881Z",
      "diffs": [
        {
          "row": "M-B-de-endurance-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-de-endurance-self",
          "field": "reps",
          "expected": 1,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "M-B-de-endurance-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "M-B-de-endurance-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5 Wiederholungen à 200 Meter Ruder, Pause 90 Sekunden"
        }
      ],
      "context": "context/M-B-de-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-de-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-it-barbell-coach",
      "seed": 1,
      "band": "B",
      "locale": "it",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 2,
            "reps": 3,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "due serie di scarico all'85%"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1773,
      "cost_usd": 0.000144,
      "tokens_prompt": 748,
      "tokens_completion": 53,
      "ts": "2026-09-11T16:33:03.384Z",
      "diffs": [
        {
          "row": "M-B-it-barbell-coach",
          "field": "sets",
          "expected": 3,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "M-B-it-barbell-coach",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-it-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "sali fino a un triplo pesante, poi due serie di scarico all'85%"
        }
      ],
      "context": "context/M-B-it-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-it-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-it-conditioning-self",
      "seed": 2,
      "band": "B",
      "locale": "it",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 12,
        "reps": 3,
        "weight": 70
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 12,
            "reps": 3,
            "weight_kg": 70,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 12 minuti: 3 clean a 70kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1207,
      "cost_usd": 0.00014475,
      "tokens_prompt": 741,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:33:03.492Z",
      "diffs": [
        {
          "row": "M-B-it-conditioning-self",
          "field": "sets",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-B-it-conditioning-self",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-it-conditioning-self",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 12 minuti: 3 clean a 70kg"
        }
      ],
      "context": "context/M-B-it-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-it-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-it-endurance-coach",
      "seed": 2,
      "band": "B",
      "locale": "it",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 1,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 400,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ritorno di corsa lenta come recupero"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 860,
      "cost_usd": 0.00014325,
      "tokens_prompt": 747,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:33:03.742Z",
      "diffs": [
        {
          "row": "M-B-it-endurance-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-it-endurance-coach",
          "field": "reps",
          "expected": 1,
          "actual": 400,
          "verdict": "miss"
        },
        {
          "row": "M-B-it-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 ripetizioni di 400 metri, ritorno di corsa lenta come recupero"
        }
      ],
      "context": "context/M-B-it-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-it-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-it-conditioning-self",
      "seed": 1,
      "band": "B",
      "locale": "it",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 12,
        "reps": 3,
        "weight": 70
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 12,
            "reps": 3,
            "weight_kg": 70,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 12 minuti: 3 clean a 70kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1779,
      "cost_usd": 0.00014535,
      "tokens_prompt": 741,
      "tokens_completion": 57,
      "ts": "2026-09-11T16:33:03.958Z",
      "diffs": [
        {
          "row": "M-B-it-conditioning-self",
          "field": "sets",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-B-it-conditioning-self",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-it-conditioning-self",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 12 minuti: 3 clean a 70kg"
        }
      ],
      "context": "context/M-B-it-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-it-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-it-endurance-coach",
      "seed": 3,
      "band": "B",
      "locale": "it",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 1,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 400,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ritorno di corsa lenta come recupero"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1078,
      "cost_usd": 0.00014325,
      "tokens_prompt": 747,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:33:04.462Z",
      "diffs": [
        {
          "row": "M-B-it-endurance-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-it-endurance-coach",
          "field": "reps",
          "expected": 1,
          "actual": 400,
          "verdict": "miss"
        },
        {
          "row": "M-B-it-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 ripetizioni di 400 metri, ritorno di corsa lenta come recupero"
        }
      ],
      "context": "context/M-B-it-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-it-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-de-endurance-self",
      "seed": 1,
      "band": "B",
      "locale": "de",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 5,
        "reps": 1,
        "weight": null,
        "rest": 90
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": 90,
            "rpe": null,
            "note": "Wiederholungen à 200 Meter Ruder, Pause 90 Sekunden"
          }
        ]
      },
      "score_line": 75,
      "fields": 4,
      "ok": 3,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 3580,
      "cost_usd": 0.0001464,
      "tokens_prompt": 744,
      "tokens_completion": 58,
      "ts": "2026-09-11T16:33:04.466Z",
      "diffs": [
        {
          "row": "M-B-de-endurance-self",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-de-endurance-self",
          "field": "reps",
          "expected": 1,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "M-B-de-endurance-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "M-B-de-endurance-self",
          "field": "rest_seconds",
          "expected": 90,
          "actual": 90,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "5 Wiederholungen à 200 Meter Ruder, Pause 90 Sekunden"
        }
      ],
      "context": "context/M-B-de-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-de-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-it-barbell-coach",
      "seed": 3,
      "band": "B",
      "locale": "it",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 2,
            "reps": 3,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "sali fino a un triplo pesante, poi due serie di scarico all'85%"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 2749,
      "cost_usd": 0.0001506,
      "tokens_prompt": 748,
      "tokens_completion": 64,
      "ts": "2026-09-11T16:33:04.515Z",
      "diffs": [
        {
          "row": "M-B-it-barbell-coach",
          "field": "sets",
          "expected": 3,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "M-B-it-barbell-coach",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-it-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "sali fino a un triplo pesante, poi due serie di scarico all'85%"
        }
      ],
      "context": "context/M-B-it-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-it-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-ru-barbell-self",
      "seed": 2,
      "band": "B",
      "locale": "ru",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 2,
            "reps": 3,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "работай до тяжёлого тройного, затем два подхода на 85%"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1005,
      "cost_usd": 0.0001485,
      "tokens_prompt": 746,
      "tokens_completion": 61,
      "ts": "2026-09-11T16:33:04.748Z",
      "diffs": [
        {
          "row": "M-B-ru-barbell-self",
          "field": "sets",
          "expected": 3,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "M-B-ru-barbell-self",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-barbell-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "работай до тяжёлого тройного, затем два подхода на 85%"
        }
      ],
      "context": "context/M-B-ru-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-ru-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-it-endurance-coach",
      "seed": 1,
      "band": "B",
      "locale": "it",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 1,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 400,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ritorno di corsa lenta come recupero"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 2379,
      "cost_usd": 0.00014385,
      "tokens_prompt": 747,
      "tokens_completion": 53,
      "ts": "2026-09-11T16:33:05.057Z",
      "diffs": [
        {
          "row": "M-B-it-endurance-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-it-endurance-coach",
          "field": "reps",
          "expected": 1,
          "actual": 400,
          "verdict": "miss"
        },
        {
          "row": "M-B-it-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 ripetizioni di 400 metri, ritorno di corsa lenta come recupero"
        }
      ],
      "context": "context/M-B-it-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-it-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-it-conditioning-self",
      "seed": 3,
      "band": "B",
      "locale": "it",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 12,
        "reps": 3,
        "weight": 70
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 12,
            "reps": 3,
            "weight_kg": 70,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 12 minuti: 3 clean a 70kg"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2819,
      "cost_usd": 0.00014535,
      "tokens_prompt": 741,
      "tokens_completion": 57,
      "ts": "2026-09-11T16:33:05.243Z",
      "diffs": [
        {
          "row": "M-B-it-conditioning-self",
          "field": "sets",
          "expected": 12,
          "actual": 12,
          "verdict": "match"
        },
        {
          "row": "M-B-it-conditioning-self",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-it-conditioning-self",
          "field": "weight_kg",
          "expected": 70,
          "actual": 70,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 12 minuti: 3 clean a 70kg"
        }
      ],
      "context": "context/M-B-it-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-it-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-ru-bodyweight-coach",
      "seed": 2,
      "band": "B",
      "locale": "ru",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "последний до отказа"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1146,
      "cost_usd": 0.000141,
      "tokens_prompt": 744,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:33:05.612Z",
      "diffs": [
        {
          "row": "M-B-ru-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-bodyweight-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 подхода по 8 подтягиваний, последний до отказа"
        }
      ],
      "context": "context/M-B-ru-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-ru-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-ru-conditioning-self",
      "seed": 1,
      "band": "B",
      "locale": "ru",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 10,
        "reps": 5,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 10,
            "reps": 5,
            "weight_kg": 40,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 10 минут: 5 трастеров по 40кг"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1062,
      "cost_usd": 0.000147,
      "tokens_prompt": 744,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:33:05.811Z",
      "diffs": [
        {
          "row": "M-B-ru-conditioning-self",
          "field": "sets",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-conditioning-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-conditioning-self",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 10 минут: 5 трастеров по 40кг"
        }
      ],
      "context": "context/M-B-ru-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-ru-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-ru-barbell-self",
      "seed": 1,
      "band": "B",
      "locale": "ru",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 2,
            "reps": 3,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "работай до тяжёлого тройного, затем два подхода на 85%"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 2373,
      "cost_usd": 0.0001491,
      "tokens_prompt": 746,
      "tokens_completion": 62,
      "ts": "2026-09-11T16:33:05.866Z",
      "diffs": [
        {
          "row": "M-B-ru-barbell-self",
          "field": "sets",
          "expected": 3,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "M-B-ru-barbell-self",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-barbell-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "работай до тяжёлого тройного, затем два подхода на 85%"
        }
      ],
      "context": "context/M-B-ru-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-ru-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-ru-barbell-self",
      "seed": 3,
      "band": "B",
      "locale": "ru",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 3,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 2,
            "reps": 3,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "работай до тяжёлого тройного, затем два подхода на 85%"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 2201,
      "cost_usd": 0.0001491,
      "tokens_prompt": 746,
      "tokens_completion": 62,
      "ts": "2026-09-11T16:33:06.160Z",
      "diffs": [
        {
          "row": "M-B-ru-barbell-self",
          "field": "sets",
          "expected": 3,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "M-B-ru-barbell-self",
          "field": "reps",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-barbell-self",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "работай до тяжёлого тройного, затем два подхода на 85%"
        }
      ],
      "context": "context/M-B-ru-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-ru-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-ru-bodyweight-coach",
      "seed": 3,
      "band": "B",
      "locale": "ru",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "последний до отказа"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1893,
      "cost_usd": 0.0001416,
      "tokens_prompt": 744,
      "tokens_completion": 50,
      "ts": "2026-09-11T16:33:06.408Z",
      "diffs": [
        {
          "row": "M-B-ru-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-bodyweight-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 подхода по 8 подтягиваний, последний до отказа"
        }
      ],
      "context": "context/M-B-ru-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-ru-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-ru-bodyweight-coach",
      "seed": 1,
      "band": "B",
      "locale": "ru",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "последний до отказа"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1975,
      "cost_usd": 0.0001416,
      "tokens_prompt": 744,
      "tokens_completion": 50,
      "ts": "2026-09-11T16:33:06.438Z",
      "diffs": [
        {
          "row": "M-B-ru-bodyweight-coach",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-bodyweight-coach",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-bodyweight-coach",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 подхода по 8 подтягиваний, последний до отказа"
        }
      ],
      "context": "context/M-B-ru-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-ru-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-zh-barbell-coach",
      "seed": 2,
      "band": "B",
      "locale": "zh",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "逐渐加到 140 公斤，重量先不写死"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1087,
      "cost_usd": 0.0001476,
      "tokens_prompt": 756,
      "tokens_completion": 57,
      "ts": "2026-09-11T16:33:06.898Z",
      "diffs": [
        {
          "row": "M-B-zh-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "做梯形 5,4,3,2,1，逐渐加到 140 公斤，重量先不写死"
        }
      ],
      "context": "context/M-B-zh-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-zh-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-ru-conditioning-self",
      "seed": 2,
      "band": "B",
      "locale": "ru",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 10,
        "reps": 5,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 10,
            "reps": 5,
            "weight_kg": 40,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 10 минут: 5 трастеров по 40кг"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2004,
      "cost_usd": 0.0001476,
      "tokens_prompt": 744,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:33:07.062Z",
      "diffs": [
        {
          "row": "M-B-ru-conditioning-self",
          "field": "sets",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-conditioning-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-conditioning-self",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 10 минут: 5 трастеров по 40кг"
        }
      ],
      "context": "context/M-B-ru-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-ru-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-zh-barbell-coach",
      "seed": 3,
      "band": "B",
      "locale": "zh",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "逐渐加到 140 公斤，重量先不写死"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1305,
      "cost_usd": 0.0001476,
      "tokens_prompt": 756,
      "tokens_completion": 57,
      "ts": "2026-09-11T16:33:07.171Z",
      "diffs": [
        {
          "row": "M-B-zh-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "做梯形 5,4,3,2,1，逐渐加到 140 公斤，重量先不写死"
        }
      ],
      "context": "context/M-B-zh-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-zh-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-zh-bodyweight-self",
      "seed": 2,
      "band": "B",
      "locale": "zh",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "最后一组做到力竭"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 983,
      "cost_usd": 0.00014205,
      "tokens_prompt": 747,
      "tokens_completion": 50,
      "ts": "2026-09-11T16:33:07.391Z",
      "diffs": [
        {
          "row": "M-B-zh-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-bodyweight-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 组 8 次引体向上，最后一组做到力竭"
        }
      ],
      "context": "context/M-B-zh-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-zh-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-zh-barbell-coach",
      "seed": 1,
      "band": "B",
      "locale": "zh",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 5,
        "reps": 5,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "逐渐加到 140 公斤，重量先不写死"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2008,
      "cost_usd": 0.0001482,
      "tokens_prompt": 756,
      "tokens_completion": 58,
      "ts": "2026-09-11T16:33:07.621Z",
      "diffs": [
        {
          "row": "M-B-zh-barbell-coach",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-barbell-coach",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-barbell-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "做梯形 5,4,3,2,1，逐渐加到 140 公斤，重量先不写死"
        }
      ],
      "context": "context/M-B-zh-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-zh-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-zh-bodyweight-self",
      "seed": 1,
      "band": "B",
      "locale": "zh",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "最后一组做到力竭"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1687,
      "cost_usd": 0.00014265,
      "tokens_prompt": 747,
      "tokens_completion": 51,
      "ts": "2026-09-11T16:33:07.847Z",
      "diffs": [
        {
          "row": "M-B-zh-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-bodyweight-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 组 8 次引体向上，最后一组做到力竭"
        }
      ],
      "context": "context/M-B-zh-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-zh-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-zh-endurance-coach",
      "seed": 1,
      "band": "B",
      "locale": "zh",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 1,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 1,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "慢跑回来作为休息"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 976,
      "cost_usd": 0.0001407,
      "tokens_prompt": 742,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:33:07.874Z",
      "diffs": [
        {
          "row": "M-B-zh-endurance-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-endurance-coach",
          "field": "reps",
          "expected": 1,
          "actual": 1,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 组 400 米，慢跑回来作为休息"
        }
      ],
      "context": "context/M-B-zh-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-zh-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-zh-bodyweight-self",
      "seed": 3,
      "band": "B",
      "locale": "zh",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 3,
        "reps": 8,
        "weight": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "最后一组做到力竭"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1446,
      "cost_usd": 0.00014265,
      "tokens_prompt": 747,
      "tokens_completion": 51,
      "ts": "2026-09-11T16:33:07.885Z",
      "diffs": [
        {
          "row": "M-B-zh-bodyweight-self",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-bodyweight-self",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-bodyweight-self",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "3 组 8 次引体向上，最后一组做到力竭"
        }
      ],
      "context": "context/M-B-zh-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-zh-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-en-barbell-coach",
      "seed": 1,
      "band": "C",
      "locale": "en",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 565,
      "cost_usd": 0.00011295,
      "tokens_prompt": 737,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:07.957Z",
      "diffs": [
        {
          "row": "M-C-en-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Focus on bracing, film the top set"
        }
      ],
      "context": "context/M-C-en-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-en-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-ru-conditioning-self",
      "seed": 3,
      "band": "B",
      "locale": "ru",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 10,
        "reps": 5,
        "weight": 40
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 10,
            "reps": 5,
            "weight_kg": 40,
            "rest_seconds": null,
            "rpe": null,
            "note": "EMOM 10 минут: 5 трастеров по 40кг"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2854,
      "cost_usd": 0.0001476,
      "tokens_prompt": 744,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:33:08.098Z",
      "diffs": [
        {
          "row": "M-B-ru-conditioning-self",
          "field": "sets",
          "expected": 10,
          "actual": 10,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-conditioning-self",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "M-B-ru-conditioning-self",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "EMOM 10 минут: 5 трастеров по 40кг"
        }
      ],
      "context": "context/M-B-ru-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-ru-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-zh-endurance-coach",
      "seed": 2,
      "band": "B",
      "locale": "zh",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 1,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 400,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "慢跑回来作为休息"
          }
        ]
      },
      "score_line": 66.7,
      "fields": 3,
      "ok": 2,
      "invented": 0,
      "missed": 1,
      "weight_zero": 0,
      "latency_ms": 1051,
      "cost_usd": 0.0001407,
      "tokens_prompt": 742,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:33:08.113Z",
      "diffs": [
        {
          "row": "M-B-zh-endurance-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-endurance-coach",
          "field": "reps",
          "expected": 1,
          "actual": 400,
          "verdict": "miss"
        },
        {
          "row": "M-B-zh-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 组 400 米，慢跑回来作为休息"
        }
      ],
      "context": "context/M-B-zh-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-zh-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-B-zh-endurance-coach",
      "seed": 3,
      "band": "B",
      "locale": "zh",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 4,
        "reps": 1,
        "weight": null
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": true,
            "sets": 4,
            "reps": 1,
            "weight_kg": null,
            "rest_seconds": 400,
            "rpe": null,
            "note": "慢跑回来作为休息"
          }
        ]
      },
      "score_line": 100,
      "fields": 3,
      "ok": 3,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 961,
      "cost_usd": 0.0001407,
      "tokens_prompt": 742,
      "tokens_completion": 49,
      "ts": "2026-09-11T16:33:08.132Z",
      "diffs": [
        {
          "row": "M-B-zh-endurance-coach",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-endurance-coach",
          "field": "reps",
          "expected": 1,
          "actual": 1,
          "verdict": "match"
        },
        {
          "row": "M-B-zh-endurance-coach",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "4 组 400 米，慢跑回来作为休息"
        }
      ],
      "context": "context/M-B-zh-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-B-zh-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-en-bodyweight-self",
      "seed": 2,
      "band": "C",
      "locale": "en",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 636,
      "cost_usd": 0.0001128,
      "tokens_prompt": 736,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:08.521Z",
      "diffs": [
        {
          "row": "M-C-en-bodyweight-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 band pull-aparts between sets"
        }
      ],
      "context": "context/M-C-en-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-en-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-en-conditioning-coach",
      "seed": 2,
      "band": "C",
      "locale": "en",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 569,
      "cost_usd": 0.0001131,
      "tokens_prompt": 738,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:08.682Z",
      "diffs": [
        {
          "row": "M-C-en-conditioning-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Ask me how the knee felt after the metcon"
        }
      ],
      "context": "context/M-C-en-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-en-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-en-conditioning-coach",
      "seed": 1,
      "band": "C",
      "locale": "en",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 615,
      "cost_usd": 0.0001131,
      "tokens_prompt": 738,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:08.713Z",
      "diffs": [
        {
          "row": "M-C-en-conditioning-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Ask me how the knee felt after the metcon"
        }
      ],
      "context": "context/M-C-en-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-en-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-pl-barbell-self",
      "seed": 2,
      "band": "C",
      "locale": "pl",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 569,
      "cost_usd": 0.0001128,
      "tokens_prompt": 736,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:09.251Z",
      "diffs": [
        {
          "row": "M-C-pl-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "zapytaj mnie jak pójdzie"
        }
      ],
      "context": "context/M-C-pl-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-pl-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-en-barbell-coach",
      "seed": 2,
      "band": "C",
      "locale": "en",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Focus on bracing, film the top set"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1851,
      "cost_usd": 0.00014235,
      "tokens_prompt": 737,
      "tokens_completion": 53,
      "ts": "2026-09-11T16:33:09.473Z",
      "diffs": [
        {
          "row": "M-C-en-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Focus on bracing, film the top set"
        }
      ],
      "context": "context/M-C-en-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-en-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-en-bodyweight-self",
      "seed": 1,
      "band": "C",
      "locale": "en",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1712,
      "cost_usd": 0.0001134,
      "tokens_prompt": 736,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:09.587Z",
      "diffs": [
        {
          "row": "M-C-en-bodyweight-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 band pull-aparts between sets"
        }
      ],
      "context": "context/M-C-en-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-en-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-en-barbell-coach",
      "seed": 3,
      "band": "C",
      "locale": "en",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Focus on bracing, film the top set"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1755,
      "cost_usd": 0.00014235,
      "tokens_prompt": 737,
      "tokens_completion": 53,
      "ts": "2026-09-11T16:33:09.602Z",
      "diffs": [
        {
          "row": "M-C-en-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Focus on bracing, film the top set"
        }
      ],
      "context": "context/M-C-en-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-en-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-en-bodyweight-self",
      "seed": 3,
      "band": "C",
      "locale": "en",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1750,
      "cost_usd": 0.0001134,
      "tokens_prompt": 736,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:09.707Z",
      "diffs": [
        {
          "row": "M-C-en-bodyweight-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 band pull-aparts between sets"
        }
      ],
      "context": "context/M-C-en-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-en-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-en-conditioning-coach",
      "seed": 3,
      "band": "C",
      "locale": "en",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1790,
      "cost_usd": 0.0001137,
      "tokens_prompt": 738,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:09.922Z",
      "diffs": [
        {
          "row": "M-C-en-conditioning-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Ask me how the knee felt after the metcon"
        }
      ],
      "context": "context/M-C-en-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-en-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-pl-barbell-self",
      "seed": 1,
      "band": "C",
      "locale": "pl",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "zapytaj mnie jak pójdzie"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1710,
      "cost_usd": 0.0001416,
      "tokens_prompt": 736,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:33:10.231Z",
      "diffs": [
        {
          "row": "M-C-pl-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "zapytaj mnie jak pójdzie"
        }
      ],
      "context": "context/M-C-pl-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-pl-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-pl-endurance-self",
      "seed": 1,
      "band": "C",
      "locale": "pl",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "20 rozciągnięć gumą między seriami, to nie jest robota"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1072,
      "cost_usd": 0.0001479,
      "tokens_prompt": 746,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:33:10.674Z",
      "diffs": [
        {
          "row": "M-C-pl-endurance-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 rozciągnięć gumą między seriami, to nie jest robota"
        }
      ],
      "context": "context/M-C-pl-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-pl-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-pl-bodyweight-coach",
      "seed": 3,
      "band": "C",
      "locale": "pl",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1260,
      "cost_usd": 0.00011445,
      "tokens_prompt": 743,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:10.847Z",
      "diffs": [
        {
          "row": "M-C-pl-bodyweight-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "skup się na spięciu brzucha, nie dopisuj serii"
        }
      ],
      "context": "context/M-C-pl-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-pl-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-pl-bodyweight-coach",
      "seed": 2,
      "band": "C",
      "locale": "pl",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1453,
      "cost_usd": 0.00011445,
      "tokens_prompt": 743,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:10.926Z",
      "diffs": [
        {
          "row": "M-C-pl-bodyweight-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "skup się na spięciu brzucha, nie dopisuj serii"
        }
      ],
      "context": "context/M-C-pl-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-pl-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-pl-bodyweight-coach",
      "seed": 1,
      "band": "C",
      "locale": "pl",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1693,
      "cost_usd": 0.00011445,
      "tokens_prompt": 743,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:10.944Z",
      "diffs": [
        {
          "row": "M-C-pl-bodyweight-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "skup się na spięciu brzucha, nie dopisuj serii"
        }
      ],
      "context": "context/M-C-pl-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-pl-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-pl-barbell-self",
      "seed": 3,
      "band": "C",
      "locale": "pl",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "zapytaj mnie jak pójdzie"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2507,
      "cost_usd": 0.0001416,
      "tokens_prompt": 736,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:33:11.221Z",
      "diffs": [
        {
          "row": "M-C-pl-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "zapytaj mnie jak pójdzie"
        }
      ],
      "context": "context/M-C-pl-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-pl-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-pl-endurance-self",
      "seed": 3,
      "band": "C",
      "locale": "pl",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "20 rozciągnięć gumą między seriami, to nie jest robota"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1379,
      "cost_usd": 0.0001479,
      "tokens_prompt": 746,
      "tokens_completion": 60,
      "ts": "2026-09-11T16:33:11.302Z",
      "diffs": [
        {
          "row": "M-C-pl-endurance-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 rozciągnięć gumą między seriami, to nie jest robota"
        }
      ],
      "context": "context/M-C-pl-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-pl-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-es-barbell-coach",
      "seed": 2,
      "band": "C",
      "locale": "es",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 651,
      "cost_usd": 0.00011325,
      "tokens_prompt": 739,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:11.325Z",
      "diffs": [
        {
          "row": "M-C-es-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Siente el glúteo en cada repetición"
        }
      ],
      "context": "context/M-C-es-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-es-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-pl-endurance-self",
      "seed": 2,
      "band": "C",
      "locale": "pl",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "20 rozciągnięć gumą między seriami, to nie jest robota"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1902,
      "cost_usd": 0.0001485,
      "tokens_prompt": 746,
      "tokens_completion": 61,
      "ts": "2026-09-11T16:33:11.609Z",
      "diffs": [
        {
          "row": "M-C-pl-endurance-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 rozciągnięć gumą między seriami, to nie jest robota"
        }
      ],
      "context": "context/M-C-pl-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-pl-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-es-barbell-coach",
      "seed": 3,
      "band": "C",
      "locale": "es",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Siente el glúteo en cada repetición"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1102,
      "cost_usd": 0.00014325,
      "tokens_prompt": 739,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:33:11.949Z",
      "diffs": [
        {
          "row": "M-C-es-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Siente el glúteo en cada repetición"
        }
      ],
      "context": "context/M-C-es-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-es-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-es-endurance-coach",
      "seed": 2,
      "band": "C",
      "locale": "es",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1039,
      "cost_usd": 0.00011295,
      "tokens_prompt": 737,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:12.365Z",
      "diffs": [
        {
          "row": "M-C-es-endurance-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 pull-aparts de banda entre series"
        }
      ],
      "context": "context/M-C-es-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-es-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-es-barbell-coach",
      "seed": 1,
      "band": "C",
      "locale": "es",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Siente el glúteo en cada repetición"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2492,
      "cost_usd": 0.00014385,
      "tokens_prompt": 739,
      "tokens_completion": 55,
      "ts": "2026-09-11T16:33:12.724Z",
      "diffs": [
        {
          "row": "M-C-es-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Siente el glúteo en cada repetición"
        }
      ],
      "context": "context/M-C-es-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-es-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-es-endurance-coach",
      "seed": 3,
      "band": "C",
      "locale": "es",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "20 pull-aparts de banda entre series"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1129,
      "cost_usd": 0.00014115,
      "tokens_prompt": 737,
      "tokens_completion": 51,
      "ts": "2026-09-11T16:33:12.738Z",
      "diffs": [
        {
          "row": "M-C-es-endurance-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 pull-aparts de banda entre series"
        }
      ],
      "context": "context/M-C-es-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-es-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-fr-barbell-self",
      "seed": 2,
      "band": "C",
      "locale": "fr",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "filme la série lourde, on regarde après"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 925,
      "cost_usd": 0.00014235,
      "tokens_prompt": 737,
      "tokens_completion": 53,
      "ts": "2026-09-11T16:33:13.290Z",
      "diffs": [
        {
          "row": "M-C-fr-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "filme la série lourde, on regarde après"
        }
      ],
      "context": "context/M-C-fr-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-fr-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-es-conditioning-self",
      "seed": 2,
      "band": "C",
      "locale": "es",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "graba la serie pesada y me la mandas"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2360,
      "cost_usd": 0.0001431,
      "tokens_prompt": 738,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:33:13.305Z",
      "diffs": [
        {
          "row": "M-C-es-conditioning-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "graba la serie pesada y me la mandas"
        }
      ],
      "context": "context/M-C-es-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-es-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-es-conditioning-self",
      "seed": 1,
      "band": "C",
      "locale": "es",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "graba la serie pesada y me la mandas"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2379,
      "cost_usd": 0.0001431,
      "tokens_prompt": 738,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:33:13.306Z",
      "diffs": [
        {
          "row": "M-C-es-conditioning-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "graba la serie pesada y me la mandas"
        }
      ],
      "context": "context/M-C-es-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-es-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-es-conditioning-self",
      "seed": 3,
      "band": "C",
      "locale": "es",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "graba la serie pesada y me la mandas"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2709,
      "cost_usd": 0.0001431,
      "tokens_prompt": 738,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:33:13.930Z",
      "diffs": [
        {
          "row": "M-C-es-conditioning-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "graba la serie pesada y me la mandas"
        }
      ],
      "context": "context/M-C-es-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-es-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-es-endurance-coach",
      "seed": 1,
      "band": "C",
      "locale": "es",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "20 pull-aparts de banda entre series"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2700,
      "cost_usd": 0.00014175,
      "tokens_prompt": 737,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:33:14.002Z",
      "diffs": [
        {
          "row": "M-C-es-endurance-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 pull-aparts de banda entre series"
        }
      ],
      "context": "context/M-C-es-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-es-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-fr-barbell-self",
      "seed": 3,
      "band": "C",
      "locale": "fr",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "filme la série lourde, on regarde après"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1586,
      "cost_usd": 0.00014295,
      "tokens_prompt": 737,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:33:14.310Z",
      "diffs": [
        {
          "row": "M-C-fr-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "filme la série lourde, on regarde après"
        }
      ],
      "context": "context/M-C-fr-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-fr-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-fr-barbell-self",
      "seed": 1,
      "band": "C",
      "locale": "fr",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "filme la série lourde, on regarde après"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2566,
      "cost_usd": 0.00014295,
      "tokens_prompt": 737,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:33:14.515Z",
      "diffs": [
        {
          "row": "M-C-fr-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "filme la série lourde, on regarde après"
        }
      ],
      "context": "context/M-C-fr-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-fr-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-fr-bodyweight-coach",
      "seed": 3,
      "band": "C",
      "locale": "fr",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1357,
      "cost_usd": 0.00011415,
      "tokens_prompt": 741,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:14.663Z",
      "diffs": [
        {
          "row": "M-C-fr-bodyweight-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "garde les épaules basses, ce n'est pas une série"
        }
      ],
      "context": "context/M-C-fr-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-fr-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-fr-bodyweight-coach",
      "seed": 1,
      "band": "C",
      "locale": "fr",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "garde les épaules basses, ce n'est pas une série"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1940,
      "cost_usd": 0.00014595,
      "tokens_prompt": 741,
      "tokens_completion": 58,
      "ts": "2026-09-11T16:33:14.678Z",
      "diffs": [
        {
          "row": "M-C-fr-bodyweight-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "garde les épaules basses, ce n'est pas une série"
        }
      ],
      "context": "context/M-C-fr-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-fr-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-fr-conditioning-self",
      "seed": 1,
      "band": "C",
      "locale": "fr",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1533,
      "cost_usd": 0.00011355,
      "tokens_prompt": 737,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:14.840Z",
      "diffs": [
        {
          "row": "M-C-fr-conditioning-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "dis-moi comment le genou a réagi"
        }
      ],
      "context": "context/M-C-fr-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-fr-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-de-barbell-coach",
      "seed": 1,
      "band": "C",
      "locale": "de",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 609,
      "cost_usd": 0.00011295,
      "tokens_prompt": 737,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:14.919Z",
      "diffs": [
        {
          "row": "M-C-de-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "auf die Spannung achten, den schweren Satz filmen"
        }
      ],
      "context": "context/M-C-de-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-de-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-de-bodyweight-self",
      "seed": 1,
      "band": "C",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 637,
      "cost_usd": 0.0001131,
      "tokens_prompt": 738,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:15.316Z",
      "diffs": [
        {
          "row": "M-C-de-bodyweight-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 Band Pull-aparts zwischen den Sätzen"
        }
      ],
      "context": "context/M-C-de-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-de-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-fr-bodyweight-coach",
      "seed": 2,
      "band": "C",
      "locale": "fr",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2144,
      "cost_usd": 0.00011415,
      "tokens_prompt": 741,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:15.434Z",
      "diffs": [
        {
          "row": "M-C-fr-bodyweight-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "garde les épaules basses, ce n'est pas une série"
        }
      ],
      "context": "context/M-C-fr-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-fr-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-de-barbell-coach",
      "seed": 2,
      "band": "C",
      "locale": "de",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "auf die Spannung achten, den schweren Satz filmen"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 959,
      "cost_usd": 0.00014175,
      "tokens_prompt": 737,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:33:15.475Z",
      "diffs": [
        {
          "row": "M-C-de-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "auf die Spannung achten, den schweren Satz filmen"
        }
      ],
      "context": "context/M-C-de-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-de-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-fr-conditioning-self",
      "seed": 2,
      "band": "C",
      "locale": "fr",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1566,
      "cost_usd": 0.00011355,
      "tokens_prompt": 737,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:15.497Z",
      "diffs": [
        {
          "row": "M-C-fr-conditioning-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "dis-moi comment le genou a réagi"
        }
      ],
      "context": "context/M-C-fr-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-fr-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-de-bodyweight-self",
      "seed": 2,
      "band": "C",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 721,
      "cost_usd": 0.0001131,
      "tokens_prompt": 738,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:15.561Z",
      "diffs": [
        {
          "row": "M-C-de-bodyweight-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 Band Pull-aparts zwischen den Sätzen"
        }
      ],
      "context": "context/M-C-de-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-de-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-fr-conditioning-self",
      "seed": 3,
      "band": "C",
      "locale": "fr",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1594,
      "cost_usd": 0.00011355,
      "tokens_prompt": 737,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:15.597Z",
      "diffs": [
        {
          "row": "M-C-fr-conditioning-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "dis-moi comment le genou a réagi"
        }
      ],
      "context": "context/M-C-fr-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-fr-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-de-barbell-coach",
      "seed": 3,
      "band": "C",
      "locale": "de",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "auf die Spannung achten, den schweren Satz filmen"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1146,
      "cost_usd": 0.00014175,
      "tokens_prompt": 737,
      "tokens_completion": 52,
      "ts": "2026-09-11T16:33:15.810Z",
      "diffs": [
        {
          "row": "M-C-de-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "auf die Spannung achten, den schweren Satz filmen"
        }
      ],
      "context": "context/M-C-de-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-de-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-de-endurance-coach",
      "seed": 1,
      "band": "C",
      "locale": "de",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 737,
      "cost_usd": 0.00011325,
      "tokens_prompt": 739,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:16.053Z",
      "diffs": [
        {
          "row": "M-C-de-endurance-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "frag mich nachher wie sich das Knie anfühlt"
        }
      ],
      "context": "context/M-C-de-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-de-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-it-conditioning-coach",
      "seed": 1,
      "band": "C",
      "locale": "it",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 719,
      "cost_usd": 0.0001137,
      "tokens_prompt": 742,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:16.529Z",
      "diffs": [
        {
          "row": "M-C-it-conditioning-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 band pull-apart tra le serie, non è il lavoro"
        }
      ],
      "context": "context/M-C-it-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-it-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-it-barbell-self",
      "seed": 2,
      "band": "C",
      "locale": "it",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "filma la serie pesante, poi ne parliamo"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1022,
      "cost_usd": 0.000144,
      "tokens_prompt": 740,
      "tokens_completion": 55,
      "ts": "2026-09-11T16:33:16.583Z",
      "diffs": [
        {
          "row": "M-C-it-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "filma la serie pesante, poi ne parliamo"
        }
      ],
      "context": "context/M-C-it-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-it-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-de-endurance-coach",
      "seed": 3,
      "band": "C",
      "locale": "de",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1210,
      "cost_usd": 0.00011385,
      "tokens_prompt": 739,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:16.685Z",
      "diffs": [
        {
          "row": "M-C-de-endurance-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "frag mich nachher wie sich das Knie anfühlt"
        }
      ],
      "context": "context/M-C-de-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-de-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-it-barbell-self",
      "seed": 1,
      "band": "C",
      "locale": "it",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "filma la serie pesante, poi ne parliamo"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1197,
      "cost_usd": 0.000144,
      "tokens_prompt": 740,
      "tokens_completion": 55,
      "ts": "2026-09-11T16:33:16.695Z",
      "diffs": [
        {
          "row": "M-C-it-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "filma la serie pesante, poi ne parliamo"
        }
      ],
      "context": "context/M-C-it-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-it-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-de-endurance-coach",
      "seed": 2,
      "band": "C",
      "locale": "de",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1420,
      "cost_usd": 0.00011385,
      "tokens_prompt": 739,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:16.855Z",
      "diffs": [
        {
          "row": "M-C-de-endurance-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "frag mich nachher wie sich das Knie anfühlt"
        }
      ],
      "context": "context/M-C-de-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-de-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-de-bodyweight-self",
      "seed": 3,
      "band": "C",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "20 Band Pull-aparts zwischen den Sätzen"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1966,
      "cost_usd": 0.0001425,
      "tokens_prompt": 738,
      "tokens_completion": 53,
      "ts": "2026-09-11T16:33:16.885Z",
      "diffs": [
        {
          "row": "M-C-de-bodyweight-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 Band Pull-aparts zwischen den Sätzen"
        }
      ],
      "context": "context/M-C-de-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-de-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-it-conditioning-coach",
      "seed": 3,
      "band": "C",
      "locale": "it",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 739,
      "cost_usd": 0.0001137,
      "tokens_prompt": 742,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:17.268Z",
      "diffs": [
        {
          "row": "M-C-it-conditioning-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 band pull-apart tra le serie, non è il lavoro"
        }
      ],
      "context": "context/M-C-it-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-it-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-it-endurance-self",
      "seed": 1,
      "band": "C",
      "locale": "it",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 960,
      "cost_usd": 0.00011325,
      "tokens_prompt": 739,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:17.544Z",
      "diffs": [
        {
          "row": "M-C-it-endurance-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "dimmi com'è andato il ginocchio dopo"
        }
      ],
      "context": "context/M-C-it-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-it-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-it-barbell-self",
      "seed": 3,
      "band": "C",
      "locale": "it",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "filma la serie pesante, poi ne parliamo"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1990,
      "cost_usd": 0.0001446,
      "tokens_prompt": 740,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:33:17.587Z",
      "diffs": [
        {
          "row": "M-C-it-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "filma la serie pesante, poi ne parliamo"
        }
      ],
      "context": "context/M-C-it-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-it-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-it-conditioning-coach",
      "seed": 2,
      "band": "C",
      "locale": "it",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1564,
      "cost_usd": 0.0001143,
      "tokens_prompt": 742,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:17.618Z",
      "diffs": [
        {
          "row": "M-C-it-conditioning-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 band pull-apart tra le serie, non è il lavoro"
        }
      ],
      "context": "context/M-C-it-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-it-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-it-endurance-self",
      "seed": 3,
      "band": "C",
      "locale": "it",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1083,
      "cost_usd": 0.00011385,
      "tokens_prompt": 739,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:17.778Z",
      "diffs": [
        {
          "row": "M-C-it-endurance-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "dimmi com'è andato il ginocchio dopo"
        }
      ],
      "context": "context/M-C-it-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-it-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-it-endurance-self",
      "seed": 2,
      "band": "C",
      "locale": "it",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1464,
      "cost_usd": 0.00011385,
      "tokens_prompt": 739,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:18.149Z",
      "diffs": [
        {
          "row": "M-C-it-endurance-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "dimmi com'è andato il ginocchio dopo"
        }
      ],
      "context": "context/M-C-it-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-it-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-ru-bodyweight-self",
      "seed": 1,
      "band": "C",
      "locale": "ru",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "20 разведений с резинкой между подходами"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 969,
      "cost_usd": 0.00014265,
      "tokens_prompt": 739,
      "tokens_completion": 53,
      "ts": "2026-09-11T16:33:18.514Z",
      "diffs": [
        {
          "row": "M-C-ru-bodyweight-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 разведений с резинкой между подходами"
        }
      ],
      "context": "context/M-C-ru-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-ru-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-ru-conditioning-coach",
      "seed": 2,
      "band": "C",
      "locale": "ru",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 538,
      "cost_usd": 0.00011265,
      "tokens_prompt": 735,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:18.687Z",
      "diffs": [
        {
          "row": "M-C-ru-conditioning-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "спроси как колено после комплекса"
        }
      ],
      "context": "context/M-C-ru-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-ru-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-ru-barbell-coach",
      "seed": 1,
      "band": "C",
      "locale": "ru",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "снимай тяжёлый подход, потом разберём"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2187,
      "cost_usd": 0.00014445,
      "tokens_prompt": 739,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:33:19.042Z",
      "diffs": [
        {
          "row": "M-C-ru-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "снимай тяжёлый подход, потом разберём"
        }
      ],
      "context": "context/M-C-ru-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-ru-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-ru-barbell-coach",
      "seed": 2,
      "band": "C",
      "locale": "ru",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "снимай тяжёлый подход, потом разберём"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2157,
      "cost_usd": 0.00014445,
      "tokens_prompt": 739,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:33:19.043Z",
      "diffs": [
        {
          "row": "M-C-ru-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "снимай тяжёлый подход, потом разберём"
        }
      ],
      "context": "context/M-C-ru-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-ru-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-ru-bodyweight-self",
      "seed": 2,
      "band": "C",
      "locale": "ru",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "20 разведений с резинкой между подходами"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1551,
      "cost_usd": 0.00014325,
      "tokens_prompt": 739,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:33:19.138Z",
      "diffs": [
        {
          "row": "M-C-ru-bodyweight-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 разведений с резинкой между подходами"
        }
      ],
      "context": "context/M-C-ru-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-ru-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-ru-barbell-coach",
      "seed": 3,
      "band": "C",
      "locale": "ru",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "снимай тяжёлый подход, потом разберём"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1913,
      "cost_usd": 0.00014445,
      "tokens_prompt": 739,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:33:19.182Z",
      "diffs": [
        {
          "row": "M-C-ru-barbell-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "снимай тяжёлый подход, потом разберём"
        }
      ],
      "context": "context/M-C-ru-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-ru-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-ru-conditioning-coach",
      "seed": 1,
      "band": "C",
      "locale": "ru",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1886,
      "cost_usd": 0.00011325,
      "tokens_prompt": 735,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:19.665Z",
      "diffs": [
        {
          "row": "M-C-ru-conditioning-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "спроси как колено после комплекса"
        }
      ],
      "context": "context/M-C-ru-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-ru-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-zh-barbell-self",
      "seed": 1,
      "band": "C",
      "locale": "zh",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "顶组拍个视频，先别写成组数"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1042,
      "cost_usd": 0.00014415,
      "tokens_prompt": 741,
      "tokens_completion": 55,
      "ts": "2026-09-11T16:33:19.730Z",
      "diffs": [
        {
          "row": "M-C-zh-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "顶组拍个视频，先别写成组数"
        }
      ],
      "context": "context/M-C-zh-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-zh-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-ru-conditioning-coach",
      "seed": 3,
      "band": "C",
      "locale": "ru",
      "modality": "conditioning",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1526,
      "cost_usd": 0.00011325,
      "tokens_prompt": 735,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:20.040Z",
      "diffs": [
        {
          "row": "M-C-ru-conditioning-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "спроси как колено после комплекса"
        }
      ],
      "context": "context/M-C-ru-conditioning-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-ru-conditioning-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-zh-bodyweight-coach",
      "seed": 2,
      "band": "C",
      "locale": "zh",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "组间做 20 次弹力带拉开，那不是正式组"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 969,
      "cost_usd": 0.0001464,
      "tokens_prompt": 744,
      "tokens_completion": 58,
      "ts": "2026-09-11T16:33:20.151Z",
      "diffs": [
        {
          "row": "M-C-zh-bodyweight-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "组间做 20 次弹力带拉开，那不是正式组"
        }
      ],
      "context": "context/M-C-zh-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-zh-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-zh-bodyweight-coach",
      "seed": 1,
      "band": "C",
      "locale": "zh",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "组间做 20 次弹力带拉开，那不是正式组"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1030,
      "cost_usd": 0.0001464,
      "tokens_prompt": 744,
      "tokens_completion": 58,
      "ts": "2026-09-11T16:33:20.168Z",
      "diffs": [
        {
          "row": "M-C-zh-bodyweight-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "组间做 20 次弹力带拉开，那不是正式组"
        }
      ],
      "context": "context/M-C-zh-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-zh-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-ru-bodyweight-self",
      "seed": 3,
      "band": "C",
      "locale": "ru",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "20 разведений с резинкой между подходами"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2565,
      "cost_usd": 0.00014325,
      "tokens_prompt": 739,
      "tokens_completion": 54,
      "ts": "2026-09-11T16:33:20.183Z",
      "diffs": [
        {
          "row": "M-C-ru-bodyweight-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "20 разведений с резинкой между подходами"
        }
      ],
      "context": "context/M-C-ru-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-ru-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-zh-barbell-self",
      "seed": 2,
      "band": "C",
      "locale": "zh",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "顶组拍个视频，先别写成组数"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1334,
      "cost_usd": 0.00014415,
      "tokens_prompt": 741,
      "tokens_completion": 55,
      "ts": "2026-09-11T16:33:20.377Z",
      "diffs": [
        {
          "row": "M-C-zh-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "顶组拍个视频，先别写成组数"
        }
      ],
      "context": "context/M-C-zh-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-zh-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-zh-endurance-self",
      "seed": 1,
      "band": "C",
      "locale": "zh",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 795,
      "cost_usd": 0.0001131,
      "tokens_prompt": 738,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:20.525Z",
      "diffs": [
        {
          "row": "M-C-zh-endurance-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "跑完告诉我膝盖感觉怎么样"
        }
      ],
      "context": "context/M-C-zh-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-zh-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-zh-endurance-self",
      "seed": 2,
      "band": "C",
      "locale": "zh",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1011,
      "cost_usd": 0.0001131,
      "tokens_prompt": 738,
      "tokens_completion": 4,
      "ts": "2026-09-11T16:33:21.051Z",
      "diffs": [
        {
          "row": "M-C-zh-endurance-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "跑完告诉我膝盖感觉怎么样"
        }
      ],
      "context": "context/M-C-zh-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-zh-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-zh-barbell-self",
      "seed": 3,
      "band": "C",
      "locale": "zh",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "顶组拍个视频，先别写成组数"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 2246,
      "cost_usd": 0.00014475,
      "tokens_prompt": 741,
      "tokens_completion": 56,
      "ts": "2026-09-11T16:33:21.290Z",
      "diffs": [
        {
          "row": "M-C-zh-barbell-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "顶组拍个视频，先别写成组数"
        }
      ],
      "context": "context/M-C-zh-barbell-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-zh-barbell-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-zh-bodyweight-coach",
      "seed": 3,
      "band": "C",
      "locale": "zh",
      "modality": "bodyweight",
      "voice": "coach",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": [
          {
            "id": "1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "组间做 20 次弹力带拉开，那不是正式组"
          }
        ]
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1953,
      "cost_usd": 0.000147,
      "tokens_prompt": 744,
      "tokens_completion": 59,
      "ts": "2026-09-11T16:33:21.618Z",
      "diffs": [
        {
          "row": "M-C-zh-bodyweight-coach",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "组间做 20 次弹力带拉开，那不是正式组"
        }
      ],
      "context": "context/M-C-zh-bodyweight-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-zh-bodyweight-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-C-zh-endurance-self",
      "seed": 3,
      "band": "C",
      "locale": "zh",
      "modality": "endurance",
      "voice": "self",
      "expected": {
        "sets": 0
      },
      "actual": {
        "rows": []
      },
      "score_line": 100,
      "fields": 1,
      "ok": 1,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 1802,
      "cost_usd": 0.0001137,
      "tokens_prompt": 738,
      "tokens_completion": 5,
      "ts": "2026-09-11T16:33:21.953Z",
      "diffs": [
        {
          "row": "M-C-zh-endurance-self",
          "field": "is_prescription",
          "expected": false,
          "actual": false,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "跑完告诉我膝盖感觉怎么样"
        }
      ],
      "context": "context/M-C-zh-endurance-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-C-zh-endurance-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-en-barbell-self-crossfit",
      "seed": 3,
      "band": "D",
      "locale": "en",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "rows": [
          {
            "match": "/warm-?up|two rounds/i",
            "label": "warm-up two rounds",
            "sets": 2,
            "reps": 5
          },
          {
            "match": "/snatch/i",
            "label": "snatch E2MOM",
            "sets": 7,
            "weight": null,
            "rest": 120
          },
          {
            "match": "/dead-stop deadlift/i",
            "label": "dead-stop deadlift",
            "sets": 5,
            "reps": 5,
            "weight": 188.2
          },
          {
            "match": "/ab wheel/i",
            "label": "ab wheel",
            "sets": 5,
            "weight": 0
          },
          {
            "match": "/romanian|barbell rows/i",
            "label": "RDL / barbell rows",
            "sets": 2,
            "reps": 8,
            "weight": 102.1
          },
          {
            "match": "/bulgarian/i",
            "label": "Bulgarian split squat",
            "sets": 1,
            "reps": 15,
            "weight": 54.4
          },
          {
            "match": "/thirty-nine|39/i",
            "label": "39 burpees",
            "sets": 1,
            "reps": 39,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 7,
            "reps": 1,
            "weight_kg": null,
            "rest_seconds": 120,
            "rpe": null,
            "note": "E2MOM, work up to a heavy weight — I have not picked the load yet."
          },
          {
            "id": "L3",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 188,
            "rest_seconds": null,
            "rpe": null,
            "note": "dead-stop deadlifts at 415 pounds, and after each deadlift set do one ab wheel rollout."
          },
          {
            "id": "L4",
            "is_prescription": true,
            "sets": 2,
            "reps": 8,
            "weight_kg": 102,
            "rest_seconds": null,
            "rpe": null,
            "note": "superset of barbell rows and Romanian deadlifts at 225 pounds."
          },
          {
            "id": "L5",
            "is_prescription": true,
            "sets": 1,
            "reps": 15,
            "weight_kg": 54,
            "rest_seconds": null,
            "rpe": null,
            "note": "Bulgarian split squats at 120 pounds."
          }
        ]
      },
      "score_line": 47.4,
      "fields": 19,
      "ok": 9,
      "invented": 1,
      "missed": 9,
      "weight_zero": 0,
      "latency_ms": 2642,
      "cost_usd": 0.00027585,
      "tokens_prompt": 919,
      "tokens_completion": 230,
      "ts": "2026-09-11T16:33:23.019Z",
      "diffs": [
        {
          "row": "warm-up two rounds",
          "field": "sets",
          "expected": 2,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up two rounds",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "snatch E2MOM",
          "field": "sets",
          "expected": 7,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "snatch E2MOM",
          "field": "weight_kg",
          "expected": null,
          "actual": 102,
          "verdict": "invented"
        },
        {
          "row": "snatch E2MOM",
          "field": "rest_seconds",
          "expected": 120,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "dead-stop deadlift",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "dead-stop deadlift",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "dead-stop deadlift",
          "field": "weight_kg",
          "expected": 188.2,
          "actual": 188,
          "verdict": "miss"
        },
        {
          "row": "ab wheel",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "ab wheel",
          "field": "weight_kg",
          "expected": 0,
          "actual": 188,
          "verdict": "miss"
        },
        {
          "row": "RDL / barbell rows",
          "field": "sets",
          "expected": 2,
          "actual": 2,
          "verdict": "match"
        },
        {
          "row": "RDL / barbell rows",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "RDL / barbell rows",
          "field": "weight_kg",
          "expected": 102.1,
          "actual": 102,
          "verdict": "match"
        },
        {
          "row": "Bulgarian split squat",
          "field": "sets",
          "expected": 1,
          "actual": 1,
          "verdict": "match"
        },
        {
          "row": "Bulgarian split squat",
          "field": "reps",
          "expected": 15,
          "actual": 15,
          "verdict": "match"
        },
        {
          "row": "Bulgarian split squat",
          "field": "weight_kg",
          "expected": 54.4,
          "actual": 54,
          "verdict": "miss"
        },
        {
          "row": "39 burpees",
          "field": "sets",
          "expected": 1,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "39 burpees",
          "field": "reps",
          "expected": 39,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "39 burpees",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Alright so today. Start with a 250 meter row just to get warm."
        },
        {
          "id": "L1",
          "text": "Then a warm-up, two rounds, five burpees and some PVC pass-throughs each round."
        },
        {
          "id": "L2",
          "text": "Then the snatch complex: seven sets, E2MOM, every two minutes, work up to a heavy weight — I have not picked the load yet."
        },
        {
          "id": "L3",
          "text": "Then five by five dead-stop deadlifts at 415 pounds, and after each deadlift set do one ab wheel rollout so pair those, five ab wheels with the five deadlift sets."
        },
        {
          "id": "L4",
          "text": "Then a superset of barbell rows and Romanian deadlifts, two sets of eight at 225 pounds."
        },
        {
          "id": "L5",
          "text": "Then one set of fifteen Bulgarian split squats at 120 pounds."
        },
        {
          "id": "L6",
          "text": "Finish with thirty-nine burpees for time, AFAP, as fast as possible. Just save the plan for today, September tenth."
        }
      ],
      "context": "context/M-D-en-barbell-self-crossfit.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-en-barbell-self-crossfit.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-pl-barbell-coach",
      "seed": 2,
      "band": "D",
      "locale": "pl",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "rows": [
          {
            "match": "/rozgrzewka|przysiadów z kettlem/i",
            "label": "warm-up kettle squats",
            "sets": 2,
            "reps": 10,
            "weight": null
          },
          {
            "match": "/przysiad 5x5/i",
            "label": "squat 5x5",
            "sets": 5,
            "reps": 5,
            "weight": 100,
            "rest": 120
          },
          {
            "match": "/wyciskanie/i",
            "label": "bench press",
            "sets": 4,
            "reps": 6,
            "weight": null
          },
          {
            "match": "/wiosłowanie/i",
            "label": "barbell row",
            "sets": 3,
            "reps": 8,
            "weight": 80
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": ""
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ciężar dobierz tak żeby było ciężko"
          },
          {
            "id": "L3",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 80,
            "rest_seconds": null,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 0,
      "fields": 13,
      "ok": 0,
      "invented": 2,
      "missed": 11,
      "weight_zero": 0,
      "latency_ms": 2682,
      "cost_usd": 0.00020655,
      "tokens_prompt": 837,
      "tokens_completion": 135,
      "ts": "2026-09-11T16:33:23.734Z",
      "diffs": [
        {
          "row": "warm-up kettle squats",
          "field": "sets",
          "expected": 2,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up kettle squats",
          "field": "reps",
          "expected": 10,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up kettle squats",
          "field": "weight_kg",
          "expected": null,
          "actual": 100,
          "verdict": "invented"
        },
        {
          "row": "squat 5x5",
          "field": "sets",
          "expected": 5,
          "actual": 4,
          "verdict": "miss"
        },
        {
          "row": "squat 5x5",
          "field": "reps",
          "expected": 5,
          "actual": 6,
          "verdict": "miss"
        },
        {
          "row": "squat 5x5",
          "field": "weight_kg",
          "expected": 100,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "squat 5x5",
          "field": "rest_seconds",
          "expected": 120,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "bench press",
          "field": "sets",
          "expected": 4,
          "actual": 3,
          "verdict": "miss"
        },
        {
          "row": "bench press",
          "field": "reps",
          "expected": 6,
          "actual": 8,
          "verdict": "miss"
        },
        {
          "row": "bench press",
          "field": "weight_kg",
          "expected": null,
          "actual": 80,
          "verdict": "invented"
        },
        {
          "row": "barbell row",
          "field": "sets",
          "expected": 3,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "barbell row",
          "field": "reps",
          "expected": 8,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "barbell row",
          "field": "weight_kg",
          "expected": 80,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Rozgrzewka 2 rundy: 10 przysiadów z kettlem."
        },
        {
          "id": "L1",
          "text": "Przysiad 5x5 @100kg, przerwa 2 min."
        },
        {
          "id": "L2",
          "text": "Wyciskanie 4 serie po 6, ciężar dobierz tak żeby było ciężko."
        },
        {
          "id": "L3",
          "text": "Wiosłowanie 3x8 @80kg."
        },
        {
          "id": "L4",
          "text": "Finisher: 20 swingów, to nie jest seria główna — dopisz jako notatkę jeśli musisz."
        }
      ],
      "context": "context/M-D-pl-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-pl-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-es-conditioning-self",
      "seed": 2,
      "band": "D",
      "locale": "es",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "rows": [
          {
            "match": "/calentamiento|burpee/i",
            "label": "warm-up burpees",
            "sets": 2,
            "reps": 8,
            "weight": 0
          },
          {
            "match": "/pull-?ups|amrap/i",
            "label": "AMRAP pull-ups",
            "reps": 5,
            "weight": null
          },
          {
            "match": "/thruster/i",
            "label": "thrusters",
            "sets": 3,
            "reps": 8,
            "weight": 40
          },
          {
            "match": "/400/i",
            "label": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
            "sets": 1,
            "reps": 1,
            "weight": null
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L0",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Calentamiento 2 rondas de 8 burpees."
          },
          {
            "id": "L1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "AMRAP 10 min: 5 pull-ups y 10 push-ups, sin carga escrita."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 40,
            "rest_seconds": null,
            "rpe": null,
            "note": ""
          },
          {
            "id": "L3",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Cierro con 400 metros a tope."
          }
        ]
      },
      "score_line": 45.5,
      "fields": 11,
      "ok": 5,
      "invented": 0,
      "missed": 6,
      "weight_zero": 0,
      "latency_ms": 1950,
      "cost_usd": 0.0002442,
      "tokens_prompt": 800,
      "tokens_completion": 207,
      "ts": "2026-09-11T16:33:23.903Z",
      "diffs": [
        {
          "row": "warm-up burpees",
          "field": "sets",
          "expected": 2,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "warm-up burpees",
          "field": "reps",
          "expected": 8,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "warm-up burpees",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "AMRAP pull-ups",
          "field": "reps",
          "expected": 5,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "AMRAP pull-ups",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "thrusters",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "thrusters",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "thrusters",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
          "field": "sets",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
          "field": "reps",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Hoy WOD. Calentamiento 2 rondas de 8 burpees."
        },
        {
          "id": "L1",
          "text": "AMRAP 10 min: 5 pull-ups y 10 push-ups, sin carga escrita."
        },
        {
          "id": "L2",
          "text": "Luego 3 series de 8 thrusters a 40kg."
        },
        {
          "id": "L3",
          "text": "Cierro con 400 metros a tope."
        }
      ],
      "context": "context/M-D-es-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-es-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-es-conditioning-self",
      "seed": 1,
      "band": "D",
      "locale": "es",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "rows": [
          {
            "match": "/calentamiento|burpee/i",
            "label": "warm-up burpees",
            "sets": 2,
            "reps": 8,
            "weight": 0
          },
          {
            "match": "/pull-?ups|amrap/i",
            "label": "AMRAP pull-ups",
            "reps": 5,
            "weight": null
          },
          {
            "match": "/thruster/i",
            "label": "thrusters",
            "sets": 3,
            "reps": 8,
            "weight": 40
          },
          {
            "match": "/400/i",
            "label": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
            "sets": 1,
            "reps": 1,
            "weight": null
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L0",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Calentamiento 2 rondas de 8 burpees."
          },
          {
            "id": "L1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "AMRAP 10 min: 5 pull-ups y 10 push-ups, sin carga escrita."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 40,
            "rest_seconds": null,
            "rpe": null,
            "note": ""
          },
          {
            "id": "L3",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Cierro con 400 metros a tope."
          }
        ]
      },
      "score_line": 45.5,
      "fields": 11,
      "ok": 5,
      "invented": 0,
      "missed": 6,
      "weight_zero": 0,
      "latency_ms": 2402,
      "cost_usd": 0.0002442,
      "tokens_prompt": 800,
      "tokens_completion": 207,
      "ts": "2026-09-11T16:33:24.020Z",
      "diffs": [
        {
          "row": "warm-up burpees",
          "field": "sets",
          "expected": 2,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "warm-up burpees",
          "field": "reps",
          "expected": 8,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "warm-up burpees",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "AMRAP pull-ups",
          "field": "reps",
          "expected": 5,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "AMRAP pull-ups",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "thrusters",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "thrusters",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "thrusters",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
          "field": "sets",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
          "field": "reps",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Hoy WOD. Calentamiento 2 rondas de 8 burpees."
        },
        {
          "id": "L1",
          "text": "AMRAP 10 min: 5 pull-ups y 10 push-ups, sin carga escrita."
        },
        {
          "id": "L2",
          "text": "Luego 3 series de 8 thrusters a 40kg."
        },
        {
          "id": "L3",
          "text": "Cierro con 400 metros a tope."
        }
      ],
      "context": "context/M-D-es-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-es-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-en-barbell-self-crossfit",
      "seed": 1,
      "band": "D",
      "locale": "en",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "rows": [
          {
            "match": "/warm-?up|two rounds/i",
            "label": "warm-up two rounds",
            "sets": 2,
            "reps": 5
          },
          {
            "match": "/snatch/i",
            "label": "snatch E2MOM",
            "sets": 7,
            "weight": null,
            "rest": 120
          },
          {
            "match": "/dead-stop deadlift/i",
            "label": "dead-stop deadlift",
            "sets": 5,
            "reps": 5,
            "weight": 188.2
          },
          {
            "match": "/ab wheel/i",
            "label": "ab wheel",
            "sets": 5,
            "weight": 0
          },
          {
            "match": "/romanian|barbell rows/i",
            "label": "RDL / barbell rows",
            "sets": 2,
            "reps": 8,
            "weight": 102.1
          },
          {
            "match": "/bulgarian/i",
            "label": "Bulgarian split squat",
            "sets": 1,
            "reps": 15,
            "weight": 54.4
          },
          {
            "match": "/thirty-nine|39/i",
            "label": "39 burpees",
            "sets": 1,
            "reps": 39,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 7,
            "reps": 1,
            "weight_kg": null,
            "rest_seconds": 120,
            "rpe": null,
            "note": "E2MOM, work up to a heavy weight — I have not picked the load yet."
          },
          {
            "id": "L3",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 188,
            "rest_seconds": null,
            "rpe": null,
            "note": "dead-stop deadlifts at 415 pounds, and after each deadlift set do one ab wheel rollout."
          },
          {
            "id": "L4",
            "is_prescription": true,
            "sets": 2,
            "reps": 8,
            "weight_kg": 102,
            "rest_seconds": null,
            "rpe": null,
            "note": "superset of barbell rows and Romanian deadlifts at 225 pounds."
          },
          {
            "id": "L5",
            "is_prescription": true,
            "sets": 1,
            "reps": 15,
            "weight_kg": 54,
            "rest_seconds": null,
            "rpe": null,
            "note": "Bulgarian split squats at 120 pounds."
          }
        ]
      },
      "score_line": 47.4,
      "fields": 19,
      "ok": 9,
      "invented": 1,
      "missed": 9,
      "weight_zero": 0,
      "latency_ms": 3958,
      "cost_usd": 0.00027645,
      "tokens_prompt": 919,
      "tokens_completion": 231,
      "ts": "2026-09-11T16:33:24.126Z",
      "diffs": [
        {
          "row": "warm-up two rounds",
          "field": "sets",
          "expected": 2,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up two rounds",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "snatch E2MOM",
          "field": "sets",
          "expected": 7,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "snatch E2MOM",
          "field": "weight_kg",
          "expected": null,
          "actual": 102,
          "verdict": "invented"
        },
        {
          "row": "snatch E2MOM",
          "field": "rest_seconds",
          "expected": 120,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "dead-stop deadlift",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "dead-stop deadlift",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "dead-stop deadlift",
          "field": "weight_kg",
          "expected": 188.2,
          "actual": 188,
          "verdict": "miss"
        },
        {
          "row": "ab wheel",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "ab wheel",
          "field": "weight_kg",
          "expected": 0,
          "actual": 188,
          "verdict": "miss"
        },
        {
          "row": "RDL / barbell rows",
          "field": "sets",
          "expected": 2,
          "actual": 2,
          "verdict": "match"
        },
        {
          "row": "RDL / barbell rows",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "RDL / barbell rows",
          "field": "weight_kg",
          "expected": 102.1,
          "actual": 102,
          "verdict": "match"
        },
        {
          "row": "Bulgarian split squat",
          "field": "sets",
          "expected": 1,
          "actual": 1,
          "verdict": "match"
        },
        {
          "row": "Bulgarian split squat",
          "field": "reps",
          "expected": 15,
          "actual": 15,
          "verdict": "match"
        },
        {
          "row": "Bulgarian split squat",
          "field": "weight_kg",
          "expected": 54.4,
          "actual": 54,
          "verdict": "miss"
        },
        {
          "row": "39 burpees",
          "field": "sets",
          "expected": 1,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "39 burpees",
          "field": "reps",
          "expected": 39,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "39 burpees",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Alright so today. Start with a 250 meter row just to get warm."
        },
        {
          "id": "L1",
          "text": "Then a warm-up, two rounds, five burpees and some PVC pass-throughs each round."
        },
        {
          "id": "L2",
          "text": "Then the snatch complex: seven sets, E2MOM, every two minutes, work up to a heavy weight — I have not picked the load yet."
        },
        {
          "id": "L3",
          "text": "Then five by five dead-stop deadlifts at 415 pounds, and after each deadlift set do one ab wheel rollout so pair those, five ab wheels with the five deadlift sets."
        },
        {
          "id": "L4",
          "text": "Then a superset of barbell rows and Romanian deadlifts, two sets of eight at 225 pounds."
        },
        {
          "id": "L5",
          "text": "Then one set of fifteen Bulgarian split squats at 120 pounds."
        },
        {
          "id": "L6",
          "text": "Finish with thirty-nine burpees for time, AFAP, as fast as possible. Just save the plan for today, September tenth."
        }
      ],
      "context": "context/M-D-en-barbell-self-crossfit.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-en-barbell-self-crossfit.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-pl-barbell-coach",
      "seed": 3,
      "band": "D",
      "locale": "pl",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "rows": [
          {
            "match": "/rozgrzewka|przysiadów z kettlem/i",
            "label": "warm-up kettle squats",
            "sets": 2,
            "reps": 10,
            "weight": null
          },
          {
            "match": "/przysiad 5x5/i",
            "label": "squat 5x5",
            "sets": 5,
            "reps": 5,
            "weight": 100,
            "rest": 120
          },
          {
            "match": "/wyciskanie/i",
            "label": "bench press",
            "sets": 4,
            "reps": 6,
            "weight": null
          },
          {
            "match": "/wiosłowanie/i",
            "label": "barbell row",
            "sets": 3,
            "reps": 8,
            "weight": 80
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": ""
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ciężar dobierz tak żeby było ciężko"
          },
          {
            "id": "L3",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 80,
            "rest_seconds": null,
            "rpe": null,
            "note": ""
          }
        ]
      },
      "score_line": 0,
      "fields": 13,
      "ok": 0,
      "invented": 2,
      "missed": 11,
      "weight_zero": 0,
      "latency_ms": 2872,
      "cost_usd": 0.00020655,
      "tokens_prompt": 837,
      "tokens_completion": 135,
      "ts": "2026-09-11T16:33:24.162Z",
      "diffs": [
        {
          "row": "warm-up kettle squats",
          "field": "sets",
          "expected": 2,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up kettle squats",
          "field": "reps",
          "expected": 10,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up kettle squats",
          "field": "weight_kg",
          "expected": null,
          "actual": 100,
          "verdict": "invented"
        },
        {
          "row": "squat 5x5",
          "field": "sets",
          "expected": 5,
          "actual": 4,
          "verdict": "miss"
        },
        {
          "row": "squat 5x5",
          "field": "reps",
          "expected": 5,
          "actual": 6,
          "verdict": "miss"
        },
        {
          "row": "squat 5x5",
          "field": "weight_kg",
          "expected": 100,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "squat 5x5",
          "field": "rest_seconds",
          "expected": 120,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "bench press",
          "field": "sets",
          "expected": 4,
          "actual": 3,
          "verdict": "miss"
        },
        {
          "row": "bench press",
          "field": "reps",
          "expected": 6,
          "actual": 8,
          "verdict": "miss"
        },
        {
          "row": "bench press",
          "field": "weight_kg",
          "expected": null,
          "actual": 80,
          "verdict": "invented"
        },
        {
          "row": "barbell row",
          "field": "sets",
          "expected": 3,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "barbell row",
          "field": "reps",
          "expected": 8,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "barbell row",
          "field": "weight_kg",
          "expected": 80,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Rozgrzewka 2 rundy: 10 przysiadów z kettlem."
        },
        {
          "id": "L1",
          "text": "Przysiad 5x5 @100kg, przerwa 2 min."
        },
        {
          "id": "L2",
          "text": "Wyciskanie 4 serie po 6, ciężar dobierz tak żeby było ciężko."
        },
        {
          "id": "L3",
          "text": "Wiosłowanie 3x8 @80kg."
        },
        {
          "id": "L4",
          "text": "Finisher: 20 swingów, to nie jest seria główna — dopisz jako notatkę jeśli musisz."
        }
      ],
      "context": "context/M-D-pl-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-pl-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-pl-barbell-coach",
      "seed": 1,
      "band": "D",
      "locale": "pl",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "rows": [
          {
            "match": "/rozgrzewka|przysiadów z kettlem/i",
            "label": "warm-up kettle squats",
            "sets": 2,
            "reps": 10,
            "weight": null
          },
          {
            "match": "/przysiad 5x5/i",
            "label": "squat 5x5",
            "sets": 5,
            "reps": 5,
            "weight": 100,
            "rest": 120
          },
          {
            "match": "/wyciskanie/i",
            "label": "bench press",
            "sets": 4,
            "reps": 6,
            "weight": null
          },
          {
            "match": "/wiosłowanie/i",
            "label": "barbell row",
            "sets": 3,
            "reps": 8,
            "weight": 80
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 100,
            "rest_seconds": 120,
            "rpe": null,
            "note": ""
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "ciężar dobierz tak żeby było ciężko"
          },
          {
            "id": "L3",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 80,
            "rest_seconds": null,
            "rpe": null,
            "note": ""
          },
          {
            "id": "L0",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": ""
          },
          {
            "id": "L4",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "to nie jest seria główna — dopisz jako notatkę jeśli musisz."
          }
        ]
      },
      "score_line": 0,
      "fields": 13,
      "ok": 0,
      "invented": 2,
      "missed": 11,
      "weight_zero": 0,
      "latency_ms": 4103,
      "cost_usd": 0.00026475,
      "tokens_prompt": 837,
      "tokens_completion": 232,
      "ts": "2026-09-11T16:33:24.628Z",
      "diffs": [
        {
          "row": "warm-up kettle squats",
          "field": "sets",
          "expected": 2,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up kettle squats",
          "field": "reps",
          "expected": 10,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up kettle squats",
          "field": "weight_kg",
          "expected": null,
          "actual": 100,
          "verdict": "invented"
        },
        {
          "row": "squat 5x5",
          "field": "sets",
          "expected": 5,
          "actual": 4,
          "verdict": "miss"
        },
        {
          "row": "squat 5x5",
          "field": "reps",
          "expected": 5,
          "actual": 6,
          "verdict": "miss"
        },
        {
          "row": "squat 5x5",
          "field": "weight_kg",
          "expected": 100,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "squat 5x5",
          "field": "rest_seconds",
          "expected": 120,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "bench press",
          "field": "sets",
          "expected": 4,
          "actual": 3,
          "verdict": "miss"
        },
        {
          "row": "bench press",
          "field": "reps",
          "expected": 6,
          "actual": 8,
          "verdict": "miss"
        },
        {
          "row": "bench press",
          "field": "weight_kg",
          "expected": null,
          "actual": 80,
          "verdict": "invented"
        },
        {
          "row": "barbell row",
          "field": "sets",
          "expected": 3,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "barbell row",
          "field": "reps",
          "expected": 8,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "barbell row",
          "field": "weight_kg",
          "expected": 80,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Rozgrzewka 2 rundy: 10 przysiadów z kettlem."
        },
        {
          "id": "L1",
          "text": "Przysiad 5x5 @100kg, przerwa 2 min."
        },
        {
          "id": "L2",
          "text": "Wyciskanie 4 serie po 6, ciężar dobierz tak żeby było ciężko."
        },
        {
          "id": "L3",
          "text": "Wiosłowanie 3x8 @80kg."
        },
        {
          "id": "L4",
          "text": "Finisher: 20 swingów, to nie jest seria główna — dopisz jako notatkę jeśli musisz."
        }
      ],
      "context": "context/M-D-pl-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-pl-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-en-barbell-self-crossfit",
      "seed": 2,
      "band": "D",
      "locale": "en",
      "modality": "barbell",
      "voice": "self",
      "expected": {
        "rows": [
          {
            "match": "/warm-?up|two rounds/i",
            "label": "warm-up two rounds",
            "sets": 2,
            "reps": 5
          },
          {
            "match": "/snatch/i",
            "label": "snatch E2MOM",
            "sets": 7,
            "weight": null,
            "rest": 120
          },
          {
            "match": "/dead-stop deadlift/i",
            "label": "dead-stop deadlift",
            "sets": 5,
            "reps": 5,
            "weight": 188.2
          },
          {
            "match": "/ab wheel/i",
            "label": "ab wheel",
            "sets": 5,
            "weight": 0
          },
          {
            "match": "/romanian|barbell rows/i",
            "label": "RDL / barbell rows",
            "sets": 2,
            "reps": 8,
            "weight": 102.1
          },
          {
            "match": "/bulgarian/i",
            "label": "Bulgarian split squat",
            "sets": 1,
            "reps": 15,
            "weight": 54.4
          },
          {
            "match": "/thirty-nine|39/i",
            "label": "39 burpees",
            "sets": 1,
            "reps": 39,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 7,
            "reps": 1,
            "weight_kg": null,
            "rest_seconds": 120,
            "rpe": null,
            "note": "E2MOM, work up to a heavy weight — I have not picked the load yet."
          },
          {
            "id": "L3",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 188,
            "rest_seconds": null,
            "rpe": null,
            "note": "dead-stop deadlifts at 415 pounds, and after each deadlift set do one ab wheel rollout."
          },
          {
            "id": "L4",
            "is_prescription": true,
            "sets": 2,
            "reps": 8,
            "weight_kg": 102,
            "rest_seconds": null,
            "rpe": null,
            "note": "superset of barbell rows and Romanian deadlifts at 225 pounds."
          },
          {
            "id": "L5",
            "is_prescription": true,
            "sets": 1,
            "reps": 15,
            "weight_kg": 54,
            "rest_seconds": null,
            "rpe": null,
            "note": "Bulgarian split squats at 120 pounds."
          }
        ]
      },
      "score_line": 47.4,
      "fields": 19,
      "ok": 9,
      "invented": 1,
      "missed": 9,
      "weight_zero": 0,
      "latency_ms": 4890,
      "cost_usd": 0.00027645,
      "tokens_prompt": 919,
      "tokens_completion": 231,
      "ts": "2026-09-11T16:33:25.074Z",
      "diffs": [
        {
          "row": "warm-up two rounds",
          "field": "sets",
          "expected": 2,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up two rounds",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "snatch E2MOM",
          "field": "sets",
          "expected": 7,
          "actual": 2,
          "verdict": "miss"
        },
        {
          "row": "snatch E2MOM",
          "field": "weight_kg",
          "expected": null,
          "actual": 102,
          "verdict": "invented"
        },
        {
          "row": "snatch E2MOM",
          "field": "rest_seconds",
          "expected": 120,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "dead-stop deadlift",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "dead-stop deadlift",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "dead-stop deadlift",
          "field": "weight_kg",
          "expected": 188.2,
          "actual": 188,
          "verdict": "miss"
        },
        {
          "row": "ab wheel",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "ab wheel",
          "field": "weight_kg",
          "expected": 0,
          "actual": 188,
          "verdict": "miss"
        },
        {
          "row": "RDL / barbell rows",
          "field": "sets",
          "expected": 2,
          "actual": 2,
          "verdict": "match"
        },
        {
          "row": "RDL / barbell rows",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "RDL / barbell rows",
          "field": "weight_kg",
          "expected": 102.1,
          "actual": 102,
          "verdict": "match"
        },
        {
          "row": "Bulgarian split squat",
          "field": "sets",
          "expected": 1,
          "actual": 1,
          "verdict": "match"
        },
        {
          "row": "Bulgarian split squat",
          "field": "reps",
          "expected": 15,
          "actual": 15,
          "verdict": "match"
        },
        {
          "row": "Bulgarian split squat",
          "field": "weight_kg",
          "expected": 54.4,
          "actual": 54,
          "verdict": "miss"
        },
        {
          "row": "39 burpees",
          "field": "sets",
          "expected": 1,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "39 burpees",
          "field": "reps",
          "expected": 39,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "39 burpees",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Alright so today. Start with a 250 meter row just to get warm."
        },
        {
          "id": "L1",
          "text": "Then a warm-up, two rounds, five burpees and some PVC pass-throughs each round."
        },
        {
          "id": "L2",
          "text": "Then the snatch complex: seven sets, E2MOM, every two minutes, work up to a heavy weight — I have not picked the load yet."
        },
        {
          "id": "L3",
          "text": "Then five by five dead-stop deadlifts at 415 pounds, and after each deadlift set do one ab wheel rollout so pair those, five ab wheels with the five deadlift sets."
        },
        {
          "id": "L4",
          "text": "Then a superset of barbell rows and Romanian deadlifts, two sets of eight at 225 pounds."
        },
        {
          "id": "L5",
          "text": "Then one set of fifteen Bulgarian split squats at 120 pounds."
        },
        {
          "id": "L6",
          "text": "Finish with thirty-nine burpees for time, AFAP, as fast as possible. Just save the plan for today, September tenth."
        }
      ],
      "context": "context/M-D-en-barbell-self-crossfit.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-en-barbell-self-crossfit.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-de-bodyweight-self",
      "seed": 1,
      "band": "D",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "rows": [
          {
            "match": "/aufwärmen|squads/i",
            "label": "warm-up squats",
            "sets": 2,
            "reps": 10,
            "weight": 0
          },
          {
            "match": "/klimm/i",
            "label": "pull-ups",
            "sets": 5,
            "reps": 5,
            "weight": 0
          },
          {
            "match": "/dips/i",
            "label": "dips",
            "sets": 4,
            "reps": 8,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "Körpergewicht."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW."
          }
        ]
      },
      "score_line": 22.2,
      "fields": 9,
      "ok": 2,
      "invented": 0,
      "missed": 7,
      "weight_zero": 0,
      "latency_ms": 1250,
      "cost_usd": 0.00017385,
      "tokens_prompt": 803,
      "tokens_completion": 89,
      "ts": "2026-09-11T16:33:25.376Z",
      "diffs": [
        {
          "row": "warm-up squats",
          "field": "sets",
          "expected": 2,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up squats",
          "field": "reps",
          "expected": 10,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up squats",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "pull-ups",
          "field": "sets",
          "expected": 5,
          "actual": 4,
          "verdict": "miss"
        },
        {
          "row": "pull-ups",
          "field": "reps",
          "expected": 5,
          "actual": 8,
          "verdict": "miss"
        },
        {
          "row": "pull-ups",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "dips",
          "field": "sets",
          "expected": 4,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "dips",
          "field": "reps",
          "expected": 8,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "dips",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Heute Calisthenics. Aufwärmen zwei Runden à 10 Squads ohne Gewicht."
        },
        {
          "id": "L1",
          "text": "Dann 5 Sätze Klimmzüge, 5 Wiederholungen, Körpergewicht."
        },
        {
          "id": "L2",
          "text": "Dips 4x8 BW."
        },
        {
          "id": "L3",
          "text": "Zum Schluss 20 Band Pull-aparts zwischen den Sätzen — das ist kein Arbeitssatz."
        }
      ],
      "context": "context/M-D-de-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-de-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-de-bodyweight-self",
      "seed": 2,
      "band": "D",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "rows": [
          {
            "match": "/aufwärmen|squads/i",
            "label": "warm-up squats",
            "sets": 2,
            "reps": 10,
            "weight": 0
          },
          {
            "match": "/klimm/i",
            "label": "pull-ups",
            "sets": 5,
            "reps": 5,
            "weight": 0
          },
          {
            "match": "/dips/i",
            "label": "dips",
            "sets": 4,
            "reps": 8,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "Körpergewicht."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW."
          }
        ]
      },
      "score_line": 22.2,
      "fields": 9,
      "ok": 2,
      "invented": 0,
      "missed": 7,
      "weight_zero": 0,
      "latency_ms": 1216,
      "cost_usd": 0.00017385,
      "tokens_prompt": 803,
      "tokens_completion": 89,
      "ts": "2026-09-11T16:33:25.379Z",
      "diffs": [
        {
          "row": "warm-up squats",
          "field": "sets",
          "expected": 2,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up squats",
          "field": "reps",
          "expected": 10,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up squats",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "pull-ups",
          "field": "sets",
          "expected": 5,
          "actual": 4,
          "verdict": "miss"
        },
        {
          "row": "pull-ups",
          "field": "reps",
          "expected": 5,
          "actual": 8,
          "verdict": "miss"
        },
        {
          "row": "pull-ups",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "dips",
          "field": "sets",
          "expected": 4,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "dips",
          "field": "reps",
          "expected": 8,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "dips",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Heute Calisthenics. Aufwärmen zwei Runden à 10 Squads ohne Gewicht."
        },
        {
          "id": "L1",
          "text": "Dann 5 Sätze Klimmzüge, 5 Wiederholungen, Körpergewicht."
        },
        {
          "id": "L2",
          "text": "Dips 4x8 BW."
        },
        {
          "id": "L3",
          "text": "Zum Schluss 20 Band Pull-aparts zwischen den Sätzen — das ist kein Arbeitssatz."
        }
      ],
      "context": "context/M-D-de-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-de-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-fr-endurance-coach",
      "seed": 3,
      "band": "D",
      "locale": "fr",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "rows": [
          {
            "match": "/400/i",
            "label": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
            "sets": 5,
            "reps": 1,
            "weight": null,
            "rest": 90
          },
          {
            "match": "/fentes/i",
            "label": "lunges BW",
            "sets": 3,
            "reps": 8,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L0",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Échauffement 10 minutes de vélo, zone 2, pas de séries."
          },
          {
            "id": "L1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Puis 5 répétitions de 400 mètres, récup 90 secondes."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "Ensuite 3 séries de 8 fentes, poids du corps."
          },
          {
            "id": "L3",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Finis par un effort de 2 km facile, charge non indiquée."
          }
        ]
      },
      "score_line": 57.1,
      "fields": 7,
      "ok": 4,
      "invented": 0,
      "missed": 3,
      "weight_zero": 0,
      "latency_ms": 1996,
      "cost_usd": 0.00025425,
      "tokens_prompt": 799,
      "tokens_completion": 224,
      "ts": "2026-09-11T16:33:26.017Z",
      "diffs": [
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "sets",
          "expected": 5,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "reps",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "rest_seconds",
          "expected": 90,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "lunges BW",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "lunges BW",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "lunges BW",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Échauffement 10 minutes de vélo, zone 2, pas de séries."
        },
        {
          "id": "L1",
          "text": "Puis 5 répétitions de 400 mètres, récup 90 secondes."
        },
        {
          "id": "L2",
          "text": "Ensuite 3 séries de 8 fentes, poids du corps."
        },
        {
          "id": "L3",
          "text": "Finis par un effort de 2 km facile, charge non indiquée."
        }
      ],
      "context": "context/M-D-fr-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-fr-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-fr-endurance-coach",
      "seed": 2,
      "band": "D",
      "locale": "fr",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "rows": [
          {
            "match": "/400/i",
            "label": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
            "sets": 5,
            "reps": 1,
            "weight": null,
            "rest": 90
          },
          {
            "match": "/fentes/i",
            "label": "lunges BW",
            "sets": 3,
            "reps": 8,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L0",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Échauffement 10 minutes de vélo, zone 2, pas de séries."
          },
          {
            "id": "L1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Puis 5 répétitions de 400 mètres, récup 90 secondes."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "Ensuite 3 séries de 8 fentes, poids du corps."
          },
          {
            "id": "L3",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Finis par un effort de 2 km facile, charge non indiquée."
          }
        ]
      },
      "score_line": 57.1,
      "fields": 7,
      "ok": 4,
      "invented": 0,
      "missed": 3,
      "weight_zero": 0,
      "latency_ms": 2174,
      "cost_usd": 0.00025425,
      "tokens_prompt": 799,
      "tokens_completion": 224,
      "ts": "2026-09-11T16:33:26.077Z",
      "diffs": [
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "sets",
          "expected": 5,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "reps",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "rest_seconds",
          "expected": 90,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "lunges BW",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "lunges BW",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "lunges BW",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Échauffement 10 minutes de vélo, zone 2, pas de séries."
        },
        {
          "id": "L1",
          "text": "Puis 5 répétitions de 400 mètres, récup 90 secondes."
        },
        {
          "id": "L2",
          "text": "Ensuite 3 séries de 8 fentes, poids du corps."
        },
        {
          "id": "L3",
          "text": "Finis par un effort de 2 km facile, charge non indiquée."
        }
      ],
      "context": "context/M-D-fr-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-fr-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-fr-endurance-coach",
      "seed": 1,
      "band": "D",
      "locale": "fr",
      "modality": "endurance",
      "voice": "coach",
      "expected": {
        "rows": [
          {
            "match": "/400/i",
            "label": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
            "sets": 5,
            "reps": 1,
            "weight": null,
            "rest": 90
          },
          {
            "match": "/fentes/i",
            "label": "lunges BW",
            "sets": 3,
            "reps": 8,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L0",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Échauffement 10 minutes de vélo, zone 2, pas de séries."
          },
          {
            "id": "L1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Puis 5 répétitions de 400 mètres, récup 90 secondes."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "Ensuite 3 séries de 8 fentes, poids du corps."
          },
          {
            "id": "L3",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Finis par un effort de 2 km facile, charge non indiquée."
          }
        ]
      },
      "score_line": 57.1,
      "fields": 7,
      "ok": 4,
      "invented": 0,
      "missed": 3,
      "weight_zero": 0,
      "latency_ms": 2787,
      "cost_usd": 0.00025425,
      "tokens_prompt": 799,
      "tokens_completion": 224,
      "ts": "2026-09-11T16:33:26.522Z",
      "diffs": [
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "sets",
          "expected": 5,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "reps",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "5×400 m (graded as 5×1; no duration/distance in SCHEMA)",
          "field": "rest_seconds",
          "expected": 90,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "lunges BW",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "lunges BW",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "lunges BW",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Échauffement 10 minutes de vélo, zone 2, pas de séries."
        },
        {
          "id": "L1",
          "text": "Puis 5 répétitions de 400 mètres, récup 90 secondes."
        },
        {
          "id": "L2",
          "text": "Ensuite 3 séries de 8 fentes, poids du corps."
        },
        {
          "id": "L3",
          "text": "Finis par un effort de 2 km facile, charge non indiquée."
        }
      ],
      "context": "context/M-D-fr-endurance-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-fr-endurance-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-es-conditioning-self",
      "seed": 3,
      "band": "D",
      "locale": "es",
      "modality": "conditioning",
      "voice": "self",
      "expected": {
        "rows": [
          {
            "match": "/calentamiento|burpee/i",
            "label": "warm-up burpees",
            "sets": 2,
            "reps": 8,
            "weight": 0
          },
          {
            "match": "/pull-?ups|amrap/i",
            "label": "AMRAP pull-ups",
            "reps": 5,
            "weight": null
          },
          {
            "match": "/thruster/i",
            "label": "thrusters",
            "sets": 3,
            "reps": 8,
            "weight": 40
          },
          {
            "match": "/400/i",
            "label": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
            "sets": 1,
            "reps": 1,
            "weight": null
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L0",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Calentamiento 2 rondas de 8 burpees."
          },
          {
            "id": "L1",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "AMRAP 10 min: 5 pull-ups y 10 push-ups, sin carga escrita."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 40,
            "rest_seconds": null,
            "rpe": null,
            "note": "Luego 3 series de 8 thrusters a 40kg."
          },
          {
            "id": "L3",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Cierro con 400 metros a tope."
          }
        ]
      },
      "score_line": 45.5,
      "fields": 11,
      "ok": 5,
      "invented": 0,
      "missed": 6,
      "weight_zero": 0,
      "latency_ms": 4121,
      "cost_usd": 0.0002526,
      "tokens_prompt": 800,
      "tokens_completion": 221,
      "ts": "2026-09-11T16:33:27.140Z",
      "diffs": [
        {
          "row": "warm-up burpees",
          "field": "sets",
          "expected": 2,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "warm-up burpees",
          "field": "reps",
          "expected": 8,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "warm-up burpees",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        },
        {
          "row": "AMRAP pull-ups",
          "field": "reps",
          "expected": 5,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "AMRAP pull-ups",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "thrusters",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "thrusters",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "thrusters",
          "field": "weight_kg",
          "expected": 40,
          "actual": 40,
          "verdict": "match"
        },
        {
          "row": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
          "field": "sets",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
          "field": "reps",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "400 m (graded as 1×1; no duration/distance in SCHEMA)",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Hoy WOD. Calentamiento 2 rondas de 8 burpees."
        },
        {
          "id": "L1",
          "text": "AMRAP 10 min: 5 pull-ups y 10 push-ups, sin carga escrita."
        },
        {
          "id": "L2",
          "text": "Luego 3 series de 8 thrusters a 40kg."
        },
        {
          "id": "L3",
          "text": "Cierro con 400 metros a tope."
        }
      ],
      "context": "context/M-D-es-conditioning-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-es-conditioning-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-de-bodyweight-self",
      "seed": 3,
      "band": "D",
      "locale": "de",
      "modality": "bodyweight",
      "voice": "self",
      "expected": {
        "rows": [
          {
            "match": "/aufwärmen|squads/i",
            "label": "warm-up squats",
            "sets": 2,
            "reps": 10,
            "weight": 0
          },
          {
            "match": "/klimm/i",
            "label": "pull-ups",
            "sets": 5,
            "reps": 5,
            "weight": 0
          },
          {
            "match": "/dips/i",
            "label": "dips",
            "sets": 4,
            "reps": 8,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "Körpergewicht."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 4,
            "reps": 8,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "BW."
          },
          {
            "id": "L0",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Aufwärmen zwei Runden à 10 Squads ohne Gewicht."
          },
          {
            "id": "L3",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "das ist kein Arbeitssatz."
          }
        ]
      },
      "score_line": 22.2,
      "fields": 9,
      "ok": 2,
      "invented": 0,
      "missed": 7,
      "weight_zero": 0,
      "latency_ms": 3744,
      "cost_usd": 0.00023385,
      "tokens_prompt": 803,
      "tokens_completion": 189,
      "ts": "2026-09-11T16:33:28.372Z",
      "diffs": [
        {
          "row": "warm-up squats",
          "field": "sets",
          "expected": 2,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up squats",
          "field": "reps",
          "expected": 10,
          "actual": 5,
          "verdict": "miss"
        },
        {
          "row": "warm-up squats",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "pull-ups",
          "field": "sets",
          "expected": 5,
          "actual": 4,
          "verdict": "miss"
        },
        {
          "row": "pull-ups",
          "field": "reps",
          "expected": 5,
          "actual": 8,
          "verdict": "miss"
        },
        {
          "row": "pull-ups",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        },
        {
          "row": "dips",
          "field": "sets",
          "expected": 4,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "dips",
          "field": "reps",
          "expected": 8,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "dips",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Heute Calisthenics. Aufwärmen zwei Runden à 10 Squads ohne Gewicht."
        },
        {
          "id": "L1",
          "text": "Dann 5 Sätze Klimmzüge, 5 Wiederholungen, Körpergewicht."
        },
        {
          "id": "L2",
          "text": "Dips 4x8 BW."
        },
        {
          "id": "L3",
          "text": "Zum Schluss 20 Band Pull-aparts zwischen den Sätzen — das ist kein Arbeitssatz."
        }
      ],
      "context": "context/M-D-de-bodyweight-self.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-de-bodyweight-self.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-it-barbell-coach",
      "seed": 1,
      "band": "D",
      "locale": "it",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "rows": [
          {
            "match": "/riscaldamento|swing/i",
            "label": "warm-up swings",
            "sets": 2,
            "reps": 8,
            "weight": null
          },
          {
            "match": "/stacco/i",
            "label": "deadlift 5x5",
            "sets": 5,
            "reps": 5,
            "weight": 140,
            "rest": 180
          },
          {
            "match": "/panca/i",
            "label": "bench press",
            "sets": 4,
            "reps": 6,
            "weight": null
          },
          {
            "match": "/rematore/i",
            "label": "barbell row",
            "sets": 3,
            "reps": 8,
            "weight": 80
          },
          {
            "match": "/burpee/i",
            "label": "15 burpees",
            "sets": 1,
            "reps": 15,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L0",
            "is_prescription": true,
            "sets": 2,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Riscaldamento 2 giri di 8 swing."
          },
          {
            "id": "L1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 140,
            "rest_seconds": 180,
            "rpe": null,
            "note": "Stacco 5x5 a 140kg, riposo 3 minuti."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Panca 4 serie da 6, carica pesante ma non scritta."
          },
          {
            "id": "L3",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 80,
            "rest_seconds": null,
            "rpe": null,
            "note": "Rematore 3x8 a 80kg."
          },
          {
            "id": "L4",
            "is_prescription": false,
            "sets": 0,
            "reps": 0,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Chiudi con 15 burpee, peso corporeo."
          }
        ]
      },
      "score_line": 81.3,
      "fields": 16,
      "ok": 13,
      "invented": 0,
      "missed": 3,
      "weight_zero": 0,
      "latency_ms": 4649,
      "cost_usd": 0.00028485,
      "tokens_prompt": 811,
      "tokens_completion": 272,
      "ts": "2026-09-11T16:33:29.724Z",
      "diffs": [
        {
          "row": "warm-up swings",
          "field": "sets",
          "expected": 2,
          "actual": 2,
          "verdict": "match"
        },
        {
          "row": "warm-up swings",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "warm-up swings",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "weight_kg",
          "expected": 140,
          "actual": 140,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        },
        {
          "row": "bench press",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "bench press",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "bench press",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "barbell row",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "barbell row",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "barbell row",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        },
        {
          "row": "15 burpees",
          "field": "sets",
          "expected": 1,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "15 burpees",
          "field": "reps",
          "expected": 15,
          "actual": 0,
          "verdict": "miss"
        },
        {
          "row": "15 burpees",
          "field": "weight_kg",
          "expected": 0,
          "actual": null,
          "verdict": "miss"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Riscaldamento 2 giri di 8 swing."
        },
        {
          "id": "L1",
          "text": "Stacco 5x5 a 140kg, riposo 3 minuti."
        },
        {
          "id": "L2",
          "text": "Panca 4 serie da 6, carica pesante ma non scritta."
        },
        {
          "id": "L3",
          "text": "Rematore 3x8 a 80kg."
        },
        {
          "id": "L4",
          "text": "Chiudi con 15 burpee, peso corporeo."
        }
      ],
      "context": "context/M-D-it-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 1,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-it-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-it-barbell-coach",
      "seed": 2,
      "band": "D",
      "locale": "it",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "rows": [
          {
            "match": "/riscaldamento|swing/i",
            "label": "warm-up swings",
            "sets": 2,
            "reps": 8,
            "weight": null
          },
          {
            "match": "/stacco/i",
            "label": "deadlift 5x5",
            "sets": 5,
            "reps": 5,
            "weight": 140,
            "rest": 180
          },
          {
            "match": "/panca/i",
            "label": "bench press",
            "sets": 4,
            "reps": 6,
            "weight": null
          },
          {
            "match": "/rematore/i",
            "label": "barbell row",
            "sets": 3,
            "reps": 8,
            "weight": 80
          },
          {
            "match": "/burpee/i",
            "label": "15 burpees",
            "sets": 1,
            "reps": 15,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L0",
            "is_prescription": true,
            "sets": 2,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Riscaldamento 2 giri di 8 swing."
          },
          {
            "id": "L1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 140,
            "rest_seconds": 180,
            "rpe": null,
            "note": "Stacco 5x5 a 140kg, riposo 3 minuti."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Panca 4 serie da 6, carica pesante ma non scritta."
          },
          {
            "id": "L3",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 80,
            "rest_seconds": null,
            "rpe": null,
            "note": "Rematore 3x8 a 80kg."
          },
          {
            "id": "L4",
            "is_prescription": true,
            "sets": 1,
            "reps": 15,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "Chiudi con 15 burpee, peso corporeo."
          }
        ]
      },
      "score_line": 100,
      "fields": 16,
      "ok": 16,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 4975,
      "cost_usd": 0.00028485,
      "tokens_prompt": 811,
      "tokens_completion": 272,
      "ts": "2026-09-11T16:33:30.352Z",
      "diffs": [
        {
          "row": "warm-up swings",
          "field": "sets",
          "expected": 2,
          "actual": 2,
          "verdict": "match"
        },
        {
          "row": "warm-up swings",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "warm-up swings",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "weight_kg",
          "expected": 140,
          "actual": 140,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        },
        {
          "row": "bench press",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "bench press",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "bench press",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "barbell row",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "barbell row",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "barbell row",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        },
        {
          "row": "15 burpees",
          "field": "sets",
          "expected": 1,
          "actual": 1,
          "verdict": "match"
        },
        {
          "row": "15 burpees",
          "field": "reps",
          "expected": 15,
          "actual": 15,
          "verdict": "match"
        },
        {
          "row": "15 burpees",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Riscaldamento 2 giri di 8 swing."
        },
        {
          "id": "L1",
          "text": "Stacco 5x5 a 140kg, riposo 3 minuti."
        },
        {
          "id": "L2",
          "text": "Panca 4 serie da 6, carica pesante ma non scritta."
        },
        {
          "id": "L3",
          "text": "Rematore 3x8 a 80kg."
        },
        {
          "id": "L4",
          "text": "Chiudi con 15 burpee, peso corporeo."
        }
      ],
      "context": "context/M-D-it-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 2,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-it-barbell-coach.json + prompt.md)"
          }
        ]
      }
    },
    {
      "model": "openai/gpt-4o-mini",
      "corpus_id": "M-D-it-barbell-coach",
      "seed": 3,
      "band": "D",
      "locale": "it",
      "modality": "barbell",
      "voice": "coach",
      "expected": {
        "rows": [
          {
            "match": "/riscaldamento|swing/i",
            "label": "warm-up swings",
            "sets": 2,
            "reps": 8,
            "weight": null
          },
          {
            "match": "/stacco/i",
            "label": "deadlift 5x5",
            "sets": 5,
            "reps": 5,
            "weight": 140,
            "rest": 180
          },
          {
            "match": "/panca/i",
            "label": "bench press",
            "sets": 4,
            "reps": 6,
            "weight": null
          },
          {
            "match": "/rematore/i",
            "label": "barbell row",
            "sets": 3,
            "reps": 8,
            "weight": 80
          },
          {
            "match": "/burpee/i",
            "label": "15 burpees",
            "sets": 1,
            "reps": 15,
            "weight": 0
          }
        ]
      },
      "actual": {
        "rows": [
          {
            "id": "L0",
            "is_prescription": true,
            "sets": 2,
            "reps": 8,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Riscaldamento 2 giri di 8 swing."
          },
          {
            "id": "L1",
            "is_prescription": true,
            "sets": 5,
            "reps": 5,
            "weight_kg": 140,
            "rest_seconds": 180,
            "rpe": null,
            "note": "Stacco 5x5 a 140kg, riposo 3 minuti."
          },
          {
            "id": "L2",
            "is_prescription": true,
            "sets": 4,
            "reps": 6,
            "weight_kg": null,
            "rest_seconds": null,
            "rpe": null,
            "note": "Panca 4 serie da 6, carica pesante ma non scritta."
          },
          {
            "id": "L3",
            "is_prescription": true,
            "sets": 3,
            "reps": 8,
            "weight_kg": 80,
            "rest_seconds": null,
            "rpe": null,
            "note": "Rematore 3x8 a 80kg."
          },
          {
            "id": "L4",
            "is_prescription": true,
            "sets": 1,
            "reps": 15,
            "weight_kg": 0,
            "rest_seconds": null,
            "rpe": null,
            "note": "Chiudi con 15 burpee, peso corporeo."
          }
        ]
      },
      "score_line": 100,
      "fields": 16,
      "ok": 16,
      "invented": 0,
      "missed": 0,
      "weight_zero": 0,
      "latency_ms": 5325,
      "cost_usd": 0.00028485,
      "tokens_prompt": 811,
      "tokens_completion": 272,
      "ts": "2026-09-11T16:33:30.705Z",
      "diffs": [
        {
          "row": "warm-up swings",
          "field": "sets",
          "expected": 2,
          "actual": 2,
          "verdict": "match"
        },
        {
          "row": "warm-up swings",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "warm-up swings",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "sets",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "reps",
          "expected": 5,
          "actual": 5,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "weight_kg",
          "expected": 140,
          "actual": 140,
          "verdict": "match"
        },
        {
          "row": "deadlift 5x5",
          "field": "rest_seconds",
          "expected": 180,
          "actual": 180,
          "verdict": "match"
        },
        {
          "row": "bench press",
          "field": "sets",
          "expected": 4,
          "actual": 4,
          "verdict": "match"
        },
        {
          "row": "bench press",
          "field": "reps",
          "expected": 6,
          "actual": 6,
          "verdict": "match"
        },
        {
          "row": "bench press",
          "field": "weight_kg",
          "expected": null,
          "actual": null,
          "verdict": "match"
        },
        {
          "row": "barbell row",
          "field": "sets",
          "expected": 3,
          "actual": 3,
          "verdict": "match"
        },
        {
          "row": "barbell row",
          "field": "reps",
          "expected": 8,
          "actual": 8,
          "verdict": "match"
        },
        {
          "row": "barbell row",
          "field": "weight_kg",
          "expected": 80,
          "actual": 80,
          "verdict": "match"
        },
        {
          "row": "15 burpees",
          "field": "sets",
          "expected": 1,
          "actual": 1,
          "verdict": "match"
        },
        {
          "row": "15 burpees",
          "field": "reps",
          "expected": 15,
          "actual": 15,
          "verdict": "match"
        },
        {
          "row": "15 burpees",
          "field": "weight_kg",
          "expected": 0,
          "actual": 0,
          "verdict": "match"
        }
      ],
      "error": null,
      "input_lines": [
        {
          "id": "L0",
          "text": "Riscaldamento 2 giri di 8 swing."
        },
        {
          "id": "L1",
          "text": "Stacco 5x5 a 140kg, riposo 3 minuti."
        },
        {
          "id": "L2",
          "text": "Panca 4 serie da 6, carica pesante ma non scritta."
        },
        {
          "id": "L3",
          "text": "Rematore 3x8 a 80kg."
        },
        {
          "id": "L4",
          "text": "Chiudi con 15 burpee, peso corporeo."
        }
      ],
      "context": "context/M-D-it-barbell-coach.json",
      "request": {
        "model": "openai/gpt-4o-mini",
        "temperature": 0,
        "seed": 3,
        "usage": {
          "include": true
        },
        "response_format": {
          "type": "json_schema",
          "json_schema": {
            "name": "prescription_rows",
            "schema_ref": "schema.json",
            "strict": false
          }
        },
        "messages": [
          {
            "role": "user",
            "content": "(reconstruct from context/M-D-it-barbell-coach.json + prompt.md)"
          }
        ]
      }
    }
  ]
}
