Contents

Reading a session in detail

Every tile, every column, every chart on a session page: where the number comes from, what it is worth, and what it does not say.

A session page shows about sixty numbers. Some are measured by a sensor, others computed from the GPS track, others still estimated by a physical model. This page tells you which is which, how each one is obtained, and above all what you must not make it say.

One principle that comes back everywhere: when a piece of data is missing, the app shows “—” and not “0”. A zero would be a statement. If a whole block is missing from your session page, it is because the inputs were not there — the matching section below tells you which ones.

The three kinds of number, and why it changes everything

  • Measured: a sensor recorded it. Heart rate from a chest strap, power from a crank power meter, altitude from a barometer. This is as reliable as it gets, sensor quality aside.
  • Computed: derived from the GPS track by a formula with no hidden assumption. Distance, elevation gain, average speed, the second-half drop. Reliable if the track is — hence the importance of the “GPS quality” block.
  • Estimated: a model with constants chosen for you. Pulling power, calories, effort score. Useful to compare yourself with yourself, never to compare yourself with someone else. These blocks carry an “estimate” badge.

The top tiles

The “Metrics” banner gathers what the source (your watch, Strava, or the phone recorder) provided. A missing tile always means “this data does not exist for this session”, never “the value is zero”. The 👤 dot marks data about the human RUNNER, not the dog: that covers everything heart-rate, calorie and measured-power related.

Good to know / abbreviations

