session_load
Calculate Foster session load (Garmin RPE x timer minutes) for one run or a selection of activities, flagging unpriced sessions so totals read as a lower bound.
Instructions
Foster session load: Garmin's own post-run RPE x timer minutes, in AU.
Args:
run: run_id, activity_id or Garmin file id -- ONE activity. Empty,
with no selection filter, means the latest run.
start_date, end_date, cluster, last_n: a SELECTION instead of one
activity -- of EVERY SPORT, since load is a dose and a rated
ride is load the legs carried (`summary.n_by_sport`). Name a run
OR a selection, never both.
run_type: REJECTED when non-empty -- this build has no run_type source.
THE RPE IS GARMIN'S. Some watches ask "how hard was that?" when an
activity is saved; an activity where the device did not ask, or the
rating was declined, is `unavailable` with that reason -- NEVER priced at
0 and never filled from another activity. `garmin_feel` is SHOWN and
never used: it is a different question, and its 1-5 direction is
unverified.
TIMER TIME, NOT MOVING TIME: load is a session DOSE, not a rate, so
standing time counts. Read `filters` for the formula and its basis.
OVER A SELECTION, `summary.sum_foster_load_au_priced` sums the priced
sessions. When any session is unpriced -- unrated (`n_unrated`), or rated
with no timer time (`n_rated_unpriced`, each with its reason) -- it is a
LOWER BOUND and `is_lower_bound` says so; unpriced sessions are left out,
never counted as zero. No GPS coverage gate applies -- load is volume,
not a terrain comparison.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| run | No | ||
| last_n | No | ||
| cluster | No | ||
| end_date | No | ||
| run_type | No | ||
| direction | No | ||
| segment_id | No | ||
| start_date | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |