Abstract The Surface Heat Budget of the Arctic Ocean (SHEBA) experiment produced 18 000 h of turbulence data from the atmospheric surface layer over sea ice while the ice camp drifted for a year in the Beaufort Gyre. Multiple sites instrumented during SHEBA suggest only two aerodynamic seasons over sea ice. In “winter” (October 1997 through 14 May 1998 and 15 September 1998 through the end of the SHEBA deployment in early October 1998), the ice was compact and snow covered, and the snow was dry enough to drift and blow. In “summer” (15 May through 14 September 1998 in this dataset), the snow melted, and melt ponds and leads appeared and covered as much as 40% of the surface with open water. This paper develops a bulk turbulent flux algorithm to explain the winter data. This algorithm predicts the surface fluxes of momentum, and sensible and latent heat from more readily measured or modeled quantities. A main result of the analysis is that the roughness length for wind speed z0 does not depend on the friction velocity u* in the drifting snow regime (u* ≥ 0.30 m s−1) but, rather, is constant in the SHEBA dataset at about 2.3 × 10−4 m. Previous analyses that found z0 to increase with u* during drifting snow may have suffered from fictitious correlation because u* also appears in z0. The present analysis mitigates this fictitious correlation by plotting measured z0 against the corresponding u* computed from the bulk flux algorithm. Such plots, created with data from six different SHEBA sites, show z0 to be independent of the bulk u* for 0.15 < u* ≤ 0.65 m s−1. This study also evaluates the roughness lengths for temperature zT and humidity zQ, incorporates new profile stratification corrections for stable stratification, addresses the singularities that often occur in iterative flux algorithms in very light winds, and includes an extensive analysis of whether atmospheric stratification affects z0, zT, and zQ.