Nav Canada’s ADS-B Proposal for 2028

I built a free tool that takes a route and an altitude and shows exactly which parts of the flight need ADS-B Out in Canada: fly.blakecrosby.com/adsb-check.

The rule itself sounds simple: ADS-B Out is required in Class A and Class B airspace. Applying it to a real flight is not. Class B in Canada isn’t a ring around a big airport like it is in the US. It’s controlled airspace above 12,500 ft, made up of hundreds of separate transition areas, control area extensions and airways, each defined by coordinates in a 200-page PDF. Whether you’re in it depends on where you are and how high you are, and that changes as you climb and descend.

On 10 November 2026, NAV CANADA also proposed extending ADS-B requirements into Class C, D and E airspace. So there are now two questions: what do I need today, and what will I need after 2028? The tool answers both.

The good news is if you’ve already installed a single antenna 1090ES ADS-B receiver and you fly below 12,500′. You will not need to do anything after 2028, you are already compliant.

What’s required today

Today, ADS-B Out is required in all Class A airspace (since 10 August 2023) and all Class B airspace (since 16 May 2024). The Designated Airspace Handbook (DAH) lists both as “ADS-B transponder airspace”. Where that airspace starts depends on where you are:

AirspaceADS-B Out required
Class A, Southern Control Area18,000 ft ASL to FL600
Class A, Northern Control AreaFL230 to FL600
Class A, Arctic Control AreaFL270 to FL600
Class B (transition areas, control area extensions, parts of some terminal areas and control zones, low-level airways and T-routes)Above 12,500 ft ASL to below 18,000 ft

The equipment has to be 1090ES ADS-B Out meeting DO-260B or later, with antenna diversity (top and bottom antennas). 978 MHz UAT, which many US aircraft use, does not count.

Two details catch people out. Class B starts above 12,500 ft, so cruising at exactly 12,500 needs nothing. And in the north, Class A doesn’t start until FL230 or FL270, so a flight at FL220 from Yellowknife to Resolute needs ADS-B for only about 26 NM of an 841 NM trip.

What NAV CANADA has proposed

On 10 November 2026, NAV CANADA published a Notice of Proposal that would make Class C, and Class D and E transponder airspace, ADS-B airspace. These are the areas that already require a Mode C transponder: Class C terminal areas, specific Class D and E areas listed in the DAH, and controlled airspace from 10,000 to 12,500 ft within radar coverage.

The important part for owners is the equipment. At or below 12,500 ft, certified 1090ES installations without antenna diversity would be accepted. A single-antenna 1090ES install would therefore cover most low-level flying under the proposal, but not Class A or B, where diversity is still required. The notice also confirms ADS-B will be required in Class E above FL600, which was approved earlier.

The notice sets no effective dates. NAV CANADA has said Class C, D and E requirements will come no sooner than 2028, so the tool labels these rules “Proposed after 2028”.

How the tool works

To check a route:

  1. Enter it the way you’d file it. Airports (CYYZ, or EGLL at either end), navaids (YOW), DAH fixes (VOKEB), airways (CYVR T800 YXC CYYC) and coordinates (4530N07530W) all work, and airports worldwide are supported.
  2. Set your cruise altitude and aircraft type. The tool builds a simple climb and descent profile, so the parts near airports below 12,500 ft are handled correctly.
  3. Pick your ADS-B equipment: none, 978 UAT, 1090ES with a single antenna, or 1090ES with antenna diversity.

You get a map with the route coloured by what’s required, a vertical profile, and a list of route sections with the airspace that triggers each requirement. Two toggles switch between In force now and Proposed after 2028, and between colouring by Requirement or by My equipment. The second shows in red exactly where your aircraft falls short. Hovering over the profile shows the matching spot on the map.

Clicking anywhere on the map allows you to see more details about that airspace.

Two examples

Both use the turboprop climb profile and a single-antenna 1090ES install.

RouteCruiseDistanceRequired nowProposed after 2028Single-antenna 1090ES
Toronto to Ottawa (CYYZ CYOW)11,000 ft196 NM0 NM191 NM, all without diversityCompliant now and after 2028
Calgary to Edmonton (CYYC CYEG)13,000 ft132 NM87 NM127 NM, 40 NM of it without diversityNot compliant for 87 NM, now and after 2028

Toronto to Ottawa at 11,000 ft needs nothing today. Under the proposal, almost the whole flight would be in the 10,000–12,500 ft transponder band or the Toronto and Ottawa terminal areas, but a single antenna would be enough.

Calgary to Edmonton at 13,000 ft is the more interesting case. The middle 87 NM is Class B, which needs antenna diversity today and would still need it after 2028. Drop to 12,000 ft and the single-antenna install would comply under both rule sets.

What it doesn’t do

This is a planning aid, not an official source. A few things it doesn’t model:

  • Airway MEAs. Class B on airways starts at 12,500 ft or the minimum en-route altitude, whichever is higher. MEAs aren’t in the DAH, so the tool always uses 12,500 ft.
  • Radar coverage. The DAH’s 10,000–12,500 ft transponder band applies only “within radar coverage”, which isn’t published. The tool treats all controlled airspace in that band as covered, which overstates the proposed requirement in remote areas.
  • FAA-delegated airspace. The DAH exempts Canadian airspace where air traffic services are delegated to US controllers, in some border areas. Those areas aren’t removed.
  • NOTAMs and accommodations. NAV CANADA can grant unequipped aircraft access case by case. Neither that nor NOTAMs are considered.

Try it

The tool is free at fly.blakecrosby.com/adsb-check. Put in a route you fly often and see where you stand today and after 2028. If you’re deciding between a single-antenna install and full antenna diversity, the My equipment view shows exactly which flights the cheaper option would cover.

If something looks wrong, or a route doesn’t parse, let me know.