Distance
On a Strava import, the watch's value. On a session recorded with the phone, it is recomputed point by point, and a segment is DISCARDED if it is too imprecise (more than 25 m of uncertainty), too spread out (more than 90 s between two points) or physically impossible (more than 90 km/h). Direct consequence: under forest cover, the final distance can end up lower than what you watched tick up live. Doubtful portions are removed, never interpolated.
Active time
The time you were actually moving, pauses excluded. That is the time used as the denominator for pace and average speed — which is why they always come out a little faster than a race clock would give.
Pace
The time to cover one kilometer, in minutes:seconds. The LOWER the number, the faster you are going. It is the mathematical inverse of average speed.
Avg speed
Distance divided by active time, in km/h. For reference, the cruising speeds the app uses internally to judge intensity: canicross 13, bikejoring 22, scootering 18, sledding 18, ski 16.
Max speed
The peak recorded. On an import, this is the watch's raw value — a two-second GPS artifact shows up as is. Anything beyond 75 km/h is considered impossible by the analysis engine itself: treat it as a blip, not as a record.
Elevation gain
The sum of the climbs, in meters. On a phone session, only changes of at least 8 m are counted, so as not to add up altitude noise: a washboard course with 4 m of amplitude will therefore show 0 m. A phone has no reliable altimetry; only a watch with a barometer gives credible elevation gain.
Avg HR / max HR, athlete
Your own heart, never the dog's. The app measures no canine heart data at all. A chest strap is clearly more reliable than an optical wrist sensor, especially in bikejoring where vibration creates lag and smearing.
Calories
Strava's estimate, for the human, never recomputed by the app. Absent on every session recorded with the phone.
Avg cadence
Shown in rpm (crank revolutions per minute) in bikejoring, in spm otherwise. Careful: for running, Strava counts the turnover of ONE leg, so a canicross shows around 88 where a step counter would show 176. On scooter, skis and sled the notion makes no sense and the data is almost always absent.
Avg / max / weighted power
Three tiles that appear ONLY if a bike power meter was fitted. They measure what YOU produce in the pedals. “Weighted” is not an average: it is Strava's calculation, which over-weights surges, so it is always higher than the average, and it represents a physiological cost rather than work done. See the “Watts” section: these three have nothing to do with the pulling power further down the page.
Temperature
The probe in the unit on your wrist — warmed by your arm and by the sun. It regularly overestimates by 5 to 8 °C. Everywhere else in the app (weather verdict, the debrief's heat correction), it is the real weather temperature that is used, not this one. If the two disagree, trust the weather panel.
Suffer score
Strava's relative effort score, computed from your time in heart rate zones. Without a strap, it does not exist. It feeds no calculation in the app: the load engine deliberately refuses human signals to assess a dog.
Kudos
The thumbs-up from your Strava followers. No training value — it is social context brought back with the rest.

GPS quality

This block only exists on sessions recorded with the phone. On a Strava or Garmin import, no quality is measured — so its absence does not mean “perfect GPS”, it means “unknown”.

What each line measures

  • The Good / Fair / Poor badge combines three things: accuracy at the 95th percentile (20 m and 35 m are the two thresholds), the largest gap between two points (30 s and 90 s), and the share of the session on a weak signal (5 % and 25 %).
  • Average accuracy ±X m · p95 ±Y m: the second number is the one that counts. It says that one point in twenty is worse than that. Under 8 m on average, you had open sky; beyond 35 m at p95, you were in dense woods or an urban canyon.
  • Worst gap: the longest silence. Beyond 90 s, this is no longer the signal slowing down, it is the operating system suspending the app. Turn off battery saver.
  • Weak signal: the cumulative time spent with accuracy beyond 25 m, rounded to the minute. So “0 min” can hide up to 29 seconds.

A “Poor” badge does not invalidate the session, but it changes its status: distance and elevation gain become estimates, and the debrief's kilometer-by-kilometer breakdown is to be taken with a pinch of salt. That is exactly what the warning shown under the diagnostic table says.

The session charts

Five possible charts: heart rate, speed, altitude, cadence and power. Their horizontal axis is DISTANCE in kilometers when the source provides it, and time in minutes otherwise. Each one shows three numbers at the top — min, average, max — and draws the average as a horizontal dashed line.

Four reading traps, all real

  • The vertical axis is not anchored at zero: it fits the session's values with 8 % of margin. A 3 bpm variation fills the whole frame and looks dramatic. Always read the numbers, not the shape.
  • The average shown on the chart is a PER-SAMPLE average, stops included. The one in the top tiles is computed over active time. On speed, the chart will therefore always sit lower than the tile — both are right, they answer different questions.
  • The trace is decimated to 250 points to stay smooth, but min and max are computed over the complete series. A peak announced in the “max” number can be invisible in the drawing.
  • On a Strava import, speed is already smoothed at the source: real peaks are shaved off and the chart is flatter than reality.

Advanced GPS analysis

This block replays the whole track and pulls out what the watch did not compute. It only appears past three thresholds: at least 12 GPS points, at least 300 m and at least 2 minutes of movement. Below that, you see “Not enough usable GPS data”.

A rule common to this WHOLE block: a portion is ignored if speed there is below 1.8 km/h or above 108 km/h. Every speed in this section is therefore a MOVING speed, stops removed. That is why they do not line up with a calculation done by hand over total duration.

Good to know / abbreviations

Reliability badge
High beyond 200 GPS points, medium beyond 60, low below that. Careful: it measures ONLY the quantity of points, not their accuracy. A 1 Hz watch over four minutes shows “high reliability”.
Color map, Speed mode
Five bands from red to green. The thresholds are the QUINTILES of this session, not absolute speeds. The consequence to remember: a perfectly steady run shows as much red as green, because one fifth of the portions falls into each band by construction. Red does not mean “slow”, it means “the slowest fifth of this run”.
Color map, Terrain mode
Three bands: climb, flat, descent, with a threshold at ±3 % gradient.
Records on this session
Compared in the database against the EXACTLY identical team (same set of dogs) and the same discipline. Two hard limits: there is no distance or elevation filter at all, so an average-speed record over 800 m of flat beats a hilly 20 km run; and adding a dog creates a brand-new team, hence a “record” from the second run of that line-up onward.
Effort type
A duration class (sprint under 6 min, short under 20, medium under 45, long under 90, endurance beyond) and an intensity obtained by dividing your speed by the discipline's cruising speed: at least 95 % gives “sustained”, at least 75 % “moderate”, otherwise “easy”. Those cruising speeds are fixed constants, never personalized: a fast dog will always be “sustained”, a steady dog always “easy”.
Thermal conditions
Air temperature, taken from historical weather for the place and the time (and not from your watch's probe). Five bands: cold under 0 °C, cool under 5, ideal up to 15, mild up to 20, hot beyond. This is a DRY temperature: neither humidity, nor radiation, nor wind enters this classification.
Speed by gradient
Three lines — climb, flat, descent — with a threshold at ±3 %. The bar represents a share of DISTANCE, the number on the right a speed: two different quantities on the same line. “Climb 30 %” means “30 % of the kilometers”, not “30 % of the time” (which will be more). This block disappears if the measured elevation is too small to be told apart from noise.
Turns
The track is resampled every 5 m, heading smoothed over 12 m, and a direction change is counted from 12° up. Tight means a radius under 12 m, wide under 40 m. Take it as an order of magnitude: on a wide trail, cutting the corner creates phantom turns, and a 5 m radius announced at 30 km/h is physically impossible — that is a GPS artifact.
Speed retention (fade)
Compares the speed of the first half with that of the second, splitting by DISTANCE and not by time. Four verdicts: negative below -2 %, steady up to 2 %, slight drop up to 8 %, heavy drop beyond. The trap is structural: on a climb-then-descent course, this number measures the TERRAIN, not your fatigue. On intervals, it depends on where the half-distance mark falls.
Course segments
Automatic split by gradient type, ranges shorter than 200 m merged into the previous one, 12 segments at most (the longest are kept). These are NOT Strava's public segments, which have their own block further down the page.

Watts

It is the most-asked question, and it deserves a straight answer: on a session page there can be TWO families of watts with nothing in common. They do not measure the same thing, do not come from the same source, and it is normal for them to show very different numbers.

Family 1 — the “Avg power”, “Max power” and “Weighted power” tiles (marked 👤) and the “Power” chart. They only exist if a bike power meter was fitted. That meter measures what YOU produce in the pedals: not the dog, not the towline. Without a meter, these four items are absent.

Family 2 — the “Pulling power (estimated)” block, which carries an “estimate” badge. There is no sensor at all. The app applies a physics formula to your speed and your gradient as recorded by the GPS. That is the one this section talks about from here on.

How the traction number is built, step by step

  1. For each small interval of the track, the app adds up three forces: rolling (proportional to mass), gradient (mass × gravity × gradient), and air (proportional to the square of speed).
  2. If the sum is negative — downhill, when gravity is enough — it is brought back to zero. The model then records 0 watts.
  3. Power = force × speed, on each interval.
  4. The result is averaged weighted by TIME, over only the intervals where you were really moving.
  5. “Per dog” is that average divided by the number of tagged dogs. Nothing more.

The assumptions, written out plainly (you cannot change any of them)

  • System mass, rig + human + dog: 90 kg in bikejoring, 85 on a scooter, 110 in sledding, 75 on skis. Whether you weigh 55 kg or 110 kg, you read the same number.
  • Rolling resistance: 0.015 in bikejoring, 0.018 on a scooter, 0.050 in sledding and skijoring. The bikejoring value matches a tire rolling on hard ground; on soft trail or sand, the real value is three to four times higher, so power is largely underestimated.
  • Air penetration: 0.45 m² in bikejoring, 0.50 on scooter and sled, 0.40 on skis.
  • In canicross there is NO number at all — and that is deliberate: a rolling and drag model makes no sense for a running human.

What this number does not say

  • “System power” is NOT what your dog pulls. It is the power needed to move the whole thing forward, whatever its source. In bikejoring, everything you produce by pedaling is counted in there.
  • “Per dog” is a division, not a measurement. No split by size, by position in the team or by actual engagement. A passenger dog in a team of six “produces” as much as the lead dog.
  • There is no wind. Drag is computed on your speed relative to the GROUND, not relative to the air. Twenty kilometers per hour of headwind nearly doubles the real drag without changing the displayed number at all.
  • There is no acceleration. Surges — the start, a sprint, the exit of a turn — are exactly the moments when a dog works hardest, and the model does not see them.
  • Descents are worth zero watts. A very downhill course therefore drags the average down even though the dogs ran the whole way.
  • Changing the session's discipline changes the watts RETROACTIVELY, since the discipline picks the mass and the coefficients.
  • These watts feed no load or recovery calculation in the app. Do not use them as a basis for dosing training.

Expected orders of magnitude, on the flat, at cruising speed

  • Bikejoring at 22 km/h: about 140 W and 23 N. At 25 km/h: about 180 W.
  • Scootering at 18 km/h: about 110 W and 22 N.
  • Sledding at 18 km/h: about 310 W and 62 N — the rolling resistance of snow is what dominates.
  • Skijoring at 16 km/h: about 185 W and 42 N.
  • A 5 % climb in bikejoring at 22 km/h takes it to about 410 W: gradient weighs far more than speed.
  • Beyond 700 W in bikejoring, or an average force above 200 N, suspect noisy altitude rather than a feat.

A detail that matters, and that most users miss: a session recorded on the PHONE does not send a smoothed gradient. The gradient is then derived from raw altitude, which wobbles by a few meters at every point. Since negative values are brought back to zero and positive ones kept whole, that noise does not cancel out, it adds up — and the displayed power is structurally inflated. On a phone, read this block as a trend only, never as a value.

What this number IS worth, in one sentence: a comparison of you with yourself, on the same course, in similar conditions. “145 W last week, 168 W today on the same loop” is useful information. “My team puts out 310 W, yours 240” is not.

Heart rate zones

This block splits your time into five bands, at 60, 70, 80 and 90 % of a reference. It only appears if the source provided a continuous heart rate stream. These are YOUR zones, never the dog's: the app measures no canine heart data.

The point you absolutely must understand is written under the block, but deserves unpacking: the reference used is THIS SESSION'S MAX HR, not your real max HR. Mechanical consequence — the highest beat of the session is by definition at 100 % of the reference, so there is ALWAYS time in zone 5, even on an easy run. A stroll where your heart topped out at 140 will show “Z5: above 126 bpm” and several minutes spent in it. So these zones are read within a session (“I spent most of my run in the lower part of today's effort”), never from one session to the next.

Things to watch

Three automatic signals, compared with the dog's usual over the last 180 days, same discipline. They require at least three reference sessions — except the third, which fires with no history at all.

The three rules, and their weak point

  • Speed down: triggered below 93 % of usual, alert below 88 %. The reference is an UNweighted average of the sessions: four 800 m warm-ups drag the usual down and can mask a real drop. It also mixes every course profile — a mountain run triggers the alert with no fatigue whatsoever.
  • HR high for this pace: triggered above 5 % over usual, alert above 8 %, and only if the pace is comparable. This is YOUR heart rate, not the dog's — despite sitting right next to the previous line, which is about the dog.
  • Heavy second-half drop: from 10 % up, alert at 15 %. No history required. On an interval session or a descent-then-climb course, it fires every time.

The note under the block says the essential: these are automatic signals, not a diagnosis. They exist to make you look at your dog, not to conclude in your place. And they rely on the FIRST tagged dog of the session, which only makes sense if that dog really did most of the work.

The session report

What each item covers

  • The intensity badge (light, moderate, sustained, hard, very intense) reads off the internal “load”: under 25, under 50, under 80, under 120, then beyond.
  • “Load” is a unitless score, on a scale of roughly 0 to 250. Its graduation is not displayed: remember that the tip into “hard” is at 80.
  • “Avg pace” is displayed in km/h, despite its name. And in comparisons, “+18 % pace” means “faster” — the opposite of what the word suggests.
  • The “vs 30-day avg” comparisons fire at ±15 %, over the sessions of the last thirty days containing the first dog, ACROSS ALL DISCIPLINES. A canicross compared with an average dominated by bikejoring will always come out far below.
  • “Estimated recovery” is a table of fixed steps tied to intensity and distance, not an individualized calculation.

Comparing: base and reference

Below the GPS analysis, the comparison block answers a single question: “compared with what?”. Two settings drive it, and everything else in the block follows from them. Changing them recomputes the tables, the charts and the map.

Base — WHICH sessions go into the comparison

  • Same course: runs starting from the same spot within a hundred meters or so, over an equivalent distance within 500 m, in the same discipline. This is not track recognition: two completely different loops that start from the same parking lot and cover the same length are grouped together.
  • Similar distance: same discipline, distance within ±25 %. Looser, so terrain becomes a factor that muddies the reading.
  • Auto: takes “same course” as soon as there are at least two passes, and falls back to “similar distance” otherwise.
  • In all three cases, the window is 180 days and only EARLIER sessions count. A twelve-month-old puppy is no longer the same athlete six months later; comparing with later runs would also make the number unstable retroactively.
  • A greyed-out button means no session meets that criterion. The reason is written just below the button group.

Reference — WHAT you are compared with inside that set

  • Usual: the MEDIAN, never the average. A single exceptional race in the set would be enough to pull an average, but not a median.
  • Best: ONE real session, picked on average speed (distance divided by time), among those that have a usable kilometer breakdown.
  • It is never a point-by-point maximum. Taking the best of each slice would manufacture a session nobody ever ran, and would put you in deficit everywhere, including on an excellent run.
  • In “Best” mode, ONE single session feeds everything: the charts, the diagnostic's reference column, the raw gap. Plural phrasings of the “vs 1 passes” kind are a wording flaw, not a wrong calculation.

With no dog tagged, the comparison still works: it is then made against your other runs WITHOUT a dog. The two populations are never mixed — a “usual” halfway between towed and solo would make every solo session catastrophic and every towed session exceptional. If the session has no dog but is not marked “solo” either, the screen tells you: it is simply waiting to be tagged.

On a session with several dogs, it is the FIRST dog in the list that defines the comparison set. If your team often changes line-up, that is the first explanation to look at when a number surprises you.

Finally, a point of honesty: the number of sessions announced is not the same everywhere, and that is normal. The button counts the whole set; the “Where the gap comes from” card keeps only the sessions usable by the thermal model; the speed chart keeps only those that have a kilometer breakdown; the detailed charts are capped at the 8 most recent, because reloading each session's second-by-second data is expensive. When that cap kicks in, the legend under the charts tells you.

Where the gap comes from

Three numbers, in km/h, that break down your performance of the day. They read left to right like a subtraction.

Good to know / abbreviations

Raw gap
Your average speed minus the reference's. Positive means faster, so better.
Due to heat
The share of that gap the model attributes to temperature, by comparing the day's temperature with the set's. Always negative or zero when it was hotter than usual: that is what the heat cost you. See the next section for the detail of the model.
Left to explain
The raw gap minus the heat share. This is the most interesting number: what remains once the weather is neutralized. Positive means “better than usual at equal temperature”.

A case worth recognizing: when heat shows “—” and columns 1 and 3 show the SAME number, that does not mean “heat had nothing to do with it”. It means “we do not have enough data to say” — no thermal model, so nothing was subtracted.

Kilometer by kilometer

The table that shows where the time went. It relies on the kilometer breakdown provided by the source, so it only appears on sessions that have one. The row highlighted in red is the costliest segment, the same one marked on the chart and on the map.

Good to know / abbreviations

km
The number of the kilometer AMONG THOSE KEPT. An aberrant split is discarded, so the numbering can skip compared with what your watch shows.
Position
Where this kilometer sits as a percentage of the run. This is the column that ties in with the charts, whose horizontal axis is also a percentage.
Time
The moving time of the kilometer, pauses excluded.
Speed
The average speed of this kilometer.
Ref.
What the reference was doing AT THE SAME PERCENTAGE OF THE RUN, and not at its own kilometer number N. Comparing your 4th kilometer out of 6 with the 4th kilometer of an 8 km run would make no sense: one is two thirds in, the other halfway.
Delta
Your speed minus the reference. Red below, green above, grey if the delta is exactly zero.
Δ elev.
The NET altitude difference between the start and the end of the kilometer, not an elevation gain. A kilometer that climbs 30 m then comes back down 30 m shows 0. The real cumulative elevation gain is read in the top tiles and in the diagnostic.
HR
Your average heart rate over the kilometer. Often absent, it is an optional field.

The diagnostic

Fifteen indicators at most, each with its value for the day, its reference and the delta. A row whose value is missing is not displayed at all. The middle column changes name depending on the setting: “Usual” or “Best”.

Color follows ONLY the sign of the delta, with no threshold at all: green if the delta goes the right way, red otherwise, grey if the indicator has no good-or-bad direction (elevation gain, max HR, cadence, calories, effort score, temperature, humidity, wind — these are neither good news nor bad news, they are explanations). A delta of exactly zero is grey.

Good to know / abbreviations

Avg speed / Max speed
Higher is better. Max speed uses a robust value here — a capped 98th percentile — and not the raw peak shown in the top tiles: that is why the two numbers can differ, and this one is the more honest of the two.
Pace variation
The standard deviation of your speed divided by its average, as a percentage. LOWER is better: it is a measure of consistency. An interval session will mechanically have a high value without that being a fault.
Second-half drop
The same fade as in the GPS analysis, split by distance. Lower is better. Reminder: on a climb-then-descent profile, it measures the terrain.
Elevation gain
The real cumulative elevation gain, not to be confused with the “Δ elev.” column of the previous table. Neutral: neither good nor bad, it is context.
Vertical ascent speed (VAM)
The meters climbed per hour, computed ONLY on the portions that are uphill and moving. It is not your total elevation gain divided by your total duration. Higher is better.
Average HR
Lower is better, at equal performance: that is the principle of cost. Max HR, for its part, is neutral.
Cadence
In crank revolutions per minute in bikejoring, in strides per minute otherwise.
Power
The value from the power METER, not the traction estimate. Absent with no meter.
Temperature / Humidity / Wind
The session's weather context, compared with the set's. Always grey: they explain, they do not judge.

A warning can appear under this table if the session's GPS quality was not good. Take it seriously: it is the same track that feeds the speeds, the kilometer breakdown and the charts.

Where you lost time

Three views of the same information, from three angles. All rest on the same breakdown: your run is cut into twenty slices of 5 % of distance, and each slice is compared with the reference at the same percentage.

How to read the three

  • The chart: the solid line is you; the dashed line is the reference; the area between the two is filled red when you are below, green when above. It is the area that reads at a glance, not the two lines. The vertical red band marks the costliest segment.
  • The delta bars: the same thing, slice by slice, around a central zero.
  • The map: your track colored by the same delta, tied to the GPS points by distance covered. Hovering a slice gives its percentage and its delta as a number.

The costliest segment is not the lowest point of the chart: it is the RUN of consecutive slices whose cumulative deficit is the largest. A long stretch slightly below costs as much as a short deep hole — which is exactly the reality of a race. And if there is no stretch below at all, no segment is designated: inventing a weak point on a good session would serve no purpose.

Major trap, worth remembering before you panic at a very red map: the color scale is RELATIVE to the session. The brightest red matches your worst delta of the day, whatever it is. On an excellent run, that saturated red can be worth less than 0.2 km/h. The only absolute number is the one in the hover.

All the charts

Nine stacked charts, collapsed by default because they cost a reload of the second-by-second data of the session AND of its references. They all share the same x-axis — 0 to 100 % of YOUR run — and the same width: you can read a vertical line and see everything that was happening at the same moment.

Why a fraction of distance and not time: the GPS samples over time, so points pile up where you slow down. Splitting by point number would stretch the climbs and squash the descents, which is exactly the opposite of what we are trying to see. And it is also what makes it possible to overlay two sessions that are not the same length.

The order of the nine charts is not alphabetical — we go from symptom down to cause

  • Speed, in km/h — the symptom. Higher is better, so green is above.
  • Heart rate, in bpm — LOWER is better, so here green is BELOW. That is deliberate, not an accidental flip.
  • Power, in watts — the power meter's. Absent if there is no meter, rather than a flat line at zero that would read as information.
  • Cadence — in crank revolutions or in strides depending on the discipline.
  • Cardiac cost, in bpm per km/h — how many beats each unit of speed costs you. This is THE chart that tells “I slowed down” apart from “I slowed down AND it was costing me more”. The second is a problem, the first only a pace.
  • Power cost, in watts per km/h — the same reasoning with the power meter.
  • Altitude, Gradient, Temperature — the context. Always grey: they explain the first six, they are not judged.

The four numbers under each chart

  • Min and Max: the extremes of the SLICES, not instantaneous measurements. The “Max” of speed is therefore not your top speed: it is the fastest of your forty slices.
  • Slice avg: the average of the slices, which gives the same weight to each piece of distance. Your average speed, on the other hand, gives the same weight to each second — and since you spend more time in the slow slices, it is always lower. A concrete example: 4 km at 24 km/h then 1 km at 6 km/h give 20.4 as a slice average and 15.0 as a real average speed. Both are right, they do not measure the same thing.
  • vs ref: the delta with the reference, computed ONLY on the slices where both curves have a measurement. Without that precaution, a two-minute stop was enough to invent a cardiac-cost delta colored red.

Three things to know before concluding from a chart

  • The vertical scales are NOT shared between charts. Each one fits its own values. Two dips that look identical on two graphs bear no relation in amplitude.
  • A perfectly flat plateau can mean “no measurement here”: an empty slice takes its neighbor's value, because showing zero would dig a false chasm.
  • The two cost charts cut off below 4 km/h. A long stop or a walked section silently disappears from them — that is deliberate (140 bpm at 0.4 km/h would give 350 and crush the whole scale), but it means those two charts do not necessarily cover the whole session.

The temperature correction

This is what feeds the “Due to heat” line. The principle: over the last 365 days of the same team and the same discipline, the app looks for how much your speed drops per extra degree, while also accounting for the fact that your fitness changes over time.

How the model is built

  • It does not use a classic regression but a MEDIAN-of-slopes method: a real training log contains races, truncated sessions and GPS blips, and a single outlier is enough to tip a classic regression over. Not a median.
  • Two variables are estimated together, temperature and elapsed time. Without that, a season that warms up would make the dog's progress look like heat sensitivity.
  • The slope is CAPPED at zero or less: a dog does not go faster because it is hotter. An estimated positive slope is an artifact, and is brought back to zero.
  • The reference speed is the one the model predicts at 12 °C, at your fitness in the MIDDLE of the analyzed period. Twelve degrees is an anchoring convention, not a physiological norm; the middle of the period keeps every number from moving each time a new session is imported.
  • It takes at least 8 sessions and 6 °C of spread between the coolest and the hottest. Below that there is no model at all, and the “Due to heat” line shows “—”.

The limits, said plainly

  • This is not causality. It is a regression on your training log: everything that varies alongside temperature — the start time, the season, the surface, your motivation — is absorbed into the slope attributed to heat.
  • The model is fitted on a set of sessions DIFFERENT from the one your session is compared with: 365 days for the model, 180 for the comparison, with filters that are not the same.
  • A heat share of 0.00 is ambiguous: it can mean “this dog is not very heat-sensitive” or “the estimate was absurd and was neutralized”. The screen does not tell the two apart.
  • It is a linear model: a constant loss per degree, with no threshold and no tipping point. Humidity enters no calculation at all, even though it is a major factor in a dog's heat risk.
  • If a session carries a watch-probe temperature rather than a weather temperature, it enters the model with that bias.

The takeaway: this is a tool to understand why a session looks worse, not a safety thermometer. For the dog's safety, it is the weather verdict that is authoritative, with the feels-like temperature and the humidity.

What the numbers do not replace

Six common mix-ups, to settle once and for all

  • All heart rate, calorie and measured-power data is YOURS. The app measures nothing cardiac on the dog. The 👤 dot marks it on the tiles.
  • The watts in the tiles (sensor, human) and the traction watts (model, whole system) are two unrelated things. It is normal for them to show very different numbers.
  • A kilometer's “Δ elev.” is a net difference; “Elevation gain” is a cumulative sum of climbs. Same screen, two quantities.
  • “Course segments” (automatic split by gradient) and “Segments crossed” (Strava public segments) are two different blocks despite the similar names.
  • The colors of the speed map and those of the loss map are RELATIVE to your session. They do not compare from one run to another.
  • Missing data shows as “—”. A displayed “0” is a real zero value.

To make these numbers mean something

  1. Tag the dogs that actually pulled. That single piece of information drives power per dog, team records, the things to watch and the whole comparison block.
  2. Check the discipline. It picks the traction model, the cruising speeds, the cadence unit and the comparison set.
  3. Wait for the GPS fix before starting, and turn off battery saver on long runs.
  4. Do the same loop again. Almost everything this page describes becomes far more reliable as soon as there are two comparable passes on the same loop.
  5. If you have a heart rate strap, wear it: it unlocks the zones, the cardiac cost, the drift and a good part of the diagnostic.

If something goes wrong

  • A whole block is missing: the source did not provide the inputs. GPS quality only exists on sessions recorded with the phone; sensor watts, splits, Strava segments and calories only exist on imports; pulling power does not exist in canicross.
  • “Not enough usable GPS data”: it takes at least 12 points, 300 m and 2 minutes of movement.
  • The comparison buttons are all greyed out: there is no other comparable session yet. Do the same course again, or pick “Similar distance”, which is more permissive.
  • The reference curve sits exactly on top of yours: there were not enough comparable sessions to draw a real reference. The legend under the chart says so.
  • An aberrant max speed: that is a GPS artifact. The diagnostic uses a robust value, but the top tile shows the watch's raw peak.
  • Two different temperatures on the same page: the tile shows your watch's probe, the “Thermal conditions” block the real weather. Trust the second.
  • An elevation gain of 0 m on a hilly course: without a barometer, changes of less than 8 m are not counted, so as not to add up noise.

Good to know / abbreviations

Team
The exact set of dogs tagged on a session. Records and part of the comparisons are done on a strictly identical line-up.
Comparison set
The batch of past sessions yours is compared with, defined by the “Base” setting.
CV (coefficient of variation)
Standard deviation divided by average, as a percentage. Displayed under the name “Pace variation”. Lower = steadier.
Elevation gain (D+)
The sum of the climbs, in meters. To be distinguished from “Δ elev.”, which is a net difference.
Fade
The speed drop between the first and the second half, as a percentage of the first. Displayed under the name “Second-half drop” or “Speed retention”.
Median
The middle value once everything is sorted. Unlike the average, an extreme value does not shift it.
N (newton)
The unit of force. One newton is about 100 g hanging from a line. An average traction force of 25 N amounts to pulling 2.5 kg permanently.
Quintile
One fifth of a sorted set. The five colors of the speed map are quintiles of your session.
Slice
One of the run-percentage chunks the charts are resampled onto: 5 % for the main speed chart, 2.5 % for the nine detailed charts.
VAM
Average vertical ascent speed, in meters climbed per hour, computed on the uphill-and-moving portions only.
W (watt)
The unit of power: a force applied at a speed. See the “Watts” section — the app shows two kinds that do not measure the same thing.

Need shorter answers? Read the FAQ.