How to Read METARs, TAFs, and PIREPs: Decoding Aviation Weather Reports
- Nathan Hodell
- Aug 26, 2025
- 9 min read
Updated: 4 days ago
METARs, TAFs, and PIREPs are the language of aviation weather. If you can decode them fluently, you can extract enormous amounts of information from a few lines of cryptic-looking text. If you can't, you're flying with a fraction of the information you should have. The good news: the format is highly standardized once you learn the codes, and after a few hundred METARs you'll read them as easily as English.
This post covers all three weather report types in practical decoding depth: how to read each line of a METAR, how to interpret TAF change groups (TEMPO, BECMG, FM, PROB), how to format a PIREP, and worked examples that show you exactly how to extract the information you need.
Study this full length lesson (video, podcast, flashcards, and quiz) here: Full Length Lesson >
METAR — Meteorological Aerodrome Report
A METAR is a current weather observation at an airport, issued hourly (or more frequently when conditions change). The METAR format is rigorously standardized internationally, so once you learn the format, you can decode any METAR anywhere.
The METAR Format Breakdown
A typical METAR looks something like this:
KSLC 161854Z 24008KT 10SM FEW040 SCT080 BKN200 22/15 A3008 RMK AO2 SLP188 T02220150Let's decode it line by line:
Position 1 — Station Identifier: KSLC
The four-letter ICAO airport identifier. K prefix indicates a U.S. airport, then the three-letter airport code. Common examples:
KSLC — Salt Lake City International
KORD — Chicago O'Hare
KSFO — San Francisco International
KLAX — Los Angeles International
Position 2 — Date/Time Group: 161854Z
First two digits: Day of the month (16th)
Next four digits: Time in UTC/Zulu (1854 Z)
Z suffix: Zulu time (UTC)
This METAR was observed on the 16th at 1854 Zulu (or 12:54 PM Mountain Daylight Time).
Position 3 — Wind: 24008KT
First three digits: Wind direction in degrees true (240°)
Next two digits: Wind speed in knots (8 KT)
Suffix: KT (knots), some international formats use MPS (meters per second)
Variations:
00000KT — Calm winds
VRB05KT — Variable direction at 5 knots
25015G25KT — From 250° at 15 knots, gusting to 25 knots
30025KT 280V340 — From 300° at 25 knots, varying between 280° and 340°
Position 4 — Visibility: 10SM
Visibility in statute miles in the U.S. (or meters internationally).
10SM — 10 statute miles (or more — 10SM is the typical maximum)
2 1/2SM — 2.5 statute miles
1/4SM — Quarter statute mile
1SM — 1 statute mile
If visibility is reduced significantly, runway visual range (RVR) may also be reported: R31L/3500FTÂ means the RVR for runway 31L is 3,500 feet.
Position 5 — Weather Phenomena:
Optional, only included when present. Format uses qualifier + descriptor + phenomenon.
Common weather codes:
RA — Rain
SN — Snow
DZ — Drizzle
TS — Thunderstorm
GR — Hail (greater than 1/4 inch)
GS — Small hail
FG — Fog (visibility under 5/8 SM)
BR — Mist (visibility 5/8 to 6 SM)
HZ — Haze
FU — Smoke
Qualifiers (precede the phenomenon):
- — Light
+ — Heavy
VC — In the vicinity (within 10 SM)
Descriptors:
TS — Thunderstorm
SH — Shower
FZ — Freezing
BL — Blowing
DR — Drifting
Examples:
-RA — Light rain
+TSRA — Heavy thunderstorm with rain
FZDZ — Freezing drizzle
BLSN — Blowing snow
VCTS — Thunderstorm in the vicinity
Position 6 — Sky Condition: FEW040 SCT080 BKN200
Code | Coverage |
SKC or CLR | Sky clear |
FEW | 1-2 oktas (1/8 to 2/8) |
SCT | 3-4 oktas (3/8 to 4/8) |
BKN | 5-7 oktas (5/8 to 7/8) — ceiling |
OVC | 8 oktas (overcast) — ceiling |
VV | Vertical visibility (sky obscured) |
The number is altitude in hundreds of feet AGL. So:
FEW040 — Few clouds at 4,000 feet AGL
SCT080 — Scattered at 8,000 feet AGL
BKN200 — Broken at 20,000 feet AGL
Special notations:
BKN015CB — Broken cumulonimbus at 1,500 feet
SCT080TCU — Scattered towering cumulus at 8,000 feet
BKN030 OVC080 — Broken at 3,000 (ceiling), overcast at 8,000
Determining ceiling:Â The lowest BKN, OVC, or VV layer. FEW and SCT layers are NOT ceilings.
Position 7 — Temperature/Dewpoint: 22/15
In Celsius:
First number: Temperature (22°C)
Second number: Dewpoint (15°C)
M prefix indicates negative: M05/M10 = -5°C / -10°C
Spread: 22 - 15 = 7°C, or about 12.6°F. A small spread suggests fog/low ceiling potential.
Position 8 — Altimeter Setting: A3008
A prefix
Four digits in inches of mercury (with implied decimal): 30.08 inHg
Some international stations use Q1019Â for hectopascals (millibars).
Position 9 — Remarks (RMK): RMK AO2 SLP188 T02220150
Optional supplemental information after RMK. Common items:
AO2 — Automated station with precipitation discriminator
SLP188 — Sea Level Pressure 1018.8 hPa
T02220150 — Temperature 22.2°C, dewpoint 15.0°C (more precise than the body)
PRESRR/PRESFR — Pressure rising/falling rapidly
WSHFT — Wind shift
TSB30 — Thunderstorm began at minute 30
PK WND 25030/55 — Peak wind 250° at 30 knots at minute :55
TAF — Terminal Aerodrome Forecast
A TAF is a forecast of expected conditions at a specific airport, typically valid for 24-30 hours. TAFs are issued four times daily (00, 06, 12, 18 Z) and are amended as conditions change.
The TAF Format
A typical TAF looks like this:
KSLC 161730Z 1618/1718 26010KT P6SM FEW100 SCT200
   FM170200 24006KT P6SM SCT200
   FM171000 18004KT 4SM BR SCT003 OVC005
   TEMPO 1712/1715 1SM BR
   FM171800 22008KT P6SM SCT080Let's decode it:
