I run a small site that tells you whether a portable power station can run a given appliance, and for how long. The interesting part isn't the site. It's a constraint I designed around from day one: I don't have a lab. Every number in the database comes from a manufacturer datasheet, a regulatory filing, or a derivation I can show my work for — never a measurement I made myself, because I didn't make one.
That constraint turned out to force a specific kind of engineering, and it's the part worth writing up: a calculation engine whose primary job, more often than I expected, is to say nothing rather than print a plausible-looking number.
The fourth state
Most compatibility checkers are a traffic light: green, yellow, red. Mine has four states, and the fourth one is the one that actually matters — insufficient_data. It is explicitly not a color. A yellow "marginal" verdict and "I don't know" look identical on a spec-comparison table, and conflating them is how a comparison site quietly turns a data gap into a guess. So the type system enforces the split: the presentation layer maps can_run / marginal / cannot to a traffic-light color, and maps insufficient_data to null. There is no fourth color. If a page can't compute a verdict, it has to say so in words, not paint it a shade of yellow.
The mechanism behind this is a "publish gate" — a boolean the data layer sets per record, not per page. Runtime is the clearest example. The obvious formula is nameplate watt-hours divided by load watts, and it's wrong for almost every unit on the market, because nameplate capacity isn't retrievable energy. You lose headroom to depth-of-discharge and to inverter losses on the way out. Getting from nameplate to usable watt-hours requires two coefficients a lot of manufacturers just don't publish.
Concretely: of the 29 power-station entities in my database, 23 have a gate that blocks the runtime figure from rendering at all. Not "renders a rough estimate with a caveat" — blocks the print statement. For those 23, the page states plainly that the manufacturer hasn't published what's needed to compute usable capacity, instead of guessing. This is a mechanical gate checked at build time, not an editorial choice made per page — which matters, because I write far fewer pages than the database has entities, and I don't want a future page to accidentally slip a number past a check I only remembered to apply once.
The 6 that do get a runtime figure mostly clear the gate by derivation, not lookup — the manufacturer publishes a depth-of-discharge percentage and an inverter-efficiency floor in an FAQ, and I multiply them against the nameplate capacity myself, with the formula and both coefficients shown next to the result. That derived value gets a lower confidence tier than a number the manufacturer states directly, and the page labels it as such — a number I calculated from official coefficients isn't the same evidentiary weight as one the manufacturer typed out, even though both trace back to an official source.
Where 82% comes from, and what it costs to enforce
The core compatibility rule sounds trivial: if a load's power draw exceeds a station's continuous output, it can't run. In practice the binary version of that rule is wrong, because a station running at 99% of its continuous rating for hours behaves differently than one running at 40%, and neither manufacturers nor reviewers give you a number for where the difference starts mattering. The number I landed on, after cross-checking derating curves against inverter thermal behavior, is 82%: cross that as a percentage of continuous output and the verdict downgrades from "can run" to "marginal" before it hits the hard ceiling at 100%.
That's a single float in the engine's parameter table, and it would be a throwaway constant if it only touched the state above. It doesn't — it also decides which combined-load appliance sets get flagged marginal, and how a page describes headroom ("340 W of room before this tips into marginal" is computed off the 82% line, not the 100% one). Changing that one number would silently move every marginal verdict on the site, which is why it lives in one params file with its derivation documented, instead of being copy-pasted into whichever calculation needed a threshold that week.
The number that made this rule concrete for me is an RV rooftop air conditioner. It draws 1,690 W running — that's an ARI-standard figure straight off Airxcel/Coleman-Mach's spec sheet, nothing derived. Every wattage-only comparison table says any station rated above ~1,700 W handles it fine. But starting a compressor isn't a running-watts problem, it's a locked-rotor problem: Dometic's install manual publishes a 5.1× locked-rotor-to-running-current ratio for this compressor class, which puts the inrush at 8,619 W. (The engine actually checks two candidate figures here — a multiplier-derived one and an absolute nameplate one where the manufacturer gives both — and keeps whichever is larger, on the theory that the more conservative number is the one worth failing on.) The largest surge ceiling anywhere in my 29-entity database is 8,000 W. Nothing in the database starts that compressor. The wattage comparison says yes; the surge math says no, by 8%, on the single biggest inverter in the fleet.
That case also forced a second, less obvious rule: surge duration is not one thing. A switch-mode power supply's capacitive inrush lasts on the order of 50 milliseconds (three line cycles, per Intel's ATX12V spec) — real, but gone before most inverters' overcurrent protection would register it, so it's reported but never allowed to fail a verdict alone. A compressor's locked-rotor current lasts 100–300 milliseconds (Copeland's figure), which is squarely what a station's surge rating describes and what actually gets enforced. A diesel heater's glow plug draws hard for 60–125 seconds (Eberspächer's spec) — at that duration it isn't a surge at all in the sense a station's peak rating covers, so the engine reclassifies it and checks it against continuous output instead. Those three numbers span four orders of magnitude and get three different treatments, keyed off one duration field rather than one undifferentiated "surge" concept — missing that distinction was the biggest source of wrong verdicts I had to fix.
And the AC case has a genuinely useful escape hatch: a soft starter cuts that inrush by roughly 70% across the two vendor datasheets I could find (Micro-Air and SoftStartRV both publish reduction figures in that range, and the engine takes the more conservative of the two, floored at the running wattage so it can never claim a reduction below what the compressor draws once it's actually spinning). Apply it and the demand drops from 8,619 W to about 2,586 W — comfortably under every station's surge ceiling in the fleet. Same compressor, same station, opposite verdict, because a $50–100 part changed which physical quantity the engine was allowed to compare against what.
Not every gap gets a fallback, though. Three appliance classes in my library — box fans, gas furnace blowers, and microwave ovens — have no published inrush figure anywhere I could find, and I don't think that's a research gap so much as a structural fact about those categories: none of them declare locked-rotor current the way a compressor does, because none of them have a locked rotor in the relevant sense. Those combinations return insufficient_data, not a hopeful yellow. A spec-lookup table can't represent "I don't know," because a lookup table only has the rows you gave it. A calculation with an explicit fourth state can.
One model number, two different machines
The last piece worth writing up is smaller in scope but bit me early: the same station model number is not the same machine in different regions, and treating it as one entity was a real bug, not a hypothetical one.
Take a specific unit whose US and EU listings share a model name. Both variants publish an AC continuous rating of 2,600 W — identical, no story there. But the depth-of-discharge and inverter-efficiency figures the manufacturer publishes for usable capacity differ by region: 90% DoD and an 85% efficiency floor for the US unit versus 95% DoD and a 90% efficiency floor for the EU unit. Multiply those out against the same 2,073.6 Wh nominal capacity and the two "identical" units diverge by about 187 usable watt-hours — roughly 12% of the smaller figure — before either one has been plugged into anything. If the database treated "model X" as a single entity with one set of specs, I'd either have picked one region's numbers and been quietly wrong for the other, or averaged them and been wrong for both.
The fix was to stop treating "station" as the unit of identity and use "model × region" instead — 15 distinct models resolve to 29 database entities once every region variant is counted separately (one model currently ships EU-only, which is why it's not a clean 15×2). It's a small schema decision, but it's the difference between a comparison tool that's occasionally, invisibly wrong about a number a reader can't check themselves, and one that at least fails in the same place the manufacturer's own documentation splits.
What this bought me, and what it cost
None of this makes the calculators cleverer than a spreadsheet — the arithmetic is simple once you have the right inputs. What it buys is a specific kind of honesty: a wrong number and an absent number are different failure modes, and the engine is structurally prevented from turning the second into the first. The cost is that a real fraction of pages say "we don't have this," which reads as unfinished to some visitors and as rigor to others. I'd rather have that argument in the open than have someone find a fabricated-looking runtime estimate and stop trusting every other number on the page.
The calculators, if you want to run your own combination through them, are at https://wattpair.com/tools/ — no signup, and a result is shareable as a URL that reconstructs the whole calculation. The full threshold list and source citations for everything above (the 82% figure, the surge-duration bands, the efficiency-application rules) are written out at https://wattpair.com/methodology/.
Disclosure: WattPair is my own site, and it includes affiliate links — if you buy a power station through a link on it, I may receive a commission, at no extra cost to you. Nothing in the calculation above is affected by that: every verdict in this post is computed before any product or retailer is looked up, and the three motor-class results with no data (box fans, gas furnace blowers, microwave ovens) don't link to a product at all.
Top comments (0)