By late in the afternoon of the 31st, a cold front stretched from Devils Lake, North Dakota, to near Hallock, Minnesota. Ahead of the front, temperatures ranged in the middle 80s to lower 90s, with dew points in the mid 60s. Scattered thunderstorms formed along the front, but initially the strongest storm was over the northern Red River Valley. Eventually, a second strong storm formed over western Grand Forks County in North Dakota, and this storm tracked to the south-southeast toward Fargo.

Hail in CASS, NORTH DAKOTA
From 31-JUL-17 20:30:00 to 31-JUL-17 20:30:00 (CST-6)
Location: AYR
Magnitude: 1.00 
Reported by: Public

The hail was accompanied by brief strong winds.

Hail in CASS, NORTH DAKOTA
From 31-JUL-17 21:09:00 to 31-JUL-17 21:09:00 (CST-6)
Location: EMBDEN
Magnitude: 1.25 
Reported by: Public

Heavy rain and large hail fell across northern Eldred Township.

Hail in CASS, NORTH DAKOTA
From 31-JUL-17 21:10:00 to 31-JUL-17 21:10:00 (CST-6)
Location: HORACE
Magnitude: 1.00 
Reported by: Social Media

Dime to quarter sized hail covered a deck.

Hail in GRAND FORKS, NORTH DAKOTA
From 31-JUL-17 17:46:00 to 31-JUL-17 17:46:00 (CST-6)
Location: LARIMORE
Magnitude: 0.75 
Reported by: Fire Department/Rescue

Hail in GRAND FORKS, NORTH DAKOTA
From 31-JUL-17 17:58:00 to 31-JUL-17 17:58:00 (CST-6)
Location: KEMPTON
Magnitude: 1.50 
Reported by: Public

Dime to ping pong ball sized hail fell, but not a lot of rain.

Hail in GRAND FORKS, NORTH DAKOTA
From 31-JUL-17 18:30:00 to 31-JUL-17 18:33:00 (CST-6)
Location: NORTHWOOD
Magnitude: 1.00 
Reported by: Trained Spotter

The hail was accompanied by heavy rain.

Funnel Cloud in TRAILL, NORTH DAKOTA
From 31-JUL-17 19:02:00 to 31-JUL-17 19:02:00 (CST-6)
Location: PORTLAND JCT
Property damage: 0.00K
Crop damage: 0.00K
Reported by: State Official

A persistent wall cloud with a very brief funnel passed from eastern Garfield Township into northwest Lindaas Township before dissipating.

Hail in TRAILL, NORTH DAKOTA
From 31-JUL-17 19:05:00 to 31-JUL-17 19:05:00 (CST-6)
Location: HATTON
Magnitude: 1.75 
Reported by: Public

Hail in TRAILL, NORTH DAKOTA
From 31-JUL-17 19:06:00 to 31-JUL-17 19:06:00 (CST-6)
Location: BUXTON
Magnitude: 0.75 
Reported by: Public

Fifty mph wind gusts accompanied the hail.

Hail in TRAILL, NORTH DAKOTA
From 31-JUL-17 19:15:00 to 31-JUL-17 19:15:00 (CST-6)
Location: MAYVILLE
Magnitude: 0.75 
Reported by: Broadcast Media

Wind gusts to 50 mph accompanied the hail.

Hail in STEELE, NORTH DAKOTA
From 31-JUL-17 19:20:00 to 31-JUL-17 19:20:00 (CST-6)
Location: HOPE
Magnitude: 1.25 
Reported by: Social Media

Hail in BARNES, NORTH DAKOTA
From 31-JUL-17 19:55:00 to 31-JUL-17 19:55:00 (CST-6)
Location: PILLSBURY
Magnitude: 1.00 
Reported by: Public

The hail was accompanied by heavy rain.

Hail in CASS, NORTH DAKOTA
From 31-JUL-17 19:59:00 to 31-JUL-17 19:59:00 (CST-6)
Location: GRANDIN
Magnitude: 1.50 
Reported by: Social Media

Thunderstorm Wind in CASS, NORTH DAKOTA
From 31-JUL-17 20:20:00 to 31-JUL-17 20:20:00 (CST-6)
Location: GARDNER
Magnitude: 52.00 EG
Reported by: Social Media

Numerous large tree branches were broken down in farmstead shelterbelts across southern Gardner and Gunkel townships.

Thunderstorm Wind in CASS, NORTH DAKOTA
From 31-JUL-17 20:25:00 to 31-JUL-17 20:25:00 (CST-6)
Location: NEWMAN
Magnitude: 52.00 EG
Reported by: Broadcast Media

Numerous large tree branches were blown down in shelterbelts across northern Rush River and Berlin townships.