I rode yesterday in near-freezing conditions: temps were mid-30s F (2C) and light northerly breeze (10 mph; 16 kph). Cold weather cycling doesn’t have to be expensive. It requires you learn what to expect and dress accordingly using common clothing items. I’ll offer some considerations.
Start cold — There is an unmistakable warm-up factor that hits after about the first two miles. What you wear should match what you’ll need after the warm-up, not when you take off. For my ride, I wore sweatpants, a t-shirt and light hoodie covered by a light wind-breaker vest, plain but thick leather work gloves, and wool socks in my normal riding/hiking shoes. I could have pulled the hood up under my helmet, but I got used to exposing my face and ears more than most folks can handle growing up in Alaska. At the start, my hands were cold and my arms and legs were cool. Once I hit the warm-up point, I felt just about comfortable. Eventually my toes got pretty cold, so that was a miscalculation; they were cold but not damp from sweat. I’ll wear my waterproof hiking boots next time. (I have to factor in previous cold weather injuries to my feet.)
Don’t ride too long — I chose a 16 mile (26k) loop with lots of hills. It takes more energy to ride and stay warm, so you’ll be depleted more quickly. I rode north on Sooner Road to NE 50th, over to Coltrane and north to NE 63rd. From there I headed west toward I-35, but turned south at the service road. This is an officially marked bike route that winds back and forth between sections of one-way traffic on both sides, then two-way traffic on one side due to terrain. My objective was to have decent hills somewhere short of brutal and enjoy some habituation from drivers knowing they are on a bike route. It was just about the right workout because I didn’t hit the mild dizziness from exertion too long in cold weather.
When it’s really cold — Starting somewhere below freezing and downward (≅25°F/-4C), the risk of getting too cold trumps the relatively rare threat of head impact injuries, so ditch the helmet. The head can be quite sensitive to cold and it takes a fine-tuned sense of experience to know what your body needs. I prefer layered protection when riding without cutting off breathing; I wear multiple cloth layers on my head. The idea is to retain just enough heat that I don’t sweat. It’s the same with the rest of your gear; layers on the torso without too much windbreaker. You can wear wind pants because your legs don’t sweat like your torso does. Unless I’m in really high winds, even down near zero, I don’t wear a full windbreaker jacket. I have a polypropylene tube that I can wear around my neck and pull up over my nose and mouth as needed, but I’m keeping an eye out for a proper face cover because the tube tends to vent my breath up onto my glasses.
Side note: Back in my motorcycle days I rode in all temperatures. I made myself a leather face cover shaped to vent downward. Even without a lining, basic tanned shoe leather was plenty warm in the high wind exposure of riding with a heavy padded helmet. Cycling seldom exposes you to that kind of wind.
Also, I keep an eye out for appropriate winter clothing out of season when it’s on sale. Another good place is thrift stores; we have several in our area.
Each part of your body responds differently to exercise in cold weather. Try to develop an awareness and stay away from over clothing and overheating. That’s just downright dangerous.