/*
SCENARIO TITLE: The Third Face
AUDIENCE: Pilot (GA, 800-2,500 hr, Instrument-rated, SR22 owner/operator)
TONE: Professional (measured, light narrative voice)
PRIMARY TOPIC: Weather interpretation and in-flight weather decision-making
near an occluded front
SECONDARY TOPIC: Icing recognition/response; FIKI use; CAPS awareness
AIRCRAFT/EQUIPMENT: 2019 Cirrus SR22T G6 Perspective+, N822LW. FIKI certified
(Flight Into Known Icing) with TKS fluid-weeping system.
Garmin Perspective+ dual PFD/MFD, Synthetic Vision, datalink
wx (SiriusXM + FIS-B ADS-B In), built-in O2.
SETTING: KCCR (Concord, CA, Bay Area) to KMFR (Medford, OR).
320 NM direct. Friday morning, late March.
WEATHER: Occluded front over northern California/southern Oregon;
low center drifting northeast. Mixed PIREPs. Icing risk
between roughly 8,000-13,000 MSL on northern portion of
route. Clear-air below 5,000 but mountains close.
ADM THEMES: Weather interpretation (surface analysis, prog chart,
PIREP, SIGMET/AIRMET), icing recognition, alternate
selection, CAPS-envelope awareness, press-on bias
HAZARDOUS ATTITUDES: Invulnerability (FIKI illusion: "I can fly through this"),
get-there-itis, macho, confirmation bias on PIREPs
TOTAL DECISIONS: 10 per playthrough
TOTAL ENDINGS: 10 (variants keyed to accumulated wx knowledge flags)
MIN DECISION DEPTH: 10
TIMED DECISIONS: No
ESTIMATED DURATION: 30-40 minutes
VERSION: 1.0
LAST REVIEWED: 2026-04-22
REVIEWER: Claude (initial draft) / Harvey Madison (pending)
*/
<<set $badchoices to 0>>
<<set $pathArray to []>>
/* Per-decision knowledge flags. True = knowledge error made. */
<<set $frontMisread to false>>
<<set $altBadChoice to false>>
<<set $alternateThin to false>>
<<set $pirepsIgnored to false>>
<<set $icingLate to false>>
<<set $fikiMisused to false>>
<<set $cellTooClose to false>>
<<set $divertLate to false>>
<<set $approachMisjudged to false>>
<<set $goAroundBlown to false>>
/* Positive signals */
<<set $frontUnderstood to false>>
<<set $cleanExit to false>>
<<set $afternoonLaunch to false>>
<<set $mentorPath to "">>
<<set $mentorIntervene to "">>
<<set $satOnIt to false>>
<<set $filedAlt to "">>
<<set $bandAlt to "">>
<<set $appr to "">><<set $pathArray to $pathArray.concat(["Opening"])>>
<div class="scenario-title">The Third Face</div>
<div class="scenario-subtitle">A Cirrus SR22T Into the Occluded Front</div>
You are Dr. Wen Lin: 55, 1,600 hours, instrument-rated and current, a family-medicine physician who bought a 2019 Cirrus SR22T G6 Perspective+ four years ago and has put 800 hours on it. Most of those hours are on routes exactly like today's: Concord (KCCR) up to Medford (KMFR), a monthly medical outreach flight you do for a rural clinic network. You know the country. You know the airplane. N822LW is FIKI-certified and topped off with TKS last week.
Your nephew Jamal (22, student pilot, 60 hours toward his private) is in the right seat for the first time on one of these trips. He is polite and quiet and has asked you about nothing but the airplane since he buckled in. His questions are good. You like flying with him.
It is Friday morning, late March, 0730 local. Concord is overcast at 3,800 feet with good visibility below. The ramp is cool and the airplane has been in your hangar overnight with the TKS fluid warm.
Your clinic meeting at Medford is at 1200. You've blocked a 0830 takeoff to give yourself margin for the route.
You have pulled the brief on ForeFlight in the FBO lounge. Before you file, there is a weather picture you want to make sure you understand.
<<link "Pull up the surface analysis" "Dec1">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Dec1: Reading the occluded front"])>>
<div class="decision-heading">Preflight Planning: Decision 1 of 10: Reading the System</div>
The surface analysis chart shows a low pressure center sitting off the northern California coast, drifting east-northeast. Trailing it is a cold front; ahead of it, a warm front; and where the cold front has caught the warm front and lifted it off the surface, an occluded front. The occlusion runs roughly north-south about seventy miles west of your planned route at departure time, and the analysis suggests it will cross your route between KRDD (Redding) and KMFR during your flight window.
<div class="wx-block">SFC ANAL (valid 1500Z):
Low center: 41N 126W, 994 mb, drifting 045 at 15 kt
Occluded front: from low center SE toward KRBG, then curving NE into Oregon
AIRMET Zulu (icing): moderate icing 8,000-14,000 MSL,
extending from N of KSAC northward through western OR
AIRMET Tango: moderate turbulence below 16,000 MSL
NO SIGMETs currently active in the forecast area
PIREPs (last 2 hours):
UA /OV RBG180045 /TM 1410 /FL100 /TP C208 /SK OVC080-TOP110
/TA -4 /WV 22045 /TB MDT /IC NEG
UA /OV MFR180030 /TM 1425 /FL120 /TP PA46 /SK BKN090-TOP130
/TA -6 /WV 23050 /TB LGT-MDT /IC LGT-MDT MIXED 90-120
UA /OV RDD330025 /TM 1440 /FL080 /TP BE35 /SK OVC 050-TOP080
/TA -1 /IC NONE BELOW 080</div>
The occluded front is the tricky one. An occlusion has three faces: the cold front below, the warm front aloft, and the occluded front where the two meet. Each face has its own icing and turbulence profile. You have to pick which face you're going to cross and at what altitude.
Jamal looks at the chart over your shoulder. "Is an occluded front just a cold front that caught up to a warm front?" he asks. You tell him that's the short version. The long version is that the system is three-dimensional, and the icing and turbulence risk depends on which layer you're flying through.
<<link "Launch on the 0830 slot. Between the datalink picture and the FIKI system, the airplane has tools for the details." "Dec1A">><<set $pathArray to $pathArray.concat(["Dec1: A (launch as planned)"])>><</link>>
<<link "The occluded front will be crossing your route mid-flight. Delay 90 minutes to let the system drift east ahead of you, then re-brief." "Dec1B">><<set $pathArray to $pathArray.concat(["Dec1: B (delay 90 min)"])>><</link>>
<<link "Reroute east, file KCCR-KSMF-KRBL-KMFR, stay east of the occlusion through the mountains." "Dec1C">><<set $pathArray to $pathArray.concat(["Dec1: C (reroute east)"])>><</link>>
<<link "Scrub for today. The icing AIRMET and the occlusion together make the route marginal." "Dec1D">><<set $pathArray to $pathArray.concat(["Dec1: D (scrub)"])>><</link>><<set $frontMisread to true>>
<<set $badchoices to $badchoices + 1>>
You file the 0830 slot as planned. The front is a problem but it is a manageable problem. FIKI handles ice for the duration of an encounter. The datalink shows a clear block to the east if you need to deviate. You tell Jamal, "The airplane's tools are the tools. We'll use them."
<<link "File IFR and step to the airplane" "Dec2">><</link>>You close the ForeFlight briefing, walk to the FBO counter, and push your block to 1000. You will re-brief in 45 minutes; by then the 1700Z SFC ANAL will be available, and the PIREPs will have refreshed. Jamal asks if you can still make the meeting. You tell him you think so, assuming the 1000 launch holds. "And if it doesn't?" he says. "Then we don't," you say.
The 1700Z analysis, when it arrives, has moved the system less than the model promised. The occlusion will still cross your route; later than first advertised, a little thinner at its southern end, but there. You go with what the morning actually gives you.
<<link "File IFR for the 1000 slot and walk out" "Dec2">><</link>><<set $frontUnderstood to true>>
You file KCCR-KSMF-KRBL-KMFR. Distance goes from 320 to 390 NM. Flight time from 2:10 to 2:35. Fuel burn adds about eight gallons, well within your reserve. You route yourself east of the occlusion's forecast axis; the PIREPs in that corridor show no icing reports.
Jamal nods as you trace the new route on the map. He is watching everything.
<<link "File the dogleg and step to the airplane" "Dec2">><</link>>You scrub. You call Renata, the clinic coordinator, who has worked with you for four years and takes weather news the way coastal people take tide tables.
Then she says, "Before you hang up. Dr. Okonkwo's locum fell through last night, so you were the only physician on tomorrow's board. I've got eleven in-person patients who already arranged rides. If your weather clears this afternoon, could you do a 1400 start instead? I can hold the room."
Jamal looks at you sideways. The 1700Z charts will be out within the hour, and the occlusion is moving, on some schedule of its own.
<<link "Re-brief when the 1700Z products drop. If the southern tail has thinned, take the 1400 start." "ScrubSlide">><<set $pathArray to $pathArray.concat(["Dec1D-2: slide to 1400"])>><</link>>
<<link "Hold the scrub. Eleven patients or not, today's picture is today's picture. Offer the Zoom." "ScrubJamal">><<set $pathArray to $pathArray.concat(["Dec1D-2: hold the scrub"])>><</link>><<set $afternoonLaunch to true>>
<<set $frontUnderstood to true>>
The 1700Z surface analysis comes in while Jamal buys the FBO's last two breakfast burritos. The low has filled two millibars and picked up speed; the occlusion's southern tail is thinner and farther east than the morning chart drew it. The icing AIRMET still stands, and the PIREPs are still a conversation, but the afternoon math is different math: you can route the eastern dogleg, KSMF-KRBL, and cross behind the worst of the southern tail instead of through it.
You call Renata back and take the 1400 start. You file for an 1145 wheels-up, the dogleg route, and brief Jamal on what changed and why. He asks better questions the second time.
<<link "Step to the airplane with the new numbers" "Dec2">><</link>>You hold the scrub. Renata sighs the sigh of a woman re-sorting eleven appointments, thanks you for the straight answer, and books the Zoom for 1400. The meeting will be fine. Meetings are always fine.
You and Jamal spend the late morning at the hangar with the charts spread on the workbench, and that is where he tells you: his first solo cross-country is endorsed for Sunday, KCCR up to Redding and back. "Behind this system, right? Saturday it's all supposed to be gone." He says it lightly. He watches you not-lightly.
The prog charts show the low filling and lifting out by Saturday night, with a trailing trough and gusty northwest flow behind it Sunday.
<<link "Sit down with him now and have him brief YOU, chart by chart, while you ask questions." "ScrubText">><<set $mentorPath to "socratic">><<set $pathArray to $pathArray.concat(["Dec1D-3: Socratic brief"])>><</link>>
<<link "Tell him to build the plan himself tonight and text it to you. You'll check his work." "ScrubText">><<set $mentorPath to "check">><<set $pathArray to $pathArray.concat(["Dec1D-3: self-brief, you check"])>><</link>>
<<link "Re-plan his route for him while you're both standing here. Faster, and it'll be right." "ScrubText">><<set $mentorPath to "doit">><<set $pathArray to $pathArray.concat(["Dec1D-3: do it for him"])>><</link>><<if $mentorPath is "socratic">>You spend an hour at the workbench making him walk you through the system: where the low goes, what the trough behind it does, what the wind does in the passes north of Red Bluff on a gusty northwest day. He finds most of it. What he doesn't find, by 2000 that evening, shows up anyway, in a text with his final plan attached.<<elseif $mentorPath is "check">>He goes home to build it. At 2000 the plan arrives by text, neat as a lab report.<<else>>You sketch the route for him in twenty minutes, hand him the kneeboard copy, and he photographs it gratefully. At 2000 he texts you his own revised version anyway, because he is the kind of student who rebuilds the answer to see how it works.<</if>>
The plan is mostly good. Except for one line: "If there's any leftover cloud over the ridges I'll just climb over the top of it and stay VFR above, tops should be low behind the front."
You read it twice. A 60-hour student, solo, planning VFR-over-the-top across rising terrain in post-frontal gusts, on the strength of a tops forecast. His CFI will review the plan before endorsing the flight. Probably. Sunday is two days away.
<<link "Call him tonight. Ask questions until he finds the problem himself." "End_Scrubbed">><<set $mentorIntervene to "call">><<set $pathArray to $pathArray.concat(["Dec1D-4: call tonight"])>><</link>>
<<link "Text his CFI a quiet heads-up and let the endorsement process do its job." "End_Scrubbed">><<set $mentorIntervene to "cfi">><<set $pathArray to $pathArray.concat(["Dec1D-4: loop in CFI"])>><</link>>
<<link "Let it ride. He has an instructor, and it isn't your endorsement to give." "End_Scrubbed">><<set $mentorIntervene to "ride">><<set $satOnIt to true>><<set $badchoices to $badchoices + 1>><<set $pathArray to $pathArray.concat(["Dec1D-4: let it ride"])>><</link>><div class="decision-heading">Ending: The Flight That Didn't Happen</div>
The Zoom meeting runs 1400 to 1630 and accomplishes what it needs to. The eleven rides get rescheduled across two weeks. Nobody dies of a canceled clinic day, which is the kind of sentence that sounds obvious until you've sat with the pressure of it at 0745 with the keys in your hand.
<<if $mentorIntervene is "call">>You call Jamal that night. You don't tell him anything; you ask him things. What's the terrain elevation on that segment. What does a 30-knot northwest wind do on the lee side of it. What's underneath him if the tops forecast is wrong by four thousand feet, which tops forecasts routinely are. It takes him eleven minutes to dismantle his own plan, and he does it himself, which is the only way it sticks. He flies Sunday afternoon instead, lower, on the east side, in air the trough has finished with.<<elseif $mentorIntervene is "cfi">>You text his CFI that evening, framed as a question rather than a report. She calls Jamal the next morning and makes the plan review a full lesson. The Sunday flight gets re-planned and flown Monday in post-trough air. It works, and a small voice notes that you outsourced a conversation you were equipped to have on a Friday night when the answer mattered.<<else>>You let it ride. Sunday morning you check the KRDD METARs with your coffee and find gusts 28 in the passes and a broken deck sitting on the ridgeline. Jamal's CFI, it turns out, caught the over-the-top line at the endorsement review Saturday and scrubbed him to Monday. The system worked. You spent Sunday morning learning that you'd bet a 60-hour student's margin on the system working.<</if>>
<div class="debrief">
<h3>What happened</h3>
You scrubbed a flight that had real weather ambiguity, held the scrub under genuine human pressure (eleven patients and their rides are not an abstraction), and then spent the day doing the other half of a senior pilot's job: supervising the judgment of a student who trusts you.
<h3>ADM analysis</h3>
The cancel is always available, and it is usually the least satisfying choice on the menu. The pressure on this one was textbook external pressure, delivered kindly, by someone you respect, on behalf of people with real needs. That is what makes it dangerous; nobody scrubs into the teeth of a villain. <<if $satOnIt>>The second decision of the day deserves equal attention: you spotted a safety-relevant misunderstanding in a student pilot's plan and elected to stay quiet. It worked out because a CFI did her job. Intervention culture says the senior pilot who sees something says something, through whatever channel, every time. The system catching it is the backup plan, not the plan.<<else>>The second decision of the day was the quiet one: you saw a safety-relevant hole in a student's plan and you acted on it. That is intervention culture working the way the safety literature draws it.<</if>>
<h3>What good judgment looks like here</h3>
A scrub is not the end of the day's flying decisions. Pilots in your seat carry a second responsibility: the people who learn from you. VFR-over-the-top, for a solo student, over terrain, behind a front, is a classic killing pattern precisely because the sky behind a front looks so clean from the ground.
<h3>Key takeaway</h3>
The flight that doesn't happen cannot go wrong. The judgment you pass along keeps flying after you've gone home.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Dec2: Altitude selection"])>>
<div class="decision-heading">Preflight Planning: Decision 2 of 10: Cruise Altitude</div>
<<if $afternoonLaunch>>The afternoon version of the system is thinner at its southern tail, but the layers are the same layers.<</if>> Whichever route you are now flying, you still have to pick an altitude. The IFR low en-route chart gives you segments with MEAs between 8,000 and 11,000 MSL depending on the piece of the route. You have oxygen in the SR22T; you can comfortably cruise 12,000 and above.
<div class="wx-block">MEAs on filed route:
KCCR→LIN: 7,000
LIN→MXW: 9,000
MXW→RBG: 11,000 (Mt Shasta segment)
RBG→KMFR: 9,000
Freezing level analysis (FZL chart 1500Z):
Below front: 7,500 MSL
Above (aloft warm air): 12,500 MSL (warm wedge between 8,500-13,000)
Above that: -2°C at 15,000
Tops forecast:
W of front: BKN080-TOP140 embedded
Over occlusion: OVC090-TOP165 with embedded CB to FL200
E of front: SCT080 clearing to FEW by KMFR</div>
Jamal points at the freezing level chart. "There's warm air sandwiched in between the cold layers?" Yes. The warm front aloft is the reason the occlusion has a complicated thermal profile. A flight at 10,000 will be in cold cloud. A flight at 13,000 may be in warm cloud. A flight at 15,000 is in cold cloud again.
<<link "A. Cruise 10,000 MSL. Straight through the icing band but FIKI will handle it." "Dec2A">><<set $pathArray to $pathArray.concat(["Dec2: A (10,000 in icing band)"])>><</link>>
<<link "B. Cruise 13,000 MSL. Above most of the cold layer, in the warm-wedge sweet spot if it holds." "Dec2B">><<set $pathArray to $pathArray.concat(["Dec2: B (13,000 warm wedge)"])>><</link>>
<<link "C. Cruise 16,000 MSL. Above the tops of most of the front and well above the icing band." "Dec2C">><<set $pathArray to $pathArray.concat(["Dec2: C (16,000 above tops)"])>><</link>>
<<link "D. Cruise 7,000 MSL. Below the freezing level, under the cloud deck, accept low-level turbulence." "Dec2D">><<set $pathArray to $pathArray.concat(["Dec2: D (7,000 below freeze)"])>><</link>><<set $altBadChoice to true>>
<<set $badchoices to $badchoices + 1>>
<<set $filedAlt to "10,000">>You file for 10,000. You tell Jamal, "FIKI is for exactly this." You mean it. The airplane is certified for it.
<<link "Call clearance" "Dec3">><</link>><<set $filedAlt to "13,000">>You file for 13,000. The built-in O2 will go on for both of you in the climb; Jamal has flown on cannulas twice before and is not alarmed.
<<link "Pick up your clearance" "Dec3">><</link>><<set $filedAlt to "16,000">>You file for 16,000. The built-in O2 goes on for you in the climb (the rule wants crew on it above 14,000, and you don't play games with the 30-minute window below that) and for Jamal right along with you; in the SR22T it's routine. You note the tops forecast for your route includes "embedded CB to FL200" and plan to watch the datalink closely.
<<link "Copy your clearance and go" "Dec3">><</link>><<set $filedAlt to "7,000">>You file for 7,000. It keeps you below the freezing level, under the bases near Roseburg, in and out of the lower deck around Redding, all of it warmer than freezing, at the cost of a bumpy ride over rising terrain at comparatively low altitude. The MEAs will have something to say about it north of Redding, and you know that conversation is coming.
<<link "Call for your clearance" "Dec3">><</link>><<set $pathArray to $pathArray.concat(["Dec3: TKS fluid and deice preflight"])>>
<div class="decision-heading">Preflight Inspection: Decision 3 of 10: TKS System and Ice Margin</div>
You are on the ramp with the engine cover removed, walking the airplane. The SR22T's preflight is familiar: TKS panels intact, fluid ports clean, pitot heat check, stall vane, prop check, brake puck thickness. You did a thorough one yesterday evening when you filled the TKS reservoir.
The indicator in the cabin shows the reservoir at 85% full: enough for roughly 2:20 of MAX flow, or approximately 4:30 of NORMAL flow. The FAA definition of FIKI "minimum enroute capacity" for this airframe is 1:30 of NORMAL flow, which you have comfortably.
<div class="callout">TKS chemistry reminder: ethylene glycol-based fluid weeps through laser-drilled porous titanium panels on leading edges. Prevents ice accretion and can shed accreted ice when cycled on early. Not a sustained "keep flying in icing forever" tool; it's a "get out of icing" tool with defined fluid-time budget.</div>
The big question this morning is whether you want the fluid priming pump cycled before takeoff so you have wet panels at departure, or whether you save the fluid until you actually need it.
<<link "A. Prime the system now. Wet panels means the first encounter with ice finds an already-primed, fluid-bearing surface. Start ahead of the problem." "Dec3A">><<set $pathArray to $pathArray.concat(["Dec3: A (prime now, wet panels)"])>><</link>>
<<link "B. Don't prime. Save the fluid. Cycle the system only if and when you actually see ice." "Dec3B">><<set $pathArray to $pathArray.concat(["Dec3: B (save fluid)"])>><</link>>
<<link "C. Ground-prime for 30 seconds only. Fluid on the panels before takeoff, minimal total spend." "Dec3C">><<set $pathArray to $pathArray.concat(["Dec3: C (brief ground prime)"])>><</link>>
<<link "D. Cancel. 85% fluid isn't full, and you want full for this flight." "Dec3D">><<set $pathArray to $pathArray.concat(["Dec3: D (cancel over TKS %)"])>><</link>><<set $fikiMisused to true>>
<<set $badchoices to $badchoices + 1>>
You cycle the TKS priming pump to MAX for three minutes on the ground. Fluid seeps through the panels, wetting the leading edges. You now have visibly glycol-beaded wings and tail. You have also just used nearly six minutes of NORMAL-flow TKS budget.
You close up and taxi.
<<link "Taxi out with wet wings" "Dec4">><</link>><<set $fikiMisused to true>>
<<set $badchoices to $badchoices + 1>>
You leave the system untouched. Dry panels at departure. You will cycle on at first sign of ice.
You close up and taxi.
<<link "Taxi out, fluid banked" "Dec4">><</link>>You cycle the TKS priming pump at NORMAL for 30 seconds. Panels are visibly wet but not dripping. TKS budget used: about one minute of NORMAL-flow capacity. Fluid is available on the surfaces for the first ice encounter without eating into reserves.
You close up and taxi.
<<link "Button up and taxi" "Dec4">><</link>>You taxi back to the hangar and pull the fill cart. The clinic meeting is going to slip. Jamal watches you fill the reservoir to 100%, at which point you re-brief the flight, the clinic, and his lunch.
You launch ninety minutes later. Fluid at full. Meeting rescheduled to 1400. The rest of the preflight proceeds as planned.
<<link "Taxi out, ninety minutes late and full" "Dec4">><</link>><<set $pathArray to $pathArray.concat(["Dec4: Initial climb into the system"])>>
<div class="decision-heading">Climb: Decision 4 of 10: Entering the First Layer</div>
Oakland Departure hands you off to Oakland Center. <<if $filedAlt is "7,000">>You level at 7,000 under the deck, mostly smooth, OAT +8°C, the Sacramento Valley sliding by through breaks in the lowest scud. Ahead, the en-route chart has its opinion: the MEA steps to 11,000 for the Shasta segment, and Center will need you climbing in about forty miles. The band you planned to stay under is about to be mandatory.<<else>>You climb through the Bay stratus, break out around 3,200 briefly, then re-enter cloud around 4,800 as the mid-level overcast thickens. By 8,000 you are in solid IMC. The outside air temperature gauge reads +6°C at 8,000. Still above freezing. No ice on the panels.<</if>>
You ask Center for PIREPs on your route. The controller replies:
<div class="callout">"Twenty-two lima whiskey, the most recent I have is a Piper Mirage at flight level one-two-zero about twenty south of Roseburg reporting light to moderate mixed icing between nine and twelve thousand. Cessna Caravan about thirty-five south of Medford at ten thousand no icing, but that's twenty minutes old. Anything else you need?"</div>
You have a decision to make about the climb. <<if $filedAlt is "7,000">>Center has offered 10,000 as the first step, with higher available if you want it.<<elseif $filedAlt is "10,000">>Center has you cleared to 10,000, your filed altitude.<<else>>Center has you at 10,000 for now, with your filed altitude on request once you're clear of the inbound stream.<</if>>
<<link "A. Level at 10,000 as cleared. The Mirage reported moderate ice there but the Caravan didn't. Mixed reports, you'll see when you get there." "Dec4A">><<set $pathArray to $pathArray.concat(["Dec4: A (level 10K as cleared)"])>><</link>>
<<link "B. Request climb to 14,000 before entering the icing band. Get above the ice altitude the Mirage reported." "Dec4B">><<set $pathArray to $pathArray.concat(["Dec4: B (request 14K)"])>><</link>>
<<link "C. Request descent back to 7,000. The lower PIREP from earlier showed no icing below 080." "Dec4C">><<set $pathArray to $pathArray.concat(["Dec4: C (descend 7K)"])>><</link>>
<<link "D. Level at 10,000 and cycle TKS to MAX preemptively to get ahead of any possible ice." "Dec4D">><<set $pathArray to $pathArray.concat(["Dec4: D (level, preempt TKS MAX)"])>><</link>><<set $pirepsIgnored to true>>
<<set $badchoices to $badchoices + 1>>
<<set $bandAlt to "10,000">>You level at 10,000 and accept the altitude. You tell Jamal, "PIREPs don't always agree. We'll see what's actually there." The OAT drops through zero at about 9,400 and reads -3°C at 10,000.
<<link "Hold the altitude and watch the panels" "Dec5">><</link>><<set $bandAlt to "14,000">>You request 14,000. Center answers, "Twenty-two lima whiskey, climb and maintain one-four thousand, report level." You accept, push up, and start climbing. The airplane is heavy with fuel and the climb is measured, 400 fpm, but it gets there. OAT at 14,000: -9°C. You are above the Mirage's reported icing altitude, and still in cloud.
<<link "Level at one-four and settle the scan" "Dec5">><</link>><<set $bandAlt to "7,000">><<if $filedAlt is "7,000">>You ask to stay low and take the airway dogleg that holds a 9,000 MEA as far north as the structure allows. Center approves it with the tone of a man re-drawing your strip. The dogleg buys you time under the warm side of the deck. It does not buy you Medford; the last segments still climb.<<else>>You request 7,000. Center answers, "Twenty-two lima whiskey, descend and maintain seven thousand, expect vectors for weather." You descend through the mid-level layers. At 8,000 you pick up a fast skim of light rime; TKS at MAX sheds it by 7,000, where the OAT reads +3°C.<</if>> You are below the freezing level, under the overcast, with the terrain rising ahead of you mile by mile.
<<link "Stay low while the lowlands last" "Dec5">><</link>><<set $fikiMisused to true>>
<<set $badchoices to $badchoices + 1>>
<<set $bandAlt to "10,000">>You level at 10,000 as cleared and, before any ice appears, cycle TKS to MAX. Fluid streams across the leading edges. OAT reads -3°C; the air is moist; the airplane is clean.
You are spending fluid against a threat that hasn't arrived.
<<link "Watch the fluid gauge fall" "Dec5">><</link>><<set $pathArray to $pathArray.concat(["Dec5: First ice"])>>
<div class="decision-heading">Cruise: Decision 5 of 10: First Ice Encounter</div>
<<if $bandAlt is "7,000">>The lowlands run out on schedule. "Twenty-two lima whiskey, climb and maintain one-one thousand for the MEA, no lower for the next four-zero miles." You climb, because the rocks vote and the rocks win. The OAT falls through zero passing 8,300, and you are in the band you spent the morning avoiding.<<else>>You are in cruise on your chosen altitude, north of the valley now, in solid IMC. The datalink is painting scattered light-green returns ahead with one moderate cell about forty miles east of course; nothing directly on your track. The windshield is wet for ten minutes, droplets, not ice.<</if>>
Then, as you cross into the southern edge of the occlusion, the windshield starts to show it. Small, clear streaks first, droplets that aren't sliding off. Then a slow accretion on the leading edge of the TKS panels, visible against the wet black of the airplane. Within three minutes you have a thin white layer.
<div class="callout">The accretion is clear-to-mixed, droplets freezing irregularly. OAT: <<if $bandAlt is "14,000">>-9°C<<elseif $bandAlt is "7,000">>-2°C in the climb<<else>>-4°C<</if>>. Airspeed: 155 KTAS, dropping slightly. Jamal is pointing at the wingtip silently. The ice is visible and unmistakable.</div>
<<link "A. Cycle TKS to NORMAL and continue on altitude. Give the system time to work." "Dec5A">><<set $pathArray to $pathArray.concat(["Dec5: A (TKS NORMAL, press)"])>><</link>>
<<link "B. Cycle TKS to MAX and request the warm wedge at 13,000. Ice is here; go where it can't live." "Dec5B">><<set $pathArray to $pathArray.concat(["Dec5: B (TKS MAX, request alt change)"])>><</link>>
<<link "C. Cycle TKS to MAX, hold altitude, monitor. Give the system two minutes to clear what's there before making decisions." "Dec5C">><<set $pathArray to $pathArray.concat(["Dec5: C (TKS MAX, assess, then decide)"])>><</link>>
<<link "D. Declare emergency. Request immediate descent to warm air and vectors to the nearest airport." "Dec5D">><<set $pathArray to $pathArray.concat(["Dec5: D (declare, descend)"])>><</link>><<set $icingLate to true>>
<<set $badchoices to $badchoices + 1>>
You cycle TKS to NORMAL. The fluid begins to weep. The accretion on the leading edge starts to shed in patches, but new ice forms between the sheds. Net effect: the ice is not clearing, it is simmering in place. Airspeed has dropped four knots. The windshield is re-accumulating where the flow doesn't reach.
<<link "Press on with the fluid running" "Dec6">><</link>>You cycle TKS to MAX and press the PTT: "Oakland Center, twenty-two lima whiskey, picking up moderate mixed ice, request <<if $bandAlt is "14,000">>descent to one-three thousand<<else>>climb to one-three thousand<</if>> for the warm layer."
Center: "Twenty-two lima whiskey, Oakland, <<if $bandAlt is "14,000">>descend and maintain<<else>>climb and maintain<</if>> one-three thousand. Report conditions."
The MAX-flow TKS is visibly working as you <<if $bandAlt is "14,000">>start down<<else>>climb<</if>>. At 13,000 the OAT needle crosses to +1°C, the warm wedge the morning charts promised, and the remaining ice releases and is gone inside a minute. You report it; somewhere behind you a Bonanza pilot copies the number gratefully.
<<link "Ride the wedge" "Dec6">><</link>>You cycle TKS to MAX. Fluid streams across the panels, thicker than NORMAL. Over the next 90 seconds the accretion on the leading edges sheds in visible sheets; one long rime plate peels off the left wing's inboard panel and tumbles away.
But new ice continues to form between shed cycles. The TKS is winning the current skirmish; it is not winning the war, because this icing is heavier than the system was built to outlast.
<<link "Two minutes are up. Decide." "Dec6">><</link>>You press the PTT: "Oakland Center, twenty-two lima whiskey, declaring an emergency, moderate ice, request immediate vectors to warm air and the nearest suitable airport."
Center answers in the calm voice Oakland keeps on a shelf for these: "Twenty-two lima whiskey, Oakland, roger, turn right heading zero-nine-zero, descend and maintain seven thousand, vectors Chico. Say fuel and souls on board."
You give it. You descend. By 8,500 the ice begins to release in sheets; by 7,000 you are in plain rain and the airplane is clean again, an ordinary machine in ordinary weather, letting down toward a valley airport under a scattered deck.
You land at Chico twenty minutes later. The trucks roll for you and then roll home unneeded. The tower asks you to call when convenient.
<<link "Shut down and make the phone calls" "End_PrecautionaryChico">><</link>><div class="decision-heading">Ending: Declared, Diverted, Done</div>
The phone call with the facility takes four minutes and is mostly typing sounds on the other end. The clinic meeting becomes a Zoom from the Chico FBO's quiet room. Jamal buys pretzels from a vending machine older than he is and asks, carefully, whether you'd do it the same way again.
You give him the honest answer: parts of it.
<div class="debrief">
<h3>What happened</h3>
You met moderate icing in a FIKI airplane with a healthy fluid budget, and you reached past every intermediate tool straight for the emergency declaration. The system did what it does with a declaration: cleared the road, rolled the trucks, asked for a phone call. You landed clean, safe, and early, at the wrong airport.
<h3>ADM analysis</h3>
There is a ladder for this. Report the ice and request a different altitude; the warm wedge was 3,000 feet away. Use the urgency call if the trend outruns the tools. Declare when the airplane is losing the fight. You started at the top rung while the TKS was still winning, which cost you the mission and a conversation that didn't need to exist. The other side of the ledger deserves saying just as plainly: pilots who declare too early all land safely and learn something. The accident files are written about the ones who declare too late. Between those errors, you made the survivable one, emphatically.
<h3>What good judgment looks like here</h3>
Know the ladder before the day you need it. In a FIKI airframe with fluid in reserve, first ice is information, not an emergency. It becomes one when accretion outpaces the system, the escape altitudes close, or the airframe starts talking back. None of those had happened yet.
<h3>Key takeaway</h3>
Declare without hesitation when you need to. Knowing the rungs below "emergency" is how you know when that is.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Dec6: Inside the front"])>>
<div class="decision-heading">Cruise: Decision 6 of 10: Inside the Occlusion</div>
The occlusion is around you now in whatever form your last hour bought: layered cloud of varying thickness, a ride that is bumpy in spots but not punishing, and a datalink picture of scattered green with one yellow cell holding about 25 miles east of course.
Jamal asks, quietly, "Do occluded fronts have embedded thunderstorms?" You tell him yes, they can, especially at the cold-front face. You are watching the radar.
The cell 25 miles east is moving along at 30 knots on a bearing that keeps it east of your track for now, but the forecast prog chart had it drifting northeast faster than observed. You can see it in the datalink: a slow bloom, a little higher than it was ten minutes ago. Not a wall. Not yet.
<<link "A. Maintain course. Cell is east, drift is slow, datalink is reliable enough for this separation." "Dec6A">><<set $pathArray to $pathArray.concat(["Dec6: A (maintain, rely on datalink)"])>><</link>>
<<link "B. Request 20 degrees left to open the separation from the cell, accepting slight detour." "Dec6B">><<set $pathArray to $pathArray.concat(["Dec6: B (left 20 for sep)"])>><</link>>
<<link "C. Request vectors around the entire yellow-return area via radar vector from Center." "Dec6C">><<set $pathArray to $pathArray.concat(["Dec6: C (vectors around)"])>><</link>>
<<link "D. Request 16,000 and get above the layered tops, where the buildups stand up in plain sight and can be dodged visually." "Dec6D">><<set $pathArray to $pathArray.concat(["Dec6: D (climb above)"])>><</link>><<set $cellTooClose to true>>
<<set $badchoices to $badchoices + 1>>
You hold course. The datalink cell is updating at a two-to-six-minute latency; you know this because you checked the uplink time on the MFD when you set up. The cell drifts slowly east of you as predicted for the next fifteen minutes. Then the datalink updates, and the cell that was yellow is now red and has grown.
You are still 22 miles from it. But the data is old and the gradient is steep.
<<link "Keep watching the screen" "Dec7">><</link>>You call Center: "Oakland Center, twenty-two lima whiskey, request twenty left to open separation from a cell at our three o'clock." Center responds: "Twenty-two lima whiskey, fly heading three-three-zero, advise on course." You take the vector. The cell stays at your four o'clock and gradually falls behind. The deviation costs you about six minutes to Medford.
<<link "Let the cell fall behind" "Dec7">><</link>>You call Center: "Oakland Center, twenty-two lima whiskey, request vectors to circumnavigate weather east of course." Center responds with a sequence of turns: first east briefly, then a long south-to-north arc that keeps you 30 miles clear of the worst of it. Your detour adds fifteen minutes and some fuel.
<<link "Fly the long way around" "Dec7">><</link>>You request climb to 16,000. Oakland Center: "Twenty-two lima whiskey, climb and maintain one-six thousand, expect vectors for weather as needed." The SR22T climbs efficiently; TKS is handling the modest icing above the warm wedge. You level at 16,000 and can now see the tops of the occlusion laid out around you. The cold-front cell stands like a wet meringue at your two o'clock, its top towering to FL210; you are above the layered tops, not above the cell, and now you can keep it that way by eye.
<<link "Navigate by what you can finally see" "Dec7">><</link>><<set $pathArray to $pathArray.concat(["Dec7: Alternate decision"])>>
<div class="decision-heading">Cruise: Decision 7 of 10: Alternate Selection</div>
Your original alternate was KRDD (Redding). You filed it as your IFR alternate this morning and the KRDD TAF at that time was VFR with occasional MVFR. You are now an hour into the flight and Center passes you a traffic advisory and then an amended weather update:
<div class="wx-block">KRDD now: OVC006 1/2SM -RA FG 05/04 (below ILS minimums)
KMFR now: OVC030 3SM -RA 07/05 (above ILS minimums)
KRBG now: OVC015 4SM BR 06/05 (above LOC minimums, no ILS)
KSLE now: OVC050 10SM -RA 08/06 (VFR-adjacent)
KCIC now: SCT040 BKN080 10SM 09/07 (VFR)</div>
Your original alternate is now well below ILS minimums. You need a new alternate.
Jamal says, "Does the alternate need to be an airport we can actually land at right now?" You tell him yes, in spirit: a filed alternate has to meet its alternate minimums in the forecast for your arrival window, or it's a name on a form. If your filed alternate has gone below, you need a new one before you commit to the approach.
<<link "A. Amend alternate to KCIC. Closest airport with weather above minimums, familiar field." "Dec7A">><<set $pathArray to $pathArray.concat(["Dec7: A (KCIC alt)"])>><</link>>
<<link "B. Amend alternate to KSLE. Further north, closer to Medford, better forecast trend." "Dec7B">><<set $pathArray to $pathArray.concat(["Dec7: B (KSLE alt)"])>><</link>>
<<link "C. Amend alternate to KRBG. En route, below but close to LOC minimums, shortest diversion." "Dec7C">><<set $pathArray to $pathArray.concat(["Dec7: C (KRBG alt, tight minimums)"])>><</link>>
<<link "D. No amendment needed. Destination is above minimums; if you can make it in, the rule doesn't even demand an alternate." "Dec7D">><<set $pathArray to $pathArray.concat(["Dec7: D (no alt needed)"])>><</link>>You amend your alternate to KCIC. Fuel reserve check: current fuel 46 gal, KMFR to KCIC 145 NM at worst-case tailwind reversal, about 75 minutes at typical cruise, call it 27 gallons. You have reserve. Alternate amended.
<<link "Turn the page to the arrival" "Dec8">><</link>><<set $alternateThin to true>>
<<set $badchoices to $badchoices + 1>>
You amend your alternate to KSLE. KSLE has reasonable weather trends but is 65 NM north of KMFR, which means if you have to use it, you are flying past your destination into weather whose trend is unknown at that time. You have fuel for it. The geometry is a choice.
<<link "Note the geometry and continue" "Dec8">><</link>><<set $alternateThin to true>>
<<set $badchoices to $badchoices + 1>>
You amend your alternate to KRBG. KRBG's ceiling is at LOC minimums right now and dropping slowly; your arrival there, should you need it, would be in another hour or so. You're betting on the trend not worsening.
<<link "Place the bet and continue" "Dec8">><</link>><<set $alternateThin to true>>
<<set $badchoices to $badchoices + 1>>
You leave the alternate on KRDD despite its degradation. Your reasoning: destination is above minimums, so why overthink it. And strictly speaking, the 1-2-3 math at Medford now reads 3,000 and 3: an alternate is no longer even required, with the visibility sitting exactly on the line of that rule. So you proceed toward a destination forecast with zero spare visibility, carrying a filed alternate behind you that neither of you could use. Legal is doing a lot of carrying in that sentence.
<<link "Press on with the paperwork as filed" "Dec8">><</link>><<set $pathArray to $pathArray.concat(["Dec8: Approach selection"])>>
<div class="decision-heading">Arrival: Decision 8 of 10: Approach Selection at KMFR</div>
Seattle Center hands you off to Cascade Approach. You are 35 miles south, descending through 11,000 for 8,000 on vectors. KMFR weather is OVC030 3SM -RA 07/05, and the wind has done what wind does behind an occlusion: veered northwest. The ATIS reads wind 280 at 12 gusting 19.
<div class="wx-block">KMFR approaches available (apt elev 1,335):
ILS RWY 14: DA 1,503 (200 AGL), RVR 1800; GS 3.00°
Missed: 6,600 via I-MFR SE course to JILOK, climbing
right turn hdg 350°, OED R-160 to OED VORTAC, hold
LOC RWY 14: MDA 2,080 (777 AGL), RVR 2400
RNAV (GPS) Y 32: LPV DA 1,610 (275 AGL), vis 7/8; GLIDEPATH 4.95°
Missed: 1,900, then climbing right turn to 10,500
direct CUTTR, hold
Circling: 2,080 (745 AGL); NA Cats C/D northeast of Rwy 14-32
Wind 280 at 12G19: runway 32 gets it 43° off the nose, headwind
component 9, crosswind 8. Runway 14 gets the same numbers from
behind the wing.</div>
The precision approach and the into-wind runway are not the same runway. The ILS buys you 200 feet and 1800 RVR onto pavement with a quartering tailwind at the edge of the POH table. The RNAV Y 32 puts the wind on the nose with decent minimums, and charges you a glidepath of nearly five degrees, terrain's price for that straight-in, which in a slick airframe means energy discipline the whole way down.
<<link "A. Request the ILS 14. Lowest minimums, a real glideslope, and the tailwind component reads inside ten knots between gusts." "Dec8A">><<set $pathArray to $pathArray.concat(["Dec8: A (ILS 14, tailwind)"])>><</link>>
<<link "B. Request the RNAV Y 32. Wind on the nose, 275 feet of margin; respect the steep glidepath and fly the numbers." "Dec8B">><<set $pathArray to $pathArray.concat(["Dec8: B (RNAV Y 32, steep GP)"])>><</link>>
<<link "C. Request the LOC 14. Simple and familiar, comfortably above its minimums. You've flown a hundred of these." "Dec8C">><<set $pathArray to $pathArray.concat(["Dec8: C (LOC 14)"])>><</link>>
<<link "D. Request the ILS 14, circle to land 32. Precision guidance down through the layer, then an into-wind landing." "Dec8D">><<set $pathArray to $pathArray.concat(["Dec8: D (ILS 14 circle 32)"])>><</link>><<set $appr to "ILS14">>
You request the ILS Rwy 14 with vectors. Approach confirms. The needle work will be the easy part; the arithmetic you're carrying is the wind. Nine knots of tailwind component between gusts, more inside them, onto wet grooved pavement 8,800 feet long. Long runways forgive a lot. You set up the Perspective+, brief Jamal on what he'll see, and keep the groundspeed math to yourself.
<<link "Fly it down the slope" "Dec9">><</link>><<set $appr to "RNAV32">>
You request the RNAV Y Rwy 32. "Twenty-two lima whiskey, expect vectors RNAV Yankee Runway three-two, descend and maintain seven thousand." You load it, brief it, and say the strange number out loud so it stays real: glidepath four-point-nine-five degrees. Power well back early, speed nailed, configuration done before the fix, no catching up allowed. The missed is 1,900 then a climbing right turn to 10,500 direct CUTTR, and you brief it like you mean it.
<<link "Fly the steep one" "Dec9">><</link>><<set $appr to "LOC14">>
<<set $approachMisjudged to true>>
<<set $badchoices to $badchoices + 1>>
You request the LOC Rwy 14. Familiar, simple, comfortably above its minimums. It is also a dive-and-drive to 777 AGL toward the same tailwind runway the ILS serves, with none of the glideslope's help on the way. You are trading away both margin and wind for the comfort of a needle you've chased a hundred times.
<<link "Set up the step-downs" "Dec9">><</link>><<set $appr to "CIRCLE32">>
You request the ILS Rwy 14, circle to land Rwy 32. Approach confirms without comment; Medford's tower has watched that exact plan work all morning. Precision guidance down through the layer to circling minimums, break out at 745 AGL under a ceiling that's twice that, carry the runway visually around the south side (circling is only barred northeast of the field, and only for the fast categories), and land into the wind.
It is two approaches glued together, and the glue is altitude discipline in the circle. Daylight, a fat ceiling, and 8,800 feet of runway make it a sound trade today.
<<link "Brief the circle like a procedure, because it is one" "Dec9">><</link>><<set $pathArray to $pathArray.concat(["Dec9: Descent and configuration"])>>
<div class="decision-heading">Approach: Decision 9 of 10: Final Descent</div>
You are established: <<if $appr is "ILS14">>ILS 14, localizer and glideslope centered, the tailwind quietly adding to the groundspeed readout<<elseif $appr is "LOC14">>LOC 14, working the step-downs by the numbers<<elseif $appr is "RNAV32">>the RNAV Yankee 32, where a 4.95-degree glidepath keeps your hand honest on the power<<else>>ILS 14, briefed down to circling minimums with the circle to 32 waiting under the deck<</if>>. The airplane is stable. Jamal is quiet.
The rain is steady. The windshield is streaming. You have 14 gallons of TKS fluid left, and the airframe is clean of ice now that you've been below the freezing level for a while. The runway picture will come when it comes.
No gear to wait on in an SR22. The configuration question is flaps.
<<link "A. Full flaps at the final fix, trimmed, approach speed bug 80 KIAS." "Dec9A">><<set $pathArray to $pathArray.concat(["Dec9: A (full flaps, 80 KIAS)"])>><</link>>
<<link "B. Flaps 50% at the final fix, delay full flaps until runway in sight. Bug 85." "Dec9B">><<set $pathArray to $pathArray.concat(["Dec9: B (50% then full on sight)"])>><</link>>
<<link "C. Flaps up. Fly the approach clean, decelerate over the threshold, full flaps for landing only. Bug 90." "Dec9C">><<set $pathArray to $pathArray.concat(["Dec9: C (flaps up, decel late)"])>><</link>>
<<link "D. Flaps full. Speed bug 75. Land as slow as possible to minimize rollout." "Dec9D">><<set $pathArray to $pathArray.concat(["Dec9: D (full flaps, 75 KIAS slow)"])>><</link>>You configure flaps 100% at the FAF. Airspeed settles on 80 KIAS with the trim set. The airplane is stable and slow, the descent rate appropriate.
<<link "Ride it to minimums" "Dec10">><</link>>You stage the flaps: 50% at the FAF, full on sight of the runway. Approach speed 85 KIAS, configured clean enough to maneuver if you have to. The Cirrus is happy here.
<<link "Carry it down with options open" "Dec10">><</link>><<set $approachMisjudged to true>>
<<set $badchoices to $badchoices + 1>>
You fly the approach clean. The Cirrus trims nicely for it, but the airspeed is higher than the approach was designed around; at minimums you will be high-energy, and the transition to landing will demand either a long float or an aggressive deceleration.
<<link "Bring the extra knots to minimums" "Dec10">><</link>><<set $approachMisjudged to true>>
<<set $badchoices to $badchoices + 1>>
You configure full flaps at the FAF with the speed bug set for 75 KIAS. The airplane is working hard there: angle of attack high, every gust loading the wing toward the top of the AoA strip. It is inside the POH and outside the airplane's happy place.
<<link "Nurse it down the slope" "Dec10">><</link>><<set $pathArray to $pathArray.concat(["Dec10: Go-around threshold"])>>
<div class="decision-heading">Final: Decision 10 of 10: The Go-Around Question</div>
You are at minimums on the approach you chose. <<if $appr is "CIRCLE32">>You broke out at 2,300, leveled at the circling altitude, and you are halfway around the south-side circle with runway 32 fixed out the right window, 745 feet above the valley floor.<<else>>You break out into the ragged base of the overcast around 2,100 MSL, about 800 feet over the field, and the runway environment is where the needles promised it would be.<</if>> The rain intensifies briefly as a band rider crosses the field.
Tower updates the wind without being asked: 290 at 18, gust 26. <<if $appr is "ILS14" or $appr is "LOC14">>On runway 14 that is a 15-knot tailwind component, more inside the gusts, and tower's voice carries no opinion at all about your plan.<<else>>On runway 32 that is wind on the nose, gusting, an honest day's flare.<</if>>
Jamal is leaning forward to see out the front.
<<link "A. Land. You're stable, under minimums, runway made, and the airplane is ahead of you." "Dec10A">><<set $pathArray to $pathArray.concat(["Dec10: A (land)"])>><</link>>
<<link "B. Go around. The wind picture at the surface is not the one you briefed." "Dec10B">><<set $pathArray to $pathArray.concat(["Dec10: B (go-around)"])>><</link>>
<<link "C. Land, but plant it: spot touchdown, no float, brakes working from the first foot." "Dec10C">><<set $pathArray to $pathArray.concat(["Dec10: C (plant it)"])>><</link>>
<<link "D. Go around and ask Approach for the other runway on the next try." "Dec10D">><<set $pathArray to $pathArray.concat(["Dec10: D (go-around + swap)"])>><</link>><<if $appr is "ILS14" or $appr is "LOC14">>You commit. The groundspeed over the fence is a number you'd rather not log. The flare starts where it always starts and ends forty feet deeper than it has ever ended, the gust riding under the tail, the runway remaining ahead of you shrinking at highway speed.
<<goto "End_Excursion">><<else>>You commit to the landing. The airplane arrives on centerline, wind on the nose doing what headwinds do, which is help. The gust pushes the wing once in the flare; you fly through it, touch down mains-first, and roll out with runway to spare.
<<link "Roll out and breathe" "Resolution">><</link>><</if>>You go around. Power to max continuous. Flaps to 50%. Positive rate, clean up the rest on schedule. Approach gives you a right turn onto downwind for the re-sequence.
<<if $appr is "ILS14" or $appr is "LOC14">>On downwind you key up: "Approach, twenty-two lima whiskey requests the RNAV Yankee three-two for the next one." Nobody argues. The second approach is steep and honest and puts the wind where it belongs, and the landing at the end of it is almost boring.<<else>>The second pass, flown with the first one's gust picture fresh in your hands, delivers the runway. You land into the wind and the rollout is ordinary.<</if>>
<<link "Taxi in" "Resolution">><</link>><<if $appr is "ILS14" or $appr is "LOC14">>You commit to planting it. The spot arrives at a groundspeed the brakes will be discussing for weeks. You are down, hard, deep, working the pedals on wet pavement with the gust shoving from behind.
<<goto "End_Excursion">><<else>>You commit to a tight landing: spot touchdown, brakes working from the first foot. The airplane lands firmly, slightly long as a gust puffs under the wing at the flare. Brakes warm, rollout honest. You turn off with margin left over.
<<link "Roll out" "Resolution">><</link>><</if>><<set $goAroundBlown to true>>
<<set $badchoices to $badchoices + 1>>
You go around. Power to max continuous. Flaps stay at 100% because your hand never makes it to the lever; the SR22 climbs grudgingly, dragging its own laundry. At 500 AGL you remember, clean up in stages, and the climb rate doubles. Approach asks, "Twenty-two lima whiskey, state intentions." You key the PTT twice before any words are ready.
<<if $appr is "ILS14" or $appr is "LOC14">>"Twenty-two lima whiskey requests the RNAV Yankee Runway three-two." The swap was the right idea all along; the execution gave Jamal a vocabulary lesson in what a missed checklist item sounds like. The second approach lands into the wind, cleanly.<<else>>You take the second look at the same approach, this time with the gust picture already in your hands. It lands.<</if>>
<<link "Taxi in with your pulse settling" "Resolution">><</link>><<set $pathArray to $pathArray.concat(["Resolution"])>>
<<set $criticalErrors to 0>>
<<if $frontMisread>><<set $criticalErrors to $criticalErrors + 1>><</if>>
<<if $altBadChoice>><<set $criticalErrors to $criticalErrors + 1>><</if>>
<<if $alternateThin>><<set $criticalErrors to $criticalErrors + 1>><</if>>
<<if $pirepsIgnored>><<set $criticalErrors to $criticalErrors + 1>><</if>>
<<if $icingLate>><<set $criticalErrors to $criticalErrors + 1>><</if>>
<<if $fikiMisused>><<set $criticalErrors to $criticalErrors + 1>><</if>>
<<if $cellTooClose>><<set $criticalErrors to $criticalErrors + 1>><</if>>
<<if $approachMisjudged>><<set $criticalErrors to $criticalErrors + 1>><</if>>
<<if $goAroundBlown>><<set $criticalErrors to $criticalErrors + 1>><</if>>
<<if $icingLate and $cellTooClose and $approachMisjudged>>
<<goto "End_CAPS">>
<<elseif $icingLate and $pirepsIgnored>>
<<goto "End_StruggleIn">>
<<elseif $cellTooClose and $frontMisread>>
<<goto "End_TurbDamage">>
<<elseif $approachMisjudged and $goAroundBlown>>
<<goto "End_Excursion">>
<<elseif $goAroundBlown>>
<<goto "End_GoAroundMess">>
<<elseif $alternateThin and $criticalErrors gte 3>>
<<goto "End_FuelLow">>
<<elseif $criticalErrors gte 3>>
<<goto "End_RoughFlight">>
<<elseif $criticalErrors gte 1>>
<<goto "End_Qualified">>
<<elseif $frontUnderstood>>
<<goto "End_CleanWin">>
<<else>>
<<goto "End_Routine">>
<</if>><<set $pathArray to $pathArray.concat(["Ending: Clean win"])>>
<div class="decision-heading">Ending: Routed Around the Front</div>
You park on the KMFR ramp at 1143. The clinic meeting starts at 1200. Jamal has been replaying the flight in his head the whole taxi-in. As you tie down he says, "Is that typical for one of these trips?" You tell him that occluded fronts are not typical; what is typical is the need to think about where the worst of a system is and route around it, instead of routing through it.
The clinic runs from 1200 to 1500. The return flight that evening is severe clear.
<div class="debrief">
<h3>What happened</h3>
You understood the structure of the occluded front, picked a route and altitude that kept the airplane out of its worst layers, and flew an approach consistent with the weather you actually arrived in. You used FIKI sparingly and precisely, as a tool for exiting the ice rather than a license to stay in it.
<h3>ADM analysis</h3>
Every high-workload weather decision you made (the route, the altitude, the alternate, the approach) preserved margin rather than consumed it. Counterintuitive-but-correct: the 70-mile east reroute looks like overkill on a 320-mile trip, and it is exactly the reroute that keeps the airplane out of the worst of the system. You spent a few extra minutes; you didn't spend ice.
<h3>What good judgment looks like here</h3>
An occluded front is three fronts stacked. The icing band is a function of layer and altitude. The PIREPs are the best real-time read you have; treat disagreements as information about the structure of the system, not about which report to trust. FIKI is a reserve, not a cruise altitude.
<h3>Key takeaway</h3>
Every weather system has a cleaner side. Finding it is the work.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Ending: Routine finish"])>>
<div class="decision-heading">Ending: Clean Finish</div>
You park on the KMFR ramp on schedule. The rain is steady but unremarkable. Jamal climbs out and stands under the wing, looking at the TKS panels with something like respect. "That was ice on those," he says. "Yes," you say. "But not much."
The clinic meeting starts at 1200. You are on time.
<div class="debrief">
<h3>What happened</h3>
You made mostly sound decisions through a weather system that offered real hazards. Nothing went dramatically wrong; nothing was a near-miss. You used FIKI when you needed it, picked an approach that matched the conditions, and landed uneventfully.
<h3>ADM analysis</h3>
Weather flying is less about heroics than about accumulating small correct decisions. Altitude that avoided the worst of the icing. An alternate that was actually usable. An approach that favored the wind. Flap settings that matched the conditions. None individually dramatic; together, the flight.
<h3>What good judgment looks like here</h3>
FIKI is a tool for exit, not endurance. The airplane is happiest flown at the altitude the weather favors, not the altitude you filed at if the weather argues otherwise. Alternates must be usable in the hour you'd actually arrive at them.
<h3>Key takeaway</h3>
Weather flying is a series of small, correct decisions, not a single brave one.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Ending: Qualified success"])>>
<div class="decision-heading">Ending: Qualified Success</div>
You park on the KMFR ramp, maybe fifteen minutes later than planned, maybe with a little more fuel burned than you estimated. The rain has eased. Jamal unbuckles and says, "That was a workout." You agree. The airplane is clean; the TKS is at 40%; you have a story and not an incident.
<div class="debrief">
<h3>What happened</h3>
You made one or two weather-reading or procedure errors along the way and the airplane and the system absorbed them. Most likely, the chain stopped short because one or two downstream decisions were sound: the altitude correction, or the approach choice, or the alternate amendment.
<h3>ADM analysis</h3>
Weather decision-making is a moving target. PIREPs go stale. Forecasts get amended. The altitude that was right at takeoff is not always the altitude that's right an hour later. What matters is that the updates you do catch, the trend you do follow, close the chain before it lengthens.
<h3>What good judgment looks like here</h3>
Read the system, not the forecast. The SFC ANAL tells you where the occlusion is now; the PIREPs tell you where the ice is; the trend tells you where both are going. Make decisions on the composite picture.
<h3>Key takeaway</h3>
Every forecast ages. The pilot who updates the brief mid-flight is the pilot who arrives at the airport the system left behind.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Ending: Rough flight"])>>
<div class="decision-heading">Ending: Rough Ride, Safe Outcome</div>
You land at KMFR with the airplane shaken up, TKS down to 15%, and a passenger who is processing a flight that felt more eventful than he expected. You are later than planned. The airplane has picked up some additional streaking on the leading edges that will scrub off with fluid on the ramp.
Jamal sits in the right seat for a moment after you shut down. He says, "I'd like to do some ground with you later. About this flight." You agree.
<div class="debrief">
<h3>What happened</h3>
You made a chain of weather-reading errors that accumulated. None of them were catastrophic; each one eroded margin. The icing was worse than you planned for, the cell got closer than you wanted, the alternate was thinner than you liked, and the approach required more of the airplane than you intended.
<h3>ADM analysis</h3>
A flight like this is the one pilots remember. The one where nothing individually went terribly wrong but everything was a little more stressful than it should have been. The lessons are in the chain: each small error narrowed the next decision's options. That is the pattern of how aviation accidents are built. This time, it stopped short of one.
<h3>What good judgment looks like here</h3>
Break the chain early. The earliest decisions (the route, the altitude, the TKS discipline) set the stage for everything that followed. A slightly different route, a slightly higher altitude, a slightly more preserved fluid budget, and the last hour of the flight looks completely different.
<h3>Key takeaway</h3>
The scariest flights are the ones that go exactly as badly as they could go without actually going badly. Debrief those honestly.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Ending: Diverted with ice"])>>
<div class="decision-heading">Ending: Diversion with Residual Ice</div>
You land at your amended alternate with residual ice on the airframe, TKS at 8%, and the realization that you spent about thirty minutes in more ice than the airplane was designed to handle in a sustained way. The rollout is long because the ice-loaded wing is still lifting at a lower coefficient than the clean wing would. You taxi in slowly.
On the ramp, the line tech gives a low whistle at the leading edges. "That's a pile," he says. You nod. Jamal takes a photograph of the left wingtip before the fluid finishes weeping. The clinic meeting rescheduled to Zoom. You are staying overnight.
<div class="debrief">
<h3>What happened</h3>
You underweighted the icing risk in the preflight brief, accepted an altitude that put you into the worst of the band, and ignored the PIREP that told you what was there. The FIKI system kept the airplane flying, which is the certification's whole promise, but it ate through your fluid budget faster than a planned exit would have.
<h3>ADM analysis</h3>
FIKI is a certified capability with a specific definition: the airplane can operate in known icing conditions for the duration of an encounter. It is not a license to cruise in ice indefinitely. Pilots who treat FIKI as an "immunity" confuse "can exit" with "should stay."
<h3>What good judgment looks like here</h3>
When the PIREP says there is moderate mixed icing at your filed altitude, request a different altitude before you get there. The pilot who filed for 10,000 and landed at 14,000 used fuel but not fluid.
<h3>Key takeaway</h3>
FIKI is a door out of icing. It is not a cruise altitude.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Ending: Turbulence damage"])>>
<div class="decision-heading">Ending: Encountered Severe Turbulence</div>
You clip the edge of the cell that the datalink showed as "clearly east of course." In real time it was closer. The airplane gets a single gust event, three to four seconds long, that slams you both into your harnesses and puts a G-spike on the recording that the avionics are happy to store. Nothing structural fails, but a seatback cracks and Jamal's tablet, which was in his lap, impacts the dash and cracks the screen.
You fly the rest of the flight at reduced speed. You land at KMFR. You write down what happened while it is fresh. The airplane goes to a mechanic for a post-overspeed and G-spike inspection. Jamal is bruised along the shoulder harness line. You are shaken.
<div class="debrief">
<h3>What happened</h3>
Datalink weather radar has latency: typically 2 to 6 minutes, depending on the link. A cell that is "25 miles east" on the screen may be 15 miles east in reality, or the cell may have bloomed since the last uplink. Pilots who treat datalink as real-time radar are using a strategic tool as a tactical one.
<h3>ADM analysis</h3>
The standard is this: never use datalink radar to penetrate weather. It is for strategic routing, deciding whether to go around a system and on which side. For tactical separation from a specific cell, you need onboard radar or vectors from a controller looking at real-time ATC weather. The SR22T's datalink is excellent for planning. It is inadequate for dodging.
<h3>What good judgment looks like here</h3>
Trust the ATC radar more than the datalink. When you see a cell building, ask Center what their radar shows. Their picture is seconds old, not minutes.
<h3>Key takeaway</h3>
Datalink weather is where thunderstorms were. ATC radar is where they are.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Ending: Runway excursion"])>>
<div class="decision-heading">Ending: Runway Excursion</div>
The approach delivers you to the runway fast, or slow, or pointed down pavement the wind had claimed for departures. You arrive. The airplane touches down, deep and quick. On rollout it departs the side of the runway onto the grass, comes to a stop within sixty feet, and sits there idling. The nose gear is fine. The right main is bogged slightly in the wet. The prop has caught a mouthful of grass but nothing bends.
Jamal is unhurt. You are shaken. Airport emergency services arrive within two minutes. You shut the airplane down and climb out. The incident is noted in the tower log as a runway excursion, no injuries.
<div class="debrief">
<h3>What happened</h3>
The approach configuration did not match the weather. A clean or badly-configured approach into a gusting crosswind has too much energy at the flare, or too little. Either way, you arrive at the runway with the airplane unable to be planted in the desired touchdown zone. Without a go-around you let the airplane pick its own resting place.
<h3>ADM analysis</h3>
Approach configuration is the quiet half of weather flying. The airplane that arrives at DA stable and slow has already won most of the landing. The airplane that arrives high-energy or low-energy is playing catch-up on short final, a game the wind always wins.
<h3>What good judgment looks like here</h3>
At the FAF, be in the configuration the airplane will land in. Speed, flaps, trim. If the numbers on the approach plate don't match the wind's numbers, fly a different approach.
<h3>Key takeaway</h3>
The landing is won on the approach, not in the flare.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Ending: Messy go-around"])>>
<div class="decision-heading">Ending: Messy Go-Around, Safe Return</div>
You execute a go-around that is technically successful: the airplane climbs, no ground contact, the engine stays on. The execution is imperfect. You are slow to clean up flaps; the airplane climbs anemically for the first several hundred feet. Approach asks twice for intentions before you answer. You fly the second approach better, with the lessons of the first fresh. You land.
<div class="debrief">
<h3>What happened</h3>
A go-around is the easiest maneuver in aviation to say out loud and one of the hardest to execute cleanly under pressure. Max power, positive rate, flaps, gear, communicate: a sequence that has to be a reflex. A messy one is survivable; a well-flown one is a non-event.
<h3>ADM analysis</h3>
The decision to go around was correct. The execution was rough because the procedural habit wasn't fluid. Under the cognitive load of an approach going sideways, the pilot who can reach for the go-around sequence without thinking saves themselves five seconds they didn't know they needed.
<h3>What good judgment looks like here</h3>
Rehearse the go-around. On every approach, before the FAF, say it out loud. Power, pitch, flaps, gear (if applicable), communicate. The second approach is the one you want to fly the way the first one should have been flown.
<h3>Key takeaway</h3>
The go-around is not a failure of the approach. It is a success of the pilot.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Ending: Fuel-low alternate"])>>
<div class="decision-heading">Ending: Alternate with Narrow Fuel Margin</div>
You commit to the alternate you selected and arrive with less fuel than your personal minimum. You land safely. Your fuel gauges are in the yellow band. You taxi to the ramp and shut down. The airplane takes three and a half gallons less than your calculated reserve.
Jamal asks later, "Was that tight?" You tell him the honest answer: yes, it was tight. Tight enough that the flight plan had no more tolerance for weather or vectoring. The next amendment from ATC would have put you in declared-emergency fuel territory.
<div class="debrief">
<h3>What happened</h3>
The alternate selection was technically legal but practically thin. A filed alternate must meet forecast minimums at ETA. It also needs to be fuel-reachable with realistic reserves after accounting for vectors, missed approaches, and holds, not just on the straight-line number.
<h3>ADM analysis</h3>
"Fuel to get there" is not the same as "fuel to get there, miss the approach, divert, and have IFR reserves." Rule-of-thumb alternate fuel in realistic IFR is the direct leg plus 45 minutes at cruise burn, plus an approach and miss at the alternate. For the SR22T at 17 GPH that is about 17 gallons minimum for the alternate, on top of the leg fuel.
<h3>What good judgment looks like here</h3>
Pick alternates that are comfortably reachable with fuel, not just barely reachable. The alternate that requires a perfect day to reach is not really an alternate.
<h3>Key takeaway</h3>
The alternate is the flight plan's second airplane. Treat it like one.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p><<set $pathArray to $pathArray.concat(["Ending: CAPS deployment"])>>
<div class="decision-heading">Ending: CAPS Deployment</div>
The chain lengthens. Heavy icing you stayed in too long, a cell that was closer than the datalink showed, and an approach that asked for more airplane than you had left. On final at KMFR, still 1,400 feet above the valley floor, the combination of a contaminated wing, gusting wind, and decaying airspeed has the SR22T's AoA strip painting red and the stall warning steady, and the recovery isn't coming.
You make the decision a Cirrus pilot trains for specifically. You pull the CAPS handle.
The rocket fires. The canopy blooms. The airplane swings twice and settles under the parachute into the open ground short of the field, three-point hard, inside the envelope the handle was certified for. The fuselage takes the landing the way it was engineered to. You and Jamal walk away from an airplane that is now salvage.
<div class="debrief">
<h3>What happened</h3>
A chain of weather, procedural, and approach errors stacked into a situation where the airplane could not be landed safely under its own control. The CAPS system, which every Cirrus pilot is trained to consider a viable emergency option when loss of control is imminent, functioned as designed. Two people walked away from an accident that, in an airframe without CAPS, would very likely have been fatal.
<h3>ADM analysis</h3>
CAPS is a tool of last resort and a tool of first-resort within its envelope. The Cirrus pilot's community has evolved a clear position: if you're below 2,000 AGL in an unrecoverable situation (loss of control, structural damage, severe ice accumulation, engine failure outside of gliding range), pull the handle. Do not try to land an airplane that is not flyable.
<h3>What good judgment looks like here</h3>
The entire flight leading up to this point was a chain. The CAPS pull at the end was the chain breaking: the one decision that kept it from becoming a statistic. The lessons are upstream.
<h3>Key takeaway</h3>
CAPS is the safety net. The goal is to never need it. The discipline is to use it the moment you do.
</div>
<<link "Return to Start" "Opening">><<set $badchoices to 0>><<set $pathArray to []>><<set $frontMisread to false>><<set $altBadChoice to false>><<set $alternateThin to false>><<set $pirepsIgnored to false>><<set $icingLate to false>><<set $fikiMisused to false>><<set $cellTooClose to false>><<set $divertLate to false>><<set $approachMisjudged to false>><<set $goAroundBlown to false>><<set $frontUnderstood to false>><<set $cleanExit to false>><<set $afternoonLaunch to false>><<set $mentorPath to "">><<set $mentorIntervene to "">><<set $satOnIt to false>><<set $filedAlt to "">><<set $bandAlt to "">><<set $appr to "">><</link>>
<p class="main-menu-wrap"><a href="/" class="main-menu-btn">Main Menu</a></p>