I kind of like the approach which consists in answering some honest questions. Indeed, from what I’ve seen most people with poorly calibrated trainers are just unaware their performance is incorrect. Therefore it may make sense just to ask a few basic questions in order to determine the user’s fitness like e.g. if you’re a casual or competitive cyclist, how many hours per year you’re training, etc. One idea to exploit that information may then be to correlate it in some way with e.g. Friel’s “Training bible” to get the cycling category equivalence (e.g. the suggested annual training hours table on page 124), which may further be correlated with Coggan’s “Training and racing with a Power Meter” w/kg table (on page 54) in order to define user-specific w/kg alerts (including the adequate adjustments for gender, age, BMI, etc.).
For example, if someone mentions he’s training about 200 hours per year (would typically fall into cat. 5) but one day sustains 5.5w/kg for 5 minutes (top cat. 2, bottom cat. 1) then he may get a Zwift alert asking about adequate trainer calibration. On the other hand, if someone indicates about 700 hours per year (cat. 2) and puts that same power for 5 minutes then the Zwift client wouldn’t raise any alert.
This approach doesn’t solve the issue of cheating or low amplitude miscalibrations, but at least it is an educational approach to all those who are not even aware their trainer is improperly calibrated.