TIQ goalie mask logo with Analytics That Save Your Game slogan
Help · Method · Analytics

How TendyIQ Works

The spreadsheet tells you a goalie let in three. TendyIQ tells you where the puck came from, how dangerous it was, and whether the goalie gave themselves a chance to stop it. This page explains how we evaluate and develop goaltenders — the thinking, the metrics, and how to drive the site.

Living document — updated as we ship
Our Philosophy

Judge the Save Chance, Not Just the Scoreboard

A goals-against number is an outcome. Development happens one layer below it — in the quality of chances a goalie faced and the decisions they made on each one.

Context first

Not all shots are equal

A point shot and a backdoor tap-in are both "one shot" on a stat sheet. We weight every shot by where it came from, so a quiet 30-save night and a stolen game read differently.

Process over result

Good positions, repeatable results

Pucks take funny bounces. What a goalie controls is depth, angle, and tracking. We measure those directly so a goalie is credited for doing the right thing.

Development loop

Measure → explain → improve

Every metric is built to point at a drill. "Too deep on in-tight shots" or "beaten glove-high from the slot" is something a coach can actually work on next week.

Using TendyIQ

From the Bench to the Breakdown

The whole loop, start to finish. Score a shot right here: the same taps on the web or in the mobile app, and everything on this page is computed for you. Try it, or watch an example.

Hawks vs Thunder · Period 1
Shot #1
  1. Tap where the shot came from One tap stamps the danger zone — no tagging.
  2. Tap where the goalie was Only when positioning capture is on. You can skip it.
  3. Tap where it hit the net Sets the net region and suggests the save type.
  4. Confirm the details and save The positioning box is pre-checked by the engine. Then score the next one.
→

Read the goalie profile

Finalize the game and the profile fills in: SV%, GAA, GQA, GSAx, shot and net-zone heatmaps, and positioning accuracy — all trended game over game.

→

Tune & develop

Coaches set positioning tolerances per age level and compare goalies on the leaderboard. Every breakdown is built to point at the next drill.

The Analytics · Shot Quality

Shot Danger Zones

Everything starts here. The attacking half is split into 15 named zones, each rated low, medium, or high danger. A single tap on the rink stamps every shot with its zone — no manual tagging — and that stamp feeds expected goals, net heat, and the leaderboard.

hover or tap a zone
Close Slot
High danger CS
26% expected goals NHL benchmark

About 26 goals per 100 shots from here against a league-average goalie.

Danger levels
High danger Close Slot · Slot
Medium High Slot · L/R Slot · Center Point
Low Points · Mids · Low corners · Back Wall
Why it matters
  • Shot quality, not shot count. Twelve slot chances are a harder night than thirty point shots. The zone weights each shot by how often it actually goes in.
  • Fair comparisons. Expected goals and GSAx are built on these rates, so goalies behind strong and weak teams are judged on the same footing.
  • Coaching targets. Save % by zone shows where a goalie leaks, like solid from distance but beaten in the slot, and points at the drill that fixes it.
The Analytics · The Flagship Number

Expected Goals & Goals Saved Above Expected

Give every zone its historical goal rate, add them up across the shots a goalie faced, and you get their expected goals against — what a league-average goalie allows on that exact workload. Subtract what they actually allowed and you get GSAx, the single cleanest measure of goaltending: it rewards stopping hard chances and never punishes a goalie for a heavy night of easy ones.

Expected goal rate by zone (per shot)

Worked example — one 32-shot night

A goalie faces a realistic mix: a handful of slot chances, some high-slot and wing shots, the rest from distance — and allows 2.

Expected against
3.7
Actual against
2
GSAx
+1.7

That's a .938 save percentage against an expected .884 — the kind of gap a raw save% hides but GSAx surfaces.

How to read GSAx
  • Plus is good. +1.7 means 1.7 fewer goals than a league-average goalie would have allowed on those exact shots. Minus means more.
  • It beats save % on fairness. A .900 on thirty point shots and a .900 on thirty slot chances look identical in save %. GSAx gives the second goalie the credit.
  • Read the trend, not one game. A single night is noisy. The goalie profile tracks GSAx game over game, where real improvement shows up.
Per-Game Grade

GQA — Goalie Quality

GQA rolls a single game into one number. It blends goals allowed against ice time — scaled to the age level's period length, so a Squirt game and a Bantam game are judged on their own terms — with saves made, and adjusts for overtime. It's what sorts the goalie leaderboard and anchors the game-by-game trend line.

Game-by-game GQA — the trend line on every goalie profile

Each game grades to one number and the profile plots them, so a goalie and coach can see the arc. Higher is better — a shutout-caliber night grades high; soft goals on a light workload pull it negative. Example trend.

Beaten Where?

Net Hot Zones

Beyond where on the ice, we track where in the net pucks get past the goalie — an 8-region map of the goal. Over a season it exposes patterns a single game hides: glove-high leaks, repeated five-holes, a soft blocker side.

The 8 net regions (example goals allowed)

The same net you tap when scoring — shown here for a left-catching goalie, whose glove is on the viewer's right (the highlighted glove-high corner). Glove vs. blocker side is resolved per goalie's catching hand, so "over the glove" vs. "over the blocker" is always labeled correctly for each netminder.

Interactive · Positioning

Did the Goalie Give Themselves a Chance?

This is the one metric about the goalie's own body, not the shot. On every tracked shot we ask two independent questions — is the goalie square to the puck, and at the right depth for where the shot came from? Drag the shooter (S) and the goalie (G) to see exactly how we measure each.

