OK here is the answer from copilot:
"Why I don’t do this entirely using just the JSON
In short: The JSON primarily contains a summary and metrics that have already been aggregated or derived. For mining efficiency, I often need segmentation and plausibility checks, which only work properly with streams.
What works well in the JSON
It already contains EF/Power-HR/Decoupling/VI/zone times etc. (if set) → High-level assessment is possible. (These are then ‘ICU values’, not recalculated by me.)
What is missing without streams (or becomes unreliable)
Climb-only analysis: I only want EF/Power-HR/VI in genuine uphill sections (e.g. >x% gradient) – this requires the time series (altitude+distance+watts+HR per second), otherwise it’s a rough approximation.
Surge detection: JSON tells you “there were peaks”, but not how often, how long, or where (climb? crest? recovery?) → that is precisely what pacing cost is.
Artifacts/stop-and-go: Streams show whether variability comes from terrain/descent or from poor control.
Bottom line:
From the JSON, I can assess the stimulus.
From the streams, I can really coach climbing efficiency (exactly where you’re ‘costing’ yourself, how to smooth it out, what it means for the finish)."