Header line:
KSLC — Salt Lake City
161730Z — Issued on the 16th at 1730 Zulu
1618/1718 — Valid from 16th 1800Z through 17th 1800Z (24 hours)
Initial conditions:
26010KT — Wind 260° at 10 knots
P6SM — Visibility greater than 6 SM (P = "plus")
FEW100 SCT200 — Few clouds at 10,000, scattered at 20,000
Change groups:
FM (FRom) — Used for rapid significant changes. Indicates a complete replacement of forecast conditions starting at the specified time.
FM170200 — From 0200Z on the 17th
All conditions following FM replace previous forecast
BECMG (BECoMinG) — Used for gradual changes occurring over a period.
BECMG 1606/1610 — Becoming, between 06Z and 10Z on the 16th
The change occurs gradually within the time window
TEMPO (TEMPOrary) — Temporary fluctuations (typically less than half the time period).
TEMPO 1712/1715 — Temporary, between 12Z and 15Z on the 17th
Conditions persist less than half the time
Returns to underlying forecast outside this period
PROB (PROBability) — Probability of specified conditions.
PROB30 1700/1704 — 30% probability between 00Z and 04Z on the 17th
Used for less certain forecast elements
Reading the example:
From 1800Z on the 16th: 260° at 10 knots, more than 6 SM visibility, few clouds at 10,000, scattered at 20,000
From 0200Z on the 17th: 240° at 6 knots, more than 6 SM visibility, scattered at 20,000
From 1000Z on the 17th: 180° at 4 knots, 4 SM visibility in mist, scattered at 300, overcast at 500 (IFR ceiling)
Temporarily between 1200Z and 1500Z on the 17th: 1 SM visibility in mist (worse conditions during this window)
From 1800Z on the 17th: 220° at 8 knots, more than 6 SM, scattered at 8,000 (improving back to VFR)
TAF time periods:
The validity period is shown as YYHH/YYHH where:
First YY: Day of month
First HH: Hour
Slash separates start from end
Second YY: Day of month
Second HH: Hour
1618/1718Â means valid from the 16th at 1800Z to the 17th at 1800Z.
PIREP — Pilot Report
A PIREP is a real-time weather report from a pilot in flight. Unlike METARs and TAFs, PIREPs are based on actual aircraft observations of conditions.
Why PIREPs matter:
Real conditions vs. forecast or automated observation
The only source for in-flight turbulence and icing observations
Help following pilots and ATC understand actual conditions
Can lead to AIRMET amendments and flight advisories
Save lives by warning others of conditions encountered
Two PIREP types:
UA — Routine PIREP: Standard observations UUA — Urgent PIREP: Severe conditions (severe turbulence, severe icing, low-level wind shear, volcanic ash, tornadoes)
The PIREP Format
PIREPs use a specific format with letter codes for each element:
UA /OV BIL090045 /TM 2240 /FL080 /TP C172 /SK BKN035-TOP060 OVC080-TOP120 /WX FV05SM HZ /TA M03 /WV 27015KT /TB LGT-MOD /IC TRC RIME /RM SMOOTH AT 6500Decoded:
UA — Routine PIREP
/OV BIL090045 — Over (location) — 90° at 45 NM from BIL VOR
/TM 2240 — Time 2240 Zulu
/FL080 — Flight level 8,000 feet
/TP C172 — Aircraft type Cessna 172
/SK BKN035-TOP060 OVC080-TOP120 — Sky condition: Broken at 3,500 with tops at 6,000; overcast at 8,000 with tops at 12,000
/WX FV05SM HZ — Weather: Flight visibility 5 SM in haze
/TA M03 — Outside air temperature -3°C (M = minus)
/WV 27015KT — Winds 270° at 15 knots
/TB LGT-MOD — Light to moderate turbulence
/IC TRC RIME — Trace rime icing
/RM SMOOTH AT 6500 — Remarks: Smooth at 6,500 feet
Required PIREP elements:
The minimum required information is location, time, altitude, aircraft type, and one weather observation.
Optional elements that add value:
/SK — Sky condition (cloud bases, tops, layers)
/WX — Weather (visibility, precipitation type)
/TA — Air temperature
/WV — Winds
/TB — Turbulence (NEG, LGT, MOD, SEV, EXTRM, CHOP)
/IC — Icing (NEG, TRC, LGT, MOD, SEV)
/RM — Remarks (anything else useful)
Turbulence intensity:
Code | Definition |
NEG | None encountered |
LGT | Light — slight, occasional, brief, with intensity |
MOD | Moderate — noticeable changes in altitude/attitude, slight problems with chart reading |
SEV | Severe — large abrupt changes, momentary loss of control |
EXTRM | Extreme — aircraft violently tossed, may be impossible to control |
CHOP | Continuous — rough but limited displacement |
Icing intensity:
Code | Definition |
NEG | None encountered |
TRC | Trace — barely perceptible |
LGT | Light — buildup in 15-30 minutes |
MOD | Moderate — equipment use needed |
SEV | Severe — equipment fails to control |
How to File a PIREP
PIREPs can be filed several ways:
1. Through ATC: "Center, Cessna 12345, like to file a PIREP."
ATC will respond and you can dictate. They forward it to Flight Service.
2. Through Flight Service Station (FSS) on 122.0 (formerly Flight Watch) or other available frequencies: Direct contact with Flight Service.
3. Through 1800wxbrief.com: Online filing through your account on Leidos Flight Service.
4. Through EFB apps: Many apps like ForeFlight allow PIREP filing through ADS-B/datalink connections.
What ATC asks for:
Location (relative to airport or NAVAID)
Altitude
Time of observation
Aircraft type
Weather phenomenon and intensity
Why pilots should file PIREPs:
Helps following pilots
Helps ATC make better decisions
Helps Flight Service amend AIRMETs and SIGMETs
Required by regulation in some severe weather conditions
Builds your contribution to the aviation community
Common reasons NOT to file (mistakes pilots make):
"Nothing special" — even routine smooth conditions are useful PIREPs
"Someone else will file" — they often don't
"It's too much trouble" — it takes 30 seconds with ATC
"ATC is too busy" — they handle PIREPs as time permits
Filing a PIREP is one of the most useful things a pilot can do for the aviation community. It costs you 30 seconds and can save lives.
Putting It All Together
The three reports work as a system:
METAR — What's happening NOW at airports
TAF — What's FORECAST at airports
PIREP — What's actually happening EN ROUTE between airports
Use them together for a complete picture:
METAR for current departure conditions
TAF for arrival forecast
PIREPs for en route conditions
Cross-reference to see if forecasts are verifying
When forecasts and PIREPs disagree, trust the PIREP — it's actual observation.
On the Written Test and Checkride
METARs, TAFs, and PIREPs appear consistently on tests. The most commonly tested topics:
METAR format and decoding
TAF change groups (FM, BECMG, TEMPO, PROB)
Cloud coverage codes
Weather phenomena codes
PIREP format and filing
Turbulence and icing intensity definitions
Quick Reference
METAR Order:
Station identifier
Date/Time (Zulu)
Wind (direction/speed/gust)
Visibility (SM)
Weather phenomena
Sky condition (FEW, SCT, BKN, OVC)
Temperature/Dewpoint (°C)
Altimeter (A + 4 digits)
Remarks (RMK)
TAF Change Groups:
FM — From (rapid change, replaces forecast)
BECMG — Becoming (gradual change)
TEMPO — Temporary (less than half the period)
PROB30/40 — Probability of conditions
PIREP Codes:
/OV — Location
/TM — Time (Zulu)
/FL — Flight level
/TP — Aircraft type
/SK — Sky condition
/WX — Weather/visibility
/TA — Temperature
/WV — Winds
/TB — Turbulence
/IC — Icing
/RM — Remarks
Intensity scales:
Turbulence: NEG, LGT, MOD, SEV, EXTRM, CHOP
Icing: NEG, TRC, LGT, MOD, SEV
Study Full Aviation Courses:
wifiCFI's full suite of aviation courses has everything you need to go from brand new to flight instructor and airline pilot! Check out any of the courses below for free:
Study Courses:
Checkride Lesson Plans:
Teaching Courses:

Author: Nathan Hodell
CFI, CFII, MEI, ATP, Creator and CEO
Nathan is an aviation enthusiast with thousands of hours of flying and dual instruction over the past 15+ years. Through his aviation career he has been able to earn his ATP, fly as an airline pilot, own/operate flight schools, and create and host wifiCFI.