SORTING RULES - post-catalyst fuel trim (P2096 / P2097) and the faults around it, as written before any complaint was sorted PulsCar analysis of NHTSA public data, October 2026. License: CC BY 4.0 Fingerprint of the rules below (date and checksum of the unchanged rules file): 2026-10-21T14:02:17Z 041522ff5a181b3e4f36ea16246a471972c895cba303b61d1245e901625877c6 codebook.md Fingerprint of the addendum for the second batch: 2026-10-21T14:27:30Z 40365d105acbf4e94ce5838c099afeb2046e9bb324fe34722366ec05cd781693 codebook_addendum.md # Sorting rules - post-catalyst fuel trim complaints (P2096 study; P2097 sorted with it, P2098 / P2099 sister codes) Written before any complaint in the set was sorted. ## Pool (how the complaints were found) NHTSA complaints received 2015-01-01 to 2026-10-04 (782,908 narratives; 2026-10-04 is the latest received date in the flat files). Only a few dozen owners print the code itself, so the pool also takes the wording owners use for the same fault. A complaint is in the pool if its narrative matches any of the following case-insensitive text searches (R2, R3 and R4 also need one of the context words CTX somewhere in the same narrative; R4 needs an oxygen-sensor word AND a catalytic-converter word): 1. R1 - the code P2096 or P2097 (bank 1) by any spelling (letter O for zero, a space, hyphen or period after the P, suffix 00), or a bare number after a code word: `(? S; an oxygen sensor with no position, or the front one -> Z. R3 several parts replaced or named together: most specific in the order W, X, F, S, Z, C. Parts replaced in separate visits for separate codes: the part replaced for the oxygen-sensor/fuel-trim fault decides; if never fixed and one part was named last by the shop, that part. R4 owner's own guess (no shop, dealer or replacement) -> U; a catalytic-converter-only complaint (P0420) where the oxygen sensor is only the owner's guess -> N. R5 an oxygen sensor replaced as part of a big repair for something unrelated (turbo, electrical, transmission) with no stated sensor/fuel-trim fault -> N. R6 a dealer's SUGGESTION to clear codes is not a clearing: K needs an actual inspection with no fault found or an actual clearing; otherwise U. R7 cause stated by the maker/dealer outside the groups (oil use, fuel dilution, engine overhaul, a later technician diagnosis) -> O; bad fuel quality -> F. R8 flags: returned = the same light/code/symptom came back AFTER a repair or reset; a light that went away by itself and came back years later is not returned. R9 motorcycles and heavy trucks are outside the study -> N. R10 flags: recall = a recall/TSB/campaign/warranty extension is tied to this vehicle's event (performed, offered, missing, asked about); an owner's belief that "it is a known problem" is not. stall = stalled, died, lost power; "hesitates", "close to stalling", sputtering, misfire jerking are not. R11 an owner-written advocacy text that lists codes in general (not this vehicle's events) -> N or U per the facts it states; an owner finding stated as theory ("I think injectors") is U (R4). R12 the air-fuel-ratio-imbalance codes (P219A-P219F, P2195-P2198, P2A00) by themselves, with no statement of a fuel-trim fault, a lean/rich diagnosis, an oxygen-sensor finding or a fuel-trim code, are injector / valve-train events outside this page -> N. Where both sortings agreed on the category, the consistency check applied R12 to every complaint whose only match was an air-fuel-imbalance code, and moved 66 of them to N; no other agreed row was changed. ## Pool history First search: 493 complaints, sorted twice. Second search (completeness check of the whole file): 943 candidates outside the first set; 337 added under the unchanged rules (see the addendum) and sorted twice; 606 not added, for the reasons in the addendum. Total sorted: 830. Final: 703 relevant, 127 not relevant (N).