NC 2006-2015 · Beta
How It Works · v1

How It Works

A short technical document for users who want to understand the math behind the numbers before they trust them.

What this tool does #

MiataDyno estimates wheel horsepower from a CSV log captured by an OBD scanner during an acceleration run. It applies a road-load physics model to the speed and time data in your log and returns a power curve, peak WHP, and an estimated crank HP after typical drivetrain losses.

It is not a chassis dyno. The numbers are estimates derived from physics, not measurements taken with a dynamometer. The output is most reliable when used as a comparison signal. The difference in WHP between two pulls of the same car on the same road tells you whether your mod did anything. The absolute number is useful as a sanity check against published reference values for your generation, but a chassis dyno reading and a MiataDyno reading on the same car will not match exactly, and shouldn't be expected to.

How the math works #

MiataDyno estimates wheel horsepower from a road-load model. It's the same physics any dyno simulation uses. The tool computes the force your engine produces at the wheels by accounting for vehicle mass and acceleration, the rolling resistance of your tires on the road, and the aerodynamic drag of your car at speed. The model is calibrated to the specific NC Miata platform: chassis aerodynamics, drivetrain characteristics, and rotational inertia values are tuned to the NC1 / NC2 / NC3 generations rather than a generic vehicle.

Generic road-load models assume average values for drag coefficient, frontal area, and tire dynamics. That's fine for ballpark estimates but introduces 5-15% error for any specific car. MiataDyno uses values validated against measured NC behavior, which is why the tool only supports NC Miatas. Extending to other platforms means redoing the calibration work, not just changing a config file.

Atmospheric correction #

Engine power varies with air density: cooler, denser air at lower altitude makes more power than hot, thin air at altitude. To compare runs across different conditions, the calculated WHP is normalized to a standard reference using one of two published correction standards.

The default is SAE J1349, which normalizes to 25°C and 99 kPa (the US dyno-shop default). DIN 70020 is also available, which normalizes to 20°C and 1013 mbar (the European default) and reads roughly 3% higher. Pick the standard that matches whichever dyno-shop reading you'd want to compare against.

About the temperature term: the correction uses a default ambient temperature, not the intake-air temp from your CSV. This is deliberate. Real chassis dynos blow fans at the intake to keep IAT close to ambient throughout the pull, so dyno-corrected numbers are essentially "what the engine would make at standard ambient conditions." On a street pull, intake air heat-soaks 20 to 30°C above ambient under the hood. Feeding that heat-soaked IAT into the correction formula would scale the answer up by exactly the heat-soak gain, over-stating the power. Using a default ambient produces a number that's directly comparable to a chassis-dyno reading instead of an artifact of how hot your engine bay was.

This is a known limitation, not a missing feature. A future version will pull real ambient temperature from a weather API based on the timestamp and location of your run, replacing the default. The current behavior is conservative and consistent. The same conditions today will produce the same number tomorrow, which is what matters for comparison.

What your tire size does to the numbers #

Your OBD scanner reports vehicle speed assuming stock tire diameter. If you're running a different tire size than stock, every speed reading is off by the same percentage your tire diameter is off, and because horsepower is proportional to force times velocity, your WHP number is off by the same percentage. MiataDyno corrects for this if you tell it your actual tire size. If you don't, the numbers will be wrong in a predictable direction.

The tool also runs a sanity check comparing your pull's speed-to-RPM ratio against what your configured gear and tire size predict. If they disagree by more than 5%, you'll get a warning before analysis runs. Usually it means the tire size in the configuration doesn't match the tires actually on the car, but it can also surface speedo offsets from a tune.

Validation #

The tool is validated by comparing MiataDyno output against a chassis-dyno reading on the same car. The methodology: same vehicle, same configuration, dyno sheet from a recent session compared against MiataDyno output from a CSV captured during a separate WOT pull on a flat road in similar atmospheric conditions.

Car Conditions Dyno reading MiataDyno Δ Contributor
NC2 PRHT, stock Sea level, 13°C ambient 118-128 WHP (Dynojet range) ~126 WHP within range Danny
Have a recent dyno sheet and a CSV from the same session? Send both via the feedback form and we'll add it here. Validations from the community sharpen the calibration over time.

Known limitations #

The tool produces an estimate from a physics model. The model has assumptions, and the assumptions break down in specific situations. These are the known failure modes: