Here is my system:
Each 10F drop in temperature needs another layer.
60F I will use long pants and a long windbreaker over a t-shirt
50F I am using a long sleeve polypropylene biking jersey under a good raincoat (rain or shine) to cut the wind, light gloves, jeans. No hat yet, just a helmet.
40F I add rain pants over the jeans
30F I add thicker gloves, and a sweater instead of the biking jersey, rain pants over jeans.
20F I add a balaclava hat, (Polypro) wear a wool sweater and another layer, thick gloves, and thick socks. I also add ski goggles, because at that temperature my eyes begin to tear up. Still rain pants over jeans.
10F I have three layers under the raincoat- a T-shirt, a polypropylene long sleeve jersey, and a wool sweater. I might wear thin long johns, thin polypro socks under the thick wool socks, and I have some army surplus mitten shells that go over my thick gloves. Ski goggles are a welcome addition. Balaclava hat. I might still leave the raincoat unzipped a little for cooling.
0F I add another layer of socks tot he above getup, might consider thicker long johns (Army Surplus Polypro!) the balaclava gets fitted more tightly around the face, exposed skin starts to hurt on fast downhill runs, everything gets zipped up tight. I have problems with cold feet with this setup, I am still in street shoes. I might look into some shoe covers for this temp, but hiking boots are no better. I have a pact that I must ride on the very coldest day every year, with records running near 0F every year. I haven't missed this goal in 3 years.
I have had gear shifters shatter from being brittle int he cold at 0F. I tend to prefer the old-school metal bar-end shifters, they never fail in the cold.
I have never ridden at -10F. If it ever gets that cold I will try it.