Add matched training signals, daily recovery and performance analysis

This commit is contained in:
Peter Stockings
2026-10-03 13:22:32 +10:00
parent e6e2f22479
commit 418e03583a
37 changed files with 1380 additions and 47 deletions
+9 -1
View File
@@ -5,7 +5,7 @@ PRESETS = [
"name": "HR in steady segments",
"category": "Effort & recovery",
"description": "Match five-minute moving segments by pace, speed consistency and HR coverage.",
"query": 'segments\n during last 12 weeks\n where pace between 5:20 and 5:40 /km\n and pace_variability <= 5 %\n and sensor_coverage >= 80 %\n and duration >= 4 min\n summarize weighted_mean(heart_rate) as "Steady-segment HR"\n by week\n compare none\n baseline previous 90 days\n flag above baseline 1.5 sd min 5 runs sustained 2 buckets\n chart line',
"query": 'segments\n during last 12 weeks\n reduce by run min 3 min\n where pace between 5:20 and 5:40 /km\n and pace_variability <= 5 %\n and sensor_coverage >= 80 %\n and duration >= 4 min\n summarize weighted_mean(heart_rate) as "Steady-segment HR"\n by week\n compare none\n baseline previous 90 days\n flag above baseline 1.5 sd min 5 runs sustained 2 buckets\n chart line',
},
{
"name": "Speed/HR decoupling",
@@ -92,3 +92,11 @@ PRESETS = [
"query": "runs\n during last 6 months\n summarize median(distance), median(pace), count()\n by weekday\n having count() >= 3 runs\n compare none\n chart bar",
},
]
# Editable advanced examples. No account observations or inferred HR boundaries.
from .training_signals import signal_queries
PRESETS.extend({"name": d["name"], "category": "Deep training signals",
"description": d["notes"], "query": d["query"]}
for d in signal_queries())