drag S (shooter) & G (goalie)
How to read it
  • S Shooter, where the shot came from
  • G Goalie, where they were set when it was taken
  • Shot line, from the shooter to the centre of the net
  • Depth: how far out along that line
  • Off-line: how far to the side of it
Things to try
  • Drag the shooter in close (under 12 ft). The minimum depth drops to zero, so sitting on the goal line is fine there.
  • With the shooter in tight, pull the goalie past the top of the crease to see too far out.
  • Slide the goalie sideways at the same depth. The verdict flips once off-line passes the tolerance.
—
Depth off goal line
0.0ft
at this distance: between 1.0 and 10.0 ft —
Off-line (perp.)
0.0ft
flag if > 3.0 ft —
Shot distance
0.0ft
shooter → net centre
Thresholds (tuned per age level)
2.5 ft
10.0 ft
2.25 ft
Example shots

Why depth is a projection, not a distance

Depth is how far the goalie has come out from the goal line, along the line the shooter is actually looking down. We project the net→goalie vector onto the net→shooter direction. A goalie glued to the goal line sits at 0 ft of depth — and against a shot from range, the shooter sees the whole net.

Because it's a projection, a goalie who steps out but drifts sideways is only credited for the part of that step down the sightline. The sideways part reappears as the off-line distance. The two numbers are the two legs of a right triangle on the net→goalie vector: depth along the shot line, off-line square to it.

Both are in absolute feet — not a percentage of distance. Try the Point shot, square and Point shot, deep presets: same distance, opposite verdict.

The math

With the net centre N, shooter S and goalie G on the rink (in feet), let û be the unit vector from the net toward the shooter and d = |S − N| the shot distance. Then:

depth = (G − N) · û
off-line = |(G − N) × û|
normal shot
required depth = min depth × clamp((d − 12) / (22 − 12), 0, 1)
allowed depth = min(max depth, max(6, d / 2))
breakaway / shootout / penalty shot
required depth = 4 × min(1, d / 10)
allowed depth = min(max depth, max(6, d − 4))

A shot is flagged when off-line > tolerance, depth < required, or depth > allowed. Example: a normal shot from 17 ft with the 2.5 ft minimum needs 1.25 ft of depth and allows up to 8.5 ft. On a breakaway from the same spot the goalie needs 4 ft and can come out as far as 10 ft (the max-depth cap). The numbers shown are the defaults; each is tunable per age level.

What it leaves out. The model is flat, top-down and the same for every body size. It doesn't know how big the goalie is, whether they're standing or in butterfly, or how the gap looks bigger from close range. Those effects are why tolerances are set per age level rather than treated as universal.

goal line net shooter shot line (net → shooter dir = û) goalie depth off-line
Depth is the net→goalie vector's component along the shot line; off-line is its component square to it. Move the goalie and the two legs trade off — exactly what the panel reports.

How much depth is enough?

It depends on where the shot comes from, so depth is judged against a band that moves with shot distance — not a single number:

  • From range (22 ft+), the goalie should be at least 2.5 ft off the goal line, well into the crease. Staying on the line hands a long shot the whole net.
  • In tight (inside 12 ft), there's no minimum. Sitting on the line against a shooter on top of you is correct technique. Between the two, the minimum ramps up smoothly.
  • Too far out is flagged too: past half the gap to the shooter, or past the age level's max depth, a goalie is open to a deke or a pass. Anywhere inside the crease never counts as too far out.
  • Breakaways, shootouts and penalty shots are one-on-one, so coming out to take away the shooter's view is the right play. The goalie should hold at least 4 ft out until the shooter is inside 10 ft, then give ground steadily back to the goal line. Too far out there means getting within 4 ft of the shooter, where a deke wins.
  • Rebounds skip the depth check — the goalie is recovering, not setting depth. They're still judged on being square to the puck.

Every one of these distances is a default. Each age level can have its own.

The positioning stats we keep — on every goalie's profile
Positioning Accuracy
.82
Share of tracked shots where the goalie was well-positioned — neither off-angle nor outside the depth band.
Angle Accuracy
.88
Share inside the off-line tolerance — squarely between the puck and the net.
Depth Accuracy
.91
Share inside the depth band for the shot distance — out far enough to cut the angle, not so far they're beaten by a deke or pass.
Avg Angle Error
2.3° glove side
Mean off-line error, signed — surfaces a consistent lean to the glove or blocker side to coach out.
Save % · Well-positioned
.930
Save rate on shots where positioning was sound.
Save % · Disadvantaged
.840
Save rate when flagged — the gap between these two is the on-ice cost of poor positioning.

Every figure is computed over tracked shots (those with a captured goalie position) and shown per goalie — careerwide and per season. Numbers above are illustrative examples; we'll publish good / average / needs-work ranges from live league data once enough real games are tracked.

See it on your own bench

Everything here runs on real games the moment you track them.

Request a Demo

The positioning tool above runs the exact geometry TendyIQ uses on every tracked shot. Defaults shown (2.25 ft off-line; 2.5 ft minimum depth from 22 ft out; 10 ft maximum depth; breakaways 4 ft out until the shooter is inside 10 ft) are the platform fallbacks; live games resolve every dial per age level. The expected-goal rates toggle between an NHL-anchored benchmark and live youth rates computed from the database; the net-zone counts and the GQA trend line are illustrative examples.