A spirometer comprises a housing defining a fluid flow pathway extending between a first end and a second end, a first opening along the pathway and a second opening longitudinally spaced along the pathway from the first opening. A flow chamber defining a fluid flow pathway is disposed within the housing between the first opening and the second opening, the flow chamber including an elongated resistive element along the central longitudinal axis of the flow chamber for defining a flow passage through the flow chamber between the resistive element and the inner surface of the flow chamber. The flow chamber conditions fluid flow for accurate sensing of the fluid flow over a range. A pressure sensor is disposed within the housing in fluid communication with the first opening and the second opening for sensing a pressure differential between the first opening and the second opening and producing an electric signal that corresponds with the rate of fluid flow through the housing. The described spirometer and associated software has a variety of applications in the evaluation, diagnosis, monitoring, and improvement of respiratory conditions as well as digitally-delivered respiratory rehabilitation programs and clinical trials.