As we know, BXP1 & BXP3 upgrades exclude B, N, O, Q, S fares. It's possible to "
upfare" to an eligible fare class. So, how to search for eligible fares specifically on ITA? One option is to specify a V or G fare, which is often the lowest eligible fare. But, with the advent of Premium Economy (P fare), this is not always the case. So, the better solution is to exclude the ineligible fares. Took me some hunting around and trial & error to figure this out, so thought I would share here. Applying ~ NOT logic and & AND logic, the ITA code looks like this:
jfk:: aa /f ~bc = b & ~bc = n & ~bc = o & ~bc = q & ~bc = s
(Or you can place everything after the slash directly in the second advanced control box.)
If you want to string that together with other commands, such as maximum duration, you separate them with a semicolon:
jfk:: aa /maxdur 800 ; f ~bc = b & ~bc = n & ~bc = o & ~bc = q & ~bc = s
If people feel this is useful, I can add to the wikipost.