PROM v5.0 Validation Report
PROM v5.0 changes the engine the model runs on, not the model. Every equation, every coefficient, and every validated behaviour in this report is the PROM v4.3 model, executed by a new native compute engine. Unlike the usual engine-swap story, you do not have to take that on faith: every number below was measured by running the full validation corpus, 75 propellers against wind-tunnel data and 98 motors against dynamometer data, through the v5.0 engine itself. The result reproduces the v4.3 campaign to every published digit.
The engine changed; the model did not
We held the two engines to agreement in two independent ways.
First, before v5.0 became the default, every reported output channel was compared between the two engines across a grid of representative configurations: single- and multi-rotor, across throttle, battery state and thermal modes. The acceptance criterion was agreement within one part in a million on every channel of every configuration. The release you are using passed it on all 24 configurations of the grid, run through both battery thermal models, with the worst-agreeing channel anywhere in the grid at 4.3 parts in a hundred million.
Second, this report itself. The v4.3 report was generated by the previous engine; this one was regenerated from scratch on v5.0, same corpus, same statistics, one engine build for every figure. All 61 published statistics match the v4.3 campaign at the four significant figures we publish. The model did not move.
Two things do change with the engine:
- First-result latency. The previous engine compiled its numerical kernels on first use, so the first simulation on a fresh worker paid a long one-time compilation delay. The native engine does not; a first result and a hundredth result now cost the same.
- One engine, no fallback. Earlier previews of v5.0 routed configurations the native engine did not yet cover, coaxial stacks, oblique inflow and sweeps, back to the previous engine. That routing is retired: the native engine carries those paths itself, and every result records the engine build that produced it.
Validated envelope
| Scope | Family | Count | Diameter (in) | RPM | Advance ratio | Pitch/diameter |
|---|---|---|---|---|---|---|
| Propeller | APC Slow Flyer | 11 | 8.0–11.0 | 1,666–7,018 | 0.00–1.07 | 0.35–0.83 |
| Propeller | APC Sport | 30 | 7.0–14.0 | 1,374–7,082 | 0.00–1.55 | 0.27–1.29 |
| Propeller | APC Thin Electric | 34 | 8.0–21.0 | 960–7,547 | 0.00–1.23 | 0.44–1.00 |
| Motor | T-Motor bench | 95 | — | 687–20,690 | — | — |
Benchmark results
Propeller: held-out
| Scope | Channel | Partition | Configuration | Family | n | MAE | RMSE | Bias | R² |
|---|---|---|---|---|---|---|---|---|---|
| Propeller | CT | held-out | Production configuration | APC Slow Flyer | 461 | 0.01201 | 0.01475 | -0.007404 | 0.9221 |
| Propeller | CP | held-out | Production configuration | APC Slow Flyer | 461 | 0.006890 | 0.009808 | -0.004242 | 0.8782 |
| Propeller | CT | held-out | Physics-only configuration | APC Slow Flyer | 461 | 0.01341 | 0.01664 | 0.0008219 | 0.9008 |
| Propeller | CP | held-out | Physics-only configuration | APC Slow Flyer | 461 | 0.006890 | 0.009808 | -0.004242 | 0.8782 |
| Propeller | CT | held-out | Production configuration | APC Sport | 1,219 | 0.006223 | 0.007312 | -0.002589 | 0.9611 |
| Propeller | CP | held-out | Production configuration | APC Sport | 1,219 | 0.009092 | 0.01048 | -0.008773 | 0.8648 |
| Propeller | CT | held-out | Physics-only configuration | APC Sport | 1,219 | 0.007764 | 0.008951 | -0.002271 | 0.9417 |
| Propeller | CP | held-out | Physics-only configuration | APC Sport | 1,219 | 0.009092 | 0.01048 | -0.008773 | 0.8648 |
| Propeller | CT | held-out | Production configuration | All | 1,680 | 0.007811 | 0.009923 | -0.003911 | 0.9446 |
| Propeller | CP | held-out | Production configuration | All | 1,680 | 0.008488 | 0.01030 | -0.007530 | 0.8685 |
| Propeller | CT | held-out | Physics-only configuration | All | 1,680 | 0.009314 | 0.01158 | -0.001422 | 0.9246 |
| Propeller | CP | held-out | Physics-only configuration | All | 1,680 | 0.008488 | 0.01030 | -0.007530 | 0.8685 |
Motor: held-out
| Scope | Channel | Partition | Configuration | Family | n | MAE | RMSE | Bias | R² |
|---|---|---|---|---|---|---|---|---|---|
| Motor | bus current (%) | held-out (geometry seen by priors) | Production configuration | 30-60% throttle | 877 | 9.198 | 12.36 | -5.139 | 0.9742 |
| Motor | efficiency (pts) | held-out (geometry seen by priors) | Production configuration | 30-60% throttle | 877 | 7.262 | 9.678 | 3.994 | 0.04622 |
| Motor | bus current (%) | held-out (geometry seen by priors) | Production configuration | 60-99% throttle | 1,157 | 6.035 | 8.642 | -0.6678 | 0.9870 |
| Motor | efficiency (pts) | held-out (geometry seen by priors) | Production configuration | 60-99% throttle | 1,157 | 4.847 | 6.995 | 0.5331 | 0.1055 |
| Motor | bus current (%) | held-out (geometry seen by priors) | Production configuration | All | 2,209 | 7.221 | 10.15 | -2.221 | 0.9900 |
| Motor | WOT speed (%) | held-out (geometry seen by priors) | Production configuration | All | 175 | 6.102 | 7.837 | -0.9998 | 0.9194 |
| Motor | efficiency (pts) | held-out (geometry seen by priors) | Production configuration | All | 2,209 | 5.740 | 8.056 | 1.734 | 0.1300 |
| Motor | bus current (%) | held-out (geometry seen by priors) | Production configuration | full throttle | 175 | 5.151 | 6.513 | 2.132 | 0.9767 |
| Motor | WOT speed (%) | held-out (geometry seen by priors) | Production configuration | full throttle | 175 | 6.102 | 7.837 | -0.9998 | 0.9194 |
| Motor | efficiency (pts) | held-out (geometry seen by priors) | Production configuration | full throttle | 175 | 4.018 | 5.131 | -1.653 | 0.2606 |
Motor: in-sample
| Scope | Channel | Partition | Configuration | Family | n | MAE | RMSE | Bias | R² |
|---|---|---|---|---|---|---|---|---|---|
| Motor | bus current (%) | in-sample | Production configuration | 30-60% throttle | 2,123 | 7.038 | 9.745 | -3.251 | 0.9744 |
| Motor | efficiency (pts) | in-sample | Production configuration | 30-60% throttle | 2,123 | 5.475 | 7.496 | 2.631 | 0.06875 |
| Motor | bus current (%) | in-sample | Production configuration | 60-99% throttle | 2,669 | 5.435 | 8.088 | 0.6907 | 0.9700 |
| Motor | efficiency (pts) | in-sample | Production configuration | 60-99% throttle | 2,669 | 4.230 | 5.966 | -0.4292 | 0.07478 |
| Motor | bus current (%) | in-sample | Production configuration | All | 5,207 | 6.177 | 8.928 | -0.8786 | 0.9813 |
| Motor | WOT speed (%) | in-sample | Production configuration | All | 383 | 8.313 | 11.08 | -1.795 | 0.8223 |
| Motor | efficiency (pts) | in-sample | Production configuration | All | 5,207 | 4.783 | 6.664 | 0.7833 | 0.1724 |
| Motor | bus current (%) | in-sample | Production configuration | full throttle | 383 | 5.790 | 8.844 | 2.564 | 0.9623 |
| Motor | WOT speed (%) | in-sample | Production configuration | full throttle | 383 | 8.313 | 11.08 | -1.795 | 0.8223 |
| Motor | efficiency (pts) | in-sample | Production configuration | full throttle | 383 | 4.320 | 5.860 | -1.825 | 0.09834 |
| Motor | bus current (%) | in-sample | Production configuration | under 30% throttle | 32 | 15.54 | 16.66 | -15.54 | 0.9601 |
| Motor | efficiency (pts) | in-sample | Production configuration | under 30% throttle | 32 | 10.54 | 10.90 | 10.54 | 0.2797 |
Per-case tables
| Case | Family | Partition | n | In-box | CP | CT | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bias | MAE | R² | RMSE | Bias | MAE | R² | RMSE | |||||
| 10x10 (Propeller) | APC Sport | held-out | 121 | 100% | -0.01064 | 0.01175 | 0.6726 | 0.01444 | 0.003243 | 0.004963 | 0.9782 | 0.005762 |
| 10x3 (Propeller) | APC Sport | held-out | 77 | 100% | -0.005497 | 0.005497 | -0.1981 | 0.005594 | -0.003661 | 0.003734 | 0.9536 | 0.004611 |
| 10x4 (Propeller) | APC Sport | in-sample | 101 | 100% | -0.008154 | 0.008154 | 0.04330 | 0.008282 | -0.005755 | 0.005755 | 0.9556 | 0.006276 |
| 10x4.7SF (Propeller) | APC Slow Flyer | in-sample | 129 | 100% | -0.005185 | 0.005664 | 0.6341 | 0.007201 | -0.008978 | 0.01071 | 0.9023 | 0.01398 |
| 10x5 (Propeller) | APC Sport | in-sample | 115 | 100% | -0.008235 | 0.008235 | 0.2717 | 0.008467 | -0.006160 | 0.006160 | 0.9556 | 0.006670 |
| 10x5E (Propeller) | APC Thin Electric | in-sample | 120 | 100% | -0.004912 | 0.004912 | 0.7056 | 0.005521 | -0.002908 | 0.004623 | 0.9638 | 0.006165 |
| 10x6 (Propeller) | APC Sport | in-sample | 135 | 100% | -0.009373 | 0.009373 | 0.4705 | 0.009554 | -0.007055 | 0.007055 | 0.9556 | 0.007509 |
| 10x7 (Propeller) | APC Sport | in-sample | 118 | 100% | -0.004410 | 0.004971 | 0.8221 | 0.005894 | 0.001432 | 0.002623 | 0.9917 | 0.003217 |
| 10x7E (Propeller) | APC Thin Electric | in-sample | 140 | 100% | -0.0001213 | 0.002165 | 0.9543 | 0.002940 | 0.005681 | 0.005811 | 0.9668 | 0.006409 |
| 10x7SF (Propeller) | APC Slow Flyer | in-sample | 134 | 100% | 0.003615 | 0.008124 | 0.7851 | 0.009410 | -0.0009316 | 0.007354 | 0.9722 | 0.008854 |
| 10x8 (Propeller) | APC Sport | held-out | 132 | 100% | -0.005716 | 0.006186 | 0.8192 | 0.007220 | -0.001052 | 0.003412 | 0.9881 | 0.004020 |
| 10x9 (Propeller) | APC Sport | in-sample | 143 | 100% | -0.008683 | 0.009199 | 0.7362 | 0.01104 | 0.00001433 | 0.003902 | 0.9873 | 0.004395 |
| 11x10E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 156 | 100% | -0.001047 | 0.006734 | 0.8014 | 0.008760 | 0.006404 | 0.006447 | 0.9563 | 0.007358 |
| 11x3 (Propeller) | APC Sport | in-sample | 85 | 100% | -0.006455 | 0.006455 | -0.8654 | 0.006540 | -0.002618 | 0.003638 | 0.9607 | 0.004323 |
| 11x3.8SF (Propeller) | APC Slow Flyer | in-sample | 109 | 100% | -0.001683 | 0.003544 | 0.6686 | 0.004246 | 0.0002616 | 0.008152 | 0.9552 | 0.009395 |
| 11x4 (Propeller) | APC Sport | in-sample | 94 | 100% | -0.007081 | 0.007081 | 0.1133 | 0.007249 | -0.002244 | 0.003544 | 0.9772 | 0.004180 |
| 11x4.7SF (Propeller) | APC Slow Flyer | in-sample | 119 | 100% | -0.005702 | 0.005974 | 0.6040 | 0.007160 | -0.01023 | 0.01076 | 0.9197 | 0.01368 |
| 11x5 (Propeller) | APC Sport | held-out | 105 | 100% | -0.009694 | 0.009694 | 0.05832 | 0.009829 | -0.008251 | 0.008251 | 0.9307 | 0.008524 |
| 11x5.5E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 98 | 100% | 0.0008001 | 0.001575 | 0.9451 | 0.001927 | 0.007481 | 0.007754 | 0.9087 | 0.008729 |
| 11x6 (Propeller) | APC Sport | held-out | 123 | 100% | -0.01235 | 0.01235 | 0.04297 | 0.01250 | -0.01049 | 0.01049 | 0.9118 | 0.01072 |
| 11x7 (Propeller) | APC Sport | held-out | 135 | 100% | -0.01232 | 0.01232 | 0.2788 | 0.01257 | -0.009336 | 0.009336 | 0.9358 | 0.009575 |
| 11x7E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 125 | 100% | -0.002250 | 0.002692 | 0.9293 | 0.003317 | 0.0008174 | 0.003247 | 0.9877 | 0.003893 |
| 11x7SF (Propeller) | APC Slow Flyer | in-sample | 126 | 100% | -0.008182 | 0.008542 | 0.7210 | 0.01098 | -0.01494 | 0.01495 | 0.9024 | 0.01733 |
| 11x8 (Propeller) | APC Sport | held-out | 141 | 100% | -0.009715 | 0.009715 | 0.5794 | 0.01012 | -0.006000 | 0.006000 | 0.9705 | 0.006547 |
| 11x8.5E (Propeller) | APC Thin Electric | in-sample | 141 | 100% | 0.001261 | 0.003783 | 0.9072 | 0.004549 | 0.008026 | 0.008064 | 0.9392 | 0.008593 |
| 11x8E (Propeller) | APC Thin Electric | in-sample | 131 | 100% | 0.0008307 | 0.002762 | 0.9318 | 0.003482 | 0.005406 | 0.005424 | 0.9707 | 0.005909 |
| 11x9 (Propeller) | APC Sport | in-sample | 146 | 100% | -0.01158 | 0.01158 | 0.4780 | 0.01225 | -0.006474 | 0.006476 | 0.9579 | 0.007345 |
| 14x12E (Propeller) | APC Thin Electric | in-sample | 107 | 100% | 0.001202 | 0.006134 | 0.7548 | 0.007545 | 0.008255 | 0.008255 | 0.9157 | 0.009047 |
| 14x13 (Propeller) | APC Sport | held-out | 118 | 100% | -0.007758 | 0.008247 | 0.6559 | 0.01085 | -0.001199 | 0.003704 | 0.9857 | 0.004312 |
| 17x12E (Propeller) | APC Thin Electric | in-sample | 117 | 100% | -0.006093 | 0.006093 | 0.6449 | 0.007633 | -0.0001853 | 0.004102 | 0.9673 | 0.005385 |
| 19x12E (Propeller) | APC Thin Electric | in-sample | 94 | 100% | -0.003777 | 0.003972 | 0.7988 | 0.004593 | 0.0001426 | 0.002662 | 0.9887 | 0.003215 |
| 7x6 (Propeller) | APC Sport | held-out | 117 | 100% | -0.006944 | 0.006944 | 0.7555 | 0.008364 | 0.006071 | 0.007874 | 0.9164 | 0.008962 |
| 7x9 (Propeller) | APC Sport | held-out | 150 | 100% | -0.006204 | 0.007102 | 0.8661 | 0.009026 | 0.003774 | 0.004178 | 0.9664 | 0.006125 |
| 8x10 (Propeller) | APC Sport | in-sample | 150 | 99% | -0.02951 | 0.02951 | -0.03531 | 0.03127 | -0.002992 | 0.004522 | 0.9798 | 0.005526 |
| 8x3.8SF (Propeller) | APC Slow Flyer | held-out | 97 | 100% | -0.001904 | 0.005681 | 0.5560 | 0.007098 | -0.001218 | 0.01187 | 0.8959 | 0.01355 |
| 8x4 (Propeller) | APC Sport | in-sample | 87 | 100% | -0.005591 | 0.005591 | 0.5884 | 0.005985 | 0.0003326 | 0.003842 | 0.9683 | 0.004791 |
| 8x4E (Propeller) | APC Thin Electric | in-sample | 92 | 100% | -0.003320 | 0.003738 | 0.6587 | 0.006032 | -0.0005556 | 0.008491 | 0.9036 | 0.009980 |
| 8x5 (Propeller) | APC Sport | in-sample | 108 | 100% | -0.007958 | 0.007958 | 0.5153 | 0.008474 | 0.001493 | 0.004055 | 0.9765 | 0.004638 |
| 8x6 (Propeller) | APC Sport | in-sample | 132 | 100% | -0.01241 | 0.01241 | 0.3666 | 0.01293 | -0.001241 | 0.002868 | 0.9860 | 0.004122 |
| 8x6E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 131 | 100% | -0.009171 | 0.009171 | 0.5440 | 0.01199 | -0.003333 | 0.008740 | 0.9241 | 0.01038 |
| 8x6SF (Propeller) | APC Slow Flyer | in-sample | 133 | 100% | -0.002381 | 0.007749 | 0.6968 | 0.01119 | -0.006986 | 0.008864 | 0.9167 | 0.01371 |
| 8x7 (Propeller) | APC Sport | in-sample | 135 | 100% | -0.006913 | 0.007022 | 0.8018 | 0.007786 | 0.002461 | 0.003828 | 0.9835 | 0.004541 |
| 8x8 (Propeller) | APC Sport | in-sample | 148 | 100% | -0.01812 | 0.01812 | 0.1535 | 0.01860 | -0.001901 | 0.003465 | 0.9870 | 0.003915 |
| 8x8E (Propeller) | APC Thin Electric | in-sample | 160 | 100% | -0.01031 | 0.01067 | 0.6702 | 0.01477 | -0.002220 | 0.004260 | 0.9808 | 0.005701 |
| 8x9 (Propeller) | APC Sport | in-sample | 160 | 100% | -0.02595 | 0.02595 | -0.6978 | 0.02655 | -0.0001893 | 0.004257 | 0.9723 | 0.005228 |
| 9x10 (Propeller) | APC Sport | in-sample | 145 | 100% | -0.004229 | 0.005306 | 0.8780 | 0.007082 | 0.003139 | 0.006597 | 0.9605 | 0.007255 |
| 9x3.8SF (Propeller) | APC Slow Flyer | held-out | 96 | 100% | -0.0004266 | 0.004009 | 0.6770 | 0.004869 | 0.001959 | 0.008811 | 0.9386 | 0.01003 |
| 9x4.5E (Propeller) | APC Thin Electric | in-sample | 93 | 100% | -0.0008837 | 0.001477 | 0.9393 | 0.002373 | 0.003674 | 0.005961 | 0.9566 | 0.006521 |
| 9x4.7SF (Propeller) | APC Slow Flyer | in-sample | 111 | 100% | 0.003675 | 0.006533 | 0.6206 | 0.007129 | 0.008093 | 0.01036 | 0.9299 | 0.01202 |
| 9x6 (Propeller) | APC Sport | in-sample | 130 | 100% | -0.01083 | 0.01083 | 0.4244 | 0.01113 | -0.006748 | 0.006748 | 0.9616 | 0.007088 |
| 9x6E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 128 | 100% | 0.002091 | 0.003316 | 0.9264 | 0.003928 | 0.005950 | 0.006874 | 0.9605 | 0.007567 |
| 9x6SF (Propeller) | APC Slow Flyer | held-out | 141 | 100% | -0.007072 | 0.008254 | 0.6752 | 0.01143 | -0.01306 | 0.01345 | 0.8776 | 0.01747 |
| 9x7 (Propeller) | APC Sport | in-sample | 136 | 100% | -0.005833 | 0.006010 | 0.8014 | 0.006766 | -0.001157 | 0.002412 | 0.9928 | 0.002993 |
| 9x7.5E (Propeller) | APC Thin Electric | in-sample | 127 | 100% | -0.004250 | 0.005742 | 0.8293 | 0.008312 | -0.00006000 | 0.002624 | 0.9927 | 0.003508 |
| 9x7.5SF (Propeller) | APC Slow Flyer | held-out | 127 | 100% | -0.005769 | 0.008476 | 0.7434 | 0.01215 | -0.01293 | 0.01294 | 0.9104 | 0.01531 |
| 9x8 (Propeller) | APC Sport | in-sample | 132 | 100% | -0.009273 | 0.009413 | 0.7072 | 0.01091 | 0.001658 | 0.003278 | 0.9886 | 0.004008 |
| 9x9 (Propeller) | APC Sport | in-sample | 141 | 100% | -0.01348 | 0.01348 | 0.4824 | 0.01576 | 0.004045 | 0.004528 | 0.9730 | 0.005595 |
| 9x9E (Propeller) | APC Thin Electric | in-sample | 141 | 100% | -0.001622 | 0.008006 | 0.8502 | 0.009534 | 0.001026 | 0.004252 | 0.9843 | 0.005320 |
| 12x10E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 174 | 99% | -0.0007468 | 0.003321 | 0.9510 | 0.004529 | -0.0006579 | 0.005580 | 0.9828 | 0.006252 |
| 12x6E (Propeller) | APC Thin Electric | in-sample | 128 | 100% | -0.002434 | 0.002891 | 0.9001 | 0.003480 | -0.002181 | 0.003985 | 0.9797 | 0.005512 |
| 12x8E (Propeller) | APC Thin Electric | in-sample | 151 | 100% | -0.001586 | 0.002993 | 0.9429 | 0.003671 | -0.002281 | 0.005961 | 0.9749 | 0.007045 |
| 13x10E (Propeller) | APC Thin Electric | in-sample | 212 | 100% | 0.0005276 | 0.003544 | 0.9346 | 0.004222 | 0.002839 | 0.005153 | 0.9778 | 0.006426 |
| 13x6.5E (Propeller) | APC Thin Electric | in-sample | 188 | 100% | -0.002853 | 0.002915 | 0.9042 | 0.003387 | -0.0002389 | 0.002858 | 0.9901 | 0.003661 |
| 13x8E (Propeller) | APC Thin Electric | in-sample | 187 | 100% | -0.0005190 | 0.002357 | 0.9519 | 0.002697 | 0.003044 | 0.004403 | 0.9817 | 0.005183 |
| 14x10E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 169 | 100% | 0.002057 | 0.003086 | 0.9258 | 0.003866 | 0.004346 | 0.005245 | 0.9769 | 0.006024 |
| 14x7E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 149 | 100% | -0.001025 | 0.001777 | 0.9469 | 0.002294 | 0.002566 | 0.004365 | 0.9807 | 0.004882 |
| 14x8.5E (Propeller) | APC Thin Electric | in-sample | 147 | 100% | -0.002761 | 0.003154 | 0.9050 | 0.003705 | -0.0006382 | 0.004662 | 0.9791 | 0.005543 |
| 16x10E (Propeller) | APC Thin Electric | in-sample | 165 | 100% | -0.004227 | 0.004417 | 0.8422 | 0.005104 | -0.003042 | 0.003988 | 0.9819 | 0.005107 |
| 16x12E (Propeller) | APC Thin Electric | in-sample | 138 | 100% | -0.0009757 | 0.003672 | 0.9295 | 0.004088 | -0.001488 | 0.005019 | 0.9794 | 0.005706 |
| 16x8E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 146 | 99% | -0.001419 | 0.002148 | 0.9183 | 0.002521 | 0.001960 | 0.002710 | 0.9883 | 0.003462 |
| 18x10E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 140 | 100% | -0.003897 | 0.004016 | 0.8365 | 0.004584 | -0.003880 | 0.004258 | 0.9780 | 0.005407 |
| 18x12E (Propeller) | APC Thin Electric | in-sample | 138 | 100% | -0.001920 | 0.002607 | 0.9406 | 0.002917 | -0.001005 | 0.003227 | 0.9881 | 0.003906 |
| 18x8E (Propeller) | APC Thin Electric | in-sample | 177 | 100% | -0.002920 | 0.002957 | 0.8368 | 0.003405 | -0.001245 | 0.002399 | 0.9913 | 0.002915 |
| 20x10E (Propeller) | APC Thin Electric | in-sample | 124 | 100% | -0.005716 | 0.005716 | 0.6194 | 0.006065 | -0.007028 | 0.007032 | 0.9387 | 0.008194 |
| 21x13E (Propeller) | APC Thin Electric | held-out (geometry seen by priors) | 126 | 100% | -0.002318 | 0.002866 | 0.9373 | 0.003189 | -0.002417 | 0.004229 | 0.9816 | 0.005000 |
Known limitations
Every model is wrong somewhere. This section states where PROM v5.0 is wrong, in which direction, and by how much, so that you can judge whether a given prediction is one you should trust. Because v5.0 is the v4.3 model on a new engine, these are the v4.3 limitations. The re-measurement above confirms they carried over unchanged; a future model change will move them, and will come with a re-measured report.
Shaft speed is the weak channel, and PROM over-predicts it
PROM predicts motor current well and motor speed noticeably less well. At wide-open throttle it over-predicts achievable shaft speed, and 54 of the 95 bench motors still fall outside a ±5% band even after the v4.3 improvement. This is the limitation a user is most likely to notice first, because predicted RPM sets predicted thrust.
On the held-out portion of the bench set the speed result is better than the headline: mean absolute error 6.10% with 49% of rows inside ±5%. Against an independent laboratory's motors it is worse, at 14.8%. That spread is itself information: treat ±5% as optimistic for a motor we have never measured.
The cause is structural rather than a missing adjustment. The speed and current channels want different values of motor phase inductance and no single value satisfies both: optimised for speed, the residual current error is 8.2%; optimised for current, the residual speed error is 7.1%; the best joint value still leaves 1.9% and 3.4%. PROM ships a value nearer the current-optimal end, because current is what drives runtime and thermal predictions. The speed residual is the price of that choice, and it is a choice.
Below 30% throttle the motor model is weak
Motor current error rises sharply at low throttle: roughly 21% mean absolute error below 30% throttle, with only about a quarter of rows within ±10%. This is confirmed on an independent laboratory's data rather than inferred from a thin sample, so it is a real limitation and not an artifact.
The 60–99% throttle band, where most hover and cruise operation sits, is the strongest part of the range.
Efficiency is not a second opinion
Motor efficiency error is roughly 5 percentage points, but it should not be read as independent corroboration of the current result: it is the same current residual re-expressed. Additionally, predicted motor efficiency saturates near 84%, so PROM cannot reproduce measured efficiencies above that.
Motor magnetic saturation is not modelled
PROM treats the motor torque constant as independent of current. Real surface-permanent-magnet motors lose torque constant as armature current rises, which means PROM will tend to under-predict current draw for a heavily loaded motor. The error grows with load, and is largest on high-pitch propellers at high cell counts. The term needed to represent this exists in the model but ships disabled, because we do not yet have the measurements to set it honestly.
About one motor in six sits at an inductance bound
PROM estimates phase inductance from published motor specifications, and bounds the result to the range supported by bench data. 357 of 1,984 catalogue motors (18.0%) sit at the upper bound, and the pole-count term saturates outside 14–42 poles, which affects a further 120 catalogue entries. For those motors the inductance is a bounded estimate rather than an interpolation, and predictions should be treated as correspondingly less certain. The bounds exist because extrapolating past the measured range produced unphysical results.
Propeller torque is under-predicted at low advance ratio
The propeller model uses a station-local wake closure that does not capture interaction between blade stations across the helical wake surface. The consequence is systematic under-prediction of thrust at heavy loading and low advance ratio, which is to say near static thrust, where a multirotor spends most of its life. The per-family tables above quantify how large the effect is on the propellers we measured.
The effect concentrates in the short-pitch, large-diameter regime. If you are simulating a large-diameter, low-pitch propeller near static thrust, expect the widest error there.
Several candidate improvements to this closure were implemented and evaluated against the measured set, and none of them improved accuracy overall; some made it worse. The standard empirical modification for very high disk loading is likewise not part of the shipped model. We mention both because "not implemented" here reflects evidence that it did not help, rather than an oversight.
Edgewise flight: modelled, but the in-plane force is a lower bound
PROM resolves both the axial and the edgewise component of the airflow a rotor sees, including each rotor's own mounting tilt, and reports thrust in both the rotor frame and the ground frame. Tilted and forward-flight operation is a modelled condition, not an approximation of hover.
Two things about it are worth knowing:
- The in-plane (edgewise) force is a deliberate lower bound. It is computed as a first-order estimate from the revolution-averaged blade state rather than by resolving the disk azimuthally. Against a higher-fidelity azimuthally resolved calculation, it recovers roughly 58%, 64% and 81% of the in-plane force at advance ratios of 0.06, 0.13 and 0.25 respectively. It is therefore most conservative exactly where multirotors spend most of their time, low advance ratio. Treat in-plane force as a floor, not an estimate of centre.
- Per-revolution effects are not represented. Because the disk is not resolved by azimuth, the once-per-revolution variation in blade loading and the pitch and yaw hub moments that arise from it are not part of the solution.
Rotor-to-rotor interaction: modelled, but not measured against
Rotors stacked in each other's wake are coupled: PROM applies the upstream rotor's axial and swirl perturbation to the downstream disk, in both steady-state and transient solutions, and the transient case carries the convection delay before an upstream change reaches the rotor below.
The physics is derived from vortex-tube theory with no empirical constants and is verified against closed-form limiting cases. Steady-state stacked-rotor results are the validated path. Transient stacked-rotor results are not: the wake-convection lag that carries an upstream change down to the rotor below ships without verification against measurement, because no such measurement exists in our corpus. Treat coaxial results in dynamic runs as provisional, and stacked-rotor results generally as theory-grade rather than measurement-backed. None of the error bars in this report were measured on a stacked configuration.
Steep descent
In a fast, steep descent a rotor can re-ingest its own wake. PROM detects operating points that enter this regime and flags them; the result is returned but should be read as an approximation. Everything else in the same run is unaffected.
Not attempted at all
- No acoustic prediction. Aerodynamic forces only, no tonal or broadband noise output.
- Propeller geometry uncertainty dominates. For propellers whose geometry is derived rather than supplied by the manufacturer, blade chord is the largest single source of uncertainty. See the user-supplied geometry section below.
Out-of-envelope behaviour
PROM does not refuse to run outside the envelope above, and it does not warn you when you leave it. It will return a number for a propeller half the size of anything we have measured. This section is how you tell whether that number deserves your confidence.
Propellers outside the measured set
The envelope above describes propellers we have compared against wind-tunnel measurement. Outside it, three things degrade at different rates:
- Smaller propellers. Below roughly 12 inches, blade Reynolds numbers drop into a regime where sectional drag rises sharply and is less predictable. Expect efficiency to be optimistic.
- Higher advance ratios. Above the advance-ratio range in the envelope table, we have no measurements to report against.
- Other manufacturers and blade families. Our measured set is dominated by one manufacturer's electric series. Geometry from other families is represented by the same underlying model, but its accuracy on those families is not something this report establishes.
Flight condition, not just propeller
There is a second and less obvious way to leave the envelope. Every measurement behind this report was taken with the airflow arriving along the rotor's spin axis. Edgewise and tilted operation is fully modelled, as described above, but nothing in this report measures it: there is no wind-tunnel data here taken at an angle to the disk. The same is true of stacked rotors and of steep descent.
So the numbers in the tables above quantify the model's accuracy in axial flight. They do not transfer unchanged to a forward-flight multirotor, a tilt-rotor, or a coaxial stack. Those configurations run through additional model paths whose error bars this report does not establish, and for the in-plane force specifically, the shipped value is a known lower bound rather than a best estimate.
The held-out results in this report are a deliberately harder test than the in-sample ones: those propellers are new to the model, and nothing about them informed it. They also sit almost entirely inside the geometric range over which the production configuration is supported, so the held-out numbers are a clean measure of how the model treats an unfamiliar propeller rather than a mixture of that and a fade toward the physics-only prediction.
One asymmetry is worth stating plainly, because it is visible in the tables above: for the power coefficient, the production and physics-only configurations report the same numbers. PROM applies no empirical adjustment to power; that channel is the model's own prediction in both configurations. Where the two columns differ, you are looking at thrust.
User-supplied and custom components
Every number in this report was produced from catalogue components whose geometry we control. Components you supply yourself are outside the validated envelope, and this is the common case rather than an edge case: custom components are available on every tier.
The reason is simply that we have not measured it. Every figure in this report comes from comparing a prediction against a wind-tunnel or dyno measurement of a specific known component. A component you define yourself has no such measurement behind it, so the error bars above do not extend to it. Not because we know it to be worse, but because we have not established what it is.
The sensitivity worth understanding is geometric: blade chord and pitch scale thrust and power directly, so small errors in a reconstructed blade shape propagate straight into the result. If you supply geometry, its accuracy is the dominant term, and it is one only you can check.
Results computed with user-supplied components are marked as such in the interface. Treat the error bars in this report as inapplicable to them.
What to do about it
Out-of-envelope predictions are still useful for comparing designs against each other, because the errors described here are largely systematic and move similar configurations in the same direction. They are much weaker as absolute predictions. If you need an absolute number outside the envelope, a flight time you will commit to, a current a component must survive, measure it.
Changes from previous version
Relative to the PROM v4.3 report: none in the model, and therefore none in the measured accuracy. The change in this release is the compute engine described at the top of this report. This time we did not settle for the parity gate's one-in-a-million bound as the only evidence: the whole corpus was re-run on the new engine, and every published statistic reproduces the v4.3 campaign at the four significant figures we publish. The underlying measurements are the same wind-tunnel and dynamometer campaigns; the engine that turned them into these tables is the one your simulations run on.
Data sources
- UIUC Propeller Data Site, Volume 1 — APC Thin Electric / Slow Flyer / Sport — Brandt, J. B. and Selig, M. S., 'Propeller Performance Data at Low Reynolds Numbers', AIAA 2011-1255, January 2011; Brandt 2005 UIUC M.S. thesis. (revision: e60b6ff97f78)
- UIUC Propeller Data Site, Volume 4 — APC Thin Electric — Dantsker, O. D., Caccamo, M., Deters, R. W. and Selig, M. S., 'Performance Testing of APC Electric Fixed-Blade UAV Propellers', AIAA 2022-4020, June 2022. (revision: e4c6b24c399e)
- T-Motor published bench dataset (curated corpus) — Manufacturer-published product-page test tables, curated and energy-consistency filtered. (revision: bcd9bcaba479)
- Independent third-party motor bench — Commercial laboratory dataset; source withheld under its terms of use. Used for aggregate metrics only. (revision: cb506f184793)