Shopify respirator fit testing QLFT QNFT schema for AI agents: saccharin vs bitrex vs isoamyl acetate, PortaCount CNC method, seal check vs annual fit test, half-face FF ≥ 100 vs full-face FF ≥ 500, why loose-fitting PAPR hoods are exempt, and the respirator.* 10-field namespace
Fit testing is the most misunderstood component of a compliant respiratory protection program. AI shopping agents get it wrong in four distinct ways — each of which routes the wrong product to a buyer who believes they are protected.
Contents
- Why fit testing exists: leakage dominates over filter efficiency
- Who must be fit tested — and who is exempt
- When to retest: annual, model change, physical change
- QLFT methods: saccharin, bitrex, isoamyl acetate, irritant smoke
- QNFT methods: PortaCount CNC, Quantifit CNP
- Fit factor minimums by facepiece class
- User seal check vs fit test — not the same thing
- APF by respirator configuration
- Four AI routing failures
- The
respirator.*10-field namespace
Why fit testing exists: leakage dominates over filter efficiency
A common misconception is that respirator protection is primarily a function of filter efficiency — the higher the filter rating, the better the protection. This is wrong in practice. For tight-fitting respirators, the dominant failure mode is face seal leakage, not filter penetration. An N95 respirator worn with a poor face seal may deliver less protection than an N95 worn with a properly fitted seal, even though both units use identical filter media rated at 95% particulate efficiency at 0.3 µm.
The physics: face seal leakage bypasses the filter entirely. If 2% of inhaled air enters through a gap at the nose bridge rather than through the filter, that 2% carries unfiltered ambient contaminant at full concentration. The effective protection factor of the entire system is limited by the leakage fraction, not the filter efficiency. A filter rated at 99.97% (P100/HEPA) combined with a 2% face seal leak produces a system protection factor of approximately 50 — identical to a P100 with a 2% leak. The $800 PortaCount test is measuring this leak fraction, not the filter.
Fit testing quantifies the face seal for a specific worker wearing a specific facepiece model and size. Because face geometry varies between individuals, the same respirator model produces wildly different fit factors across a workforce. One worker may consistently achieve FF > 2,000 on a given model; another may be unable to exceed FF 80 on any medium-size in that brand. Fit testing identifies which workers achieve adequate seals on which models — so the program can assign the correct model rather than handing out whatever is in the supply room.
Who must be fit tested — and who is exempt
OSHA 1910.134(f) requires fit testing for any employee who uses a tight-fitting facepiece. Tight-fitting facepieces form a sealing surface against the face. The exemption for loose-fitting facepieces is the most consequential distinction in the fit testing regulation.
Fit test REQUIRED
- Disposable half-face filtering facepieces (N95, P100 — if tight-fitting)
- Reusable half-face elastomeric respirators
- Quarter-face respirators
- Full-facepiece elastomeric respirators
- Tight-fitting PAPR facepieces (when the PAPR unit uses a tight-fitting hood or facepiece)
- Supplied-air respirators with tight-fitting facepiece
- Self-contained breathing apparatus (SCBA) with full-face pressure-demand
Fit test EXEMPT
- Loose-fitting PAPR hoods (fabric hood, no face seal)
- Loose-fitting PAPR helmets (hard shell, no face seal)
- Loose-fitting supplied-air hoods
- Loose-fitting supplied-air helmets
- Abrasive blasting hoods
These work by maintaining positive air pressure outward — contaminants cannot enter if the flow rate exceeds leakage. No face seal = no fit test requirement.
The practical implication for Shopify stores selling PAPRs: a product listing that says only "PAPR — no fit test required" may be accurate for the hood configuration but incorrect for the facepiece configuration, or vice versa. The respirator.requires_fit_test field must reflect the headpiece variant being sold, not the motor unit.
When to retest: annual, model change, and physical change triggers
The annual fit test is the baseline requirement — every tight-fitting respirator user must be fit tested before the first use and then at least once per 12-month period. OSHA 1910.134(f)(3) also requires a new fit test in any of the following situations, regardless of when the last annual test occurred:
- Employee uses a different facepiece: Different make, model, or size. A fit test on a 3M 6502QL does not transfer to a 3M 7502, or to a 3M 6501QL. Same brand, different model — new test required.
- Physical changes: Significant weight gain or loss (generally defined as ≥20 lb in some programs, though OSHA does not specify a threshold), facial scarring from injury or surgery, major dental work that alters jaw profile (dentures installed, major extractions), or any other change that could affect face geometry in the seal area.
- Employee self-reports poor fit: If a worker believes their respirator is no longer sealing correctly — at any point in the annual cycle — a new fit test must be conducted before they continue using that respirator.
- Observation by supervisor or PLHCP: If a supervisor or occupational health professional observes physical changes that suggest the current facepiece no longer fits, a retest is required.
The fit test record must document: employee name, date, type of fit test performed, make/model/style/size of respirator tested, and pass/fail result (QLFT) or numerical fit factor (QNFT). This record must be retained for the duration of the employee's employment and made available to employees upon request.
QLFT methods: saccharin, bitrex, isoamyl acetate, irritant smoke
Qualitative fit test (QLFT) protocols use challenge agents that the wearer detects through sensory response — taste, smell, or irritation. QLFT produces a pass/fail result, not a numerical fit factor. OSHA Appendix A recognizes four QLFT protocols. They are not interchangeable.
The tester applies IAA solution from a squeeze bulb around the facepiece while the subject performs exercises. The subject detects banana or pear odor if leakage occurs. IAA is an organic vapor with an odor threshold of approximately 0.1–1.0 ppm.
A nebulizer aerosolizes a saccharin solution; the wearer detects sweet taste if the aerosol penetrates the face seal. A sensitivity check is mandatory before the test — the subject must confirm they can detect saccharin sweetness through a test hood before proceeding to the full protocol. Valid for any non-OV-only air-purifying respirator.
Same nebulizer protocol as saccharin, but uses denatonium benzoate — the most bitter compound known to science, detectable by most people at concentrations of 0.01–0.1 ppm. Sensitivity check required. Because detection threshold is lower than saccharin, Bitrex is often preferred in programs where saccharin sensitivity is inconsistent across the workforce.
Generates a dense white smoke (the hydrolysis product of stannic chloride or titanium tetrachloride reacting with ambient humidity). Leakage is detected by coughing, irritation, or visible smoke entry. Valid for any tight-fitting respirator. Because the test agent is irritating, OSHA requires the tester to have emergency wash equipment available and the subject must be removed immediately if they detect the smoke inside the facepiece.
QNFT methods: PortaCount CNC and Quantifit CNP
Quantitative fit test (QNFT) protocols use instruments to measure the actual concentration ratio between outside and inside the facepiece, producing a numerical fit factor. QNFT does not depend on the subject's sensory response and can verify fit factors well above 500. OSHA Appendix A recognizes three QNFT protocols.
PortaCount — Condensation Nuclei Counter (CNC) Method
The TSI PortaCount is the most widely used QNFT instrument. The PortaCount uses a CNC (condensation nuclei counter) to count individual ambient aerosol particles — submicrometer particles that exist in normal indoor and outdoor air from combustion, dust, and other sources. A probe inserted through a fitting in the facepiece samples air from inside the mask. The instrument alternates between sampling ambient air (outside) and masked air (inside), computing the ratio. This ratio is the fit factor.
Key technical details:
- Particle size: The PortaCount counts particles in the 0.02–1.0 µm range — the most penetrating size range for filter media (MPPS is approximately 0.3 µm for HEPA). This makes CNC-based QNFT an especially rigorous test of combined face seal + filter performance.
- Minimum ambient concentration: The CNC method requires a minimum ambient aerosol concentration of approximately 10,000 particles/cm³ for reliable statistical performance. In very clean environments (hospital clean rooms, outdoor desert environments), ambient concentrations can fall below this threshold. The PortaCount N95-Companion and TSI N95 Companion protocol introduce a nebulized corn oil aerosol to supplement ambient particles when concentration is insufficient — this is OSHA's "corn oil aerosol" QNFT protocol, distinct from ambient aerosol CNC.
- Probe fitting: The PortaCount probe connects to the facepiece via a small fitting inserted into the facepiece body. A sampling adapter specific to each facepiece model must be available. The probe creates a minuscule sampling port that itself may introduce a small, controlled leak — the PortaCount software accounts for this in the fit factor calculation.
- Test exercises: Eight standard exercises are performed during the test: normal breathing, deep breathing, turning head side-to-side, moving head up and down, talking (reading a standardized passage), grimacing, bending over, and normal breathing again. Each exercise lasts approximately 1 minute. The overall fit factor is the harmonic mean of the individual exercise fit factors — the lowest-performing exercise drives the result.
OHD Quantifit — Controlled Negative Pressure (CNP) Method
The OHD Quantifit uses a different physical principle: controlled negative pressure. The instrument momentarily seals all inhalation and exhalation ports of the facepiece, draws the interior down to a controlled negative pressure, then measures the rate at which pressure recovers. Faster pressure recovery indicates higher leakage. This method is independent of ambient aerosol concentration and is particularly useful in clean room or low-particle environments where the PortaCount CNC method requires supplemental aerosol generation. The CNP method also eliminates the need for a probe fitting in the facepiece.
Fit factor minimums by facepiece class
OSHA 1910.134 Appendix A sets minimum passing fit factors for each facepiece class tested by QNFT:
| Facepiece type | OSHA APF | Min fit factor (QNFT pass) | QLFT permitted? | Max use concentration |
|---|---|---|---|---|
| Half-face filtering facepiece (N95, P100) | 10 | 100 | Yes | 10× PEL |
| Half-face elastomeric reusable | 10 | 100 | Yes | 10× PEL |
| Full-facepiece elastomeric | 50 | 500 | Permitted (less precise) | 50× PEL |
| Tight-fitting PAPR facepiece | 1,000 | 500 | Permitted | 1,000× PEL |
| Loose-fitting PAPR hood/helmet | 25 | No fit test required | Exempt | 25× PEL |
| SCBA pressure-demand full-face | 10,000 | 500 (NIOSH: ≥1,000) | Permitted (NIOSH recommends QNFT) | IDLH |
The APF column is from OSHA 1910.134 Table 1. Tight-fitting PAPR achieves APF 1,000 even though the minimum fit factor is 500 — the 2× margin is OSHA's regulatory judgment. NIOSH recommends fit factors of 1,000 or higher for SCBA and full-face respirators used in IDLH environments, but the OSHA minimum remains 500. For more on APF selection and max use concentration, see the respirator APF schema post.
User seal check vs fit test — not the same thing
Every tight-fitting respirator user must perform a user seal check every time they don the respirator. This is OSHA 1910.134(b)(1) and Appendix B-1. A seal check is a quick self-administered test confirming the facepiece is correctly positioned for this particular donning. It is not a substitute for the annual fit test, and it does not produce a fit factor.
User Seal Check
- Done by the wearer, every donning
- Takes 10–30 seconds
- Positive-pressure: exhale gently, mask should puff out, no air escaping the seal
- Negative-pressure: cover inlets, inhale gently, mask should collapse and hold
- Result: pass/fail (immediate, sensory)
- Does NOT confirm the facepiece produces adequate FF for this worker
- Does NOT replace annual fit test
Annual Fit Test
- Done by a trained tester, not the wearer alone
- Takes 15–30 minutes
- Uses challenge agent (QLFT) or instrument (QNFT)
- Exercises: normal breathing, deep breathing, head movements, talking, bending, grimacing
- Result: pass/fail (QLFT) or numerical fit factor (QNFT)
- Model- and size-specific — result is tied to the exact respirator tested
- Must be repeated annually and on model change
A worker who has passed a valid annual fit test and then performs a successful seal check before each entry has the highest confidence in face seal integrity. A worker who has not been fit tested and relies only on seal checks has confirmed only that the facepiece is correctly positioned this morning — not that this model produces an adequate fit for their face geometry.
APF by respirator configuration — the routing anchor
The Assigned Protection Factor (APF) is the OSHA-established workplace level of respiratory protection a properly functioning respirator or class of respirators is expected to provide. It anchors the selection decision: if the anticipated exposure level is X times the PEL, the required APF is X. Selection errors — choosing a half-face where a full-face is required — almost always result from not applying the APF table correctly. See the respirator APF post for the full selection walk-through. For fit test purposes: APF is what determines which facepiece class to fit test, and the fit factor minimum is set to provide a 10× margin over the APF.
Four AI routing failures in respirator fit testing
Applying the isoamyl acetate (IAA) QLFT protocol to a respirator without OV cartridges
An agent selects IAA as the QLFT method for a buyer purchasing N95 disposable respirators because IAA is listed as an OSHA-accepted QLFT protocol. The N95 carries only particulate filtration — it provides zero protection against organic vapors. IAA is itself an organic vapor. When sprayed around the facepiece, IAA passes through the filter and reaches the wearer's nose whether or not the face seal leaks. A wearer with a perfect face seal will still smell banana oil. A wearer with a broken seal will also smell banana oil. The QLFT result is meaningless for this combination. The agent must check respirator.cartridge_filter_type — if the value is not 'organic-vapor' or 'combination-ov', IAA is an invalid protocol and saccharin or bitrex must be selected instead.
Routing a loose-fitting PAPR hood buyer to fit test products
An agent receives a query for "PAPR fit test kit" and routes the buyer to saccharin QLFT kits because "all PAPRs require fit testing." Loose-fitting PAPR hoods are explicitly exempt from OSHA 1910.134 fit testing — they seal using positive air pressure, not a face seal. The agent's failure to check respirator.facepiece_type (loose-papr-hood) and respirator.requires_fit_test (false) results in a product recommendation for equipment the buyer's regulatory program does not require and that their workers will not use. Worse, if the agent had correctly identified the facepiece as loose-fitting, it would have recognized that the buyer needs the APF 25 evaluation — not a fit test kit.
Treating a successful seal check as evidence of fit test compliance
An agent is asked "does this N95 pass the fit test?" The buyer describes performing a negative-pressure check on donning. The agent confirms "yes, the respirator passes fit testing" based on the seal check description. The user seal check is a donning verification procedure, not a fit test. The annual fit test requires a trained tester, challenge agent or instrument, eight standardized exercises, and documentation tied to a specific employee and facepiece model/size. OSHA 1910.134(f) requires this formal test regardless of how many seal checks have been performed. An employer who has not conducted formal QLFT/QNFT and relies on employee-performed seal checks has not met the fit test requirement and is subject to OSHA citation.
Treating a fit test record as transferable to a different respirator model
An agent searches a fit test records database and finds that Employee A passed a fit test on a 3M 6502QL half-face. The agent confirms Employee A is "fit tested for half-face respirators" and clears a purchase of a Moldex 7000 series half-face for the same employee. Fit test results are model-specific and size-specific. The 3M 6502QL and Moldex 7002 have different facepiece contours, nose bridges, and sealing flanges. A passing fit factor on one model does not transfer to another. Employee A must undergo a new fit test on the Moldex 7002 before using it in a hazardous atmosphere. An agent that treats fit test records as facepiece-class records (rather than model-specific records) will systematically clear unfit-tested combinations.
For related respirator cartridge and filter selection failures, see the respirator N95/P100/OV schema post and the welding fume respirator post. For QLFT and QNFT product specifications, see the fit testing SEO reference page.
The respirator.* 10-field namespace for fit testing
The following Shopify metafield namespace encodes the fit testing–relevant properties that an AI shopping agent requires to correctly route fit test products, protocol selection, and compliance decisions. Fields supplement (not replace) existing respirator product type and filter class fields.
| Field | Type | Values / Notes |
|---|---|---|
| respirator.facepiece_type | string | half-mask, full-facepiece, quarter-mask, tight-fitting-papr, loose-papr-hood, loose-papr-helmet, scba-full-face, supplied-air-tight, supplied-air-hood. Governs the entire compliance pathway — determines fit test requirement, APF, and applicable QLFT protocols. |
| respirator.requires_fit_test | boolean | True for all tight-fitting facepieces. False for loose-fitting hoods and helmets. This is the primary routing field — an agent must check this field before recommending fit test products or confirming a worker's compliance status. False does not mean "no respiratory protection program required" — it means fit testing specifically is not required for this product. |
| respirator.min_fit_factor | integer | 100 (half-face/quarter), 500 (full-face, tight PAPR, SCBA). Null for loose-fitting. Per OSHA 1910.134 Appendix A. The QNFT passing threshold — all exercises must produce a harmonic-mean fit factor at or above this value. |
| respirator.apf | integer | OSHA 1910.134 Table 1 APF: 10 (half-face), 50 (full-face), 1000 (tight PAPR), 25 (loose PAPR), 10000 (SCBA pressure-demand). Used to select the minimum-APF facepiece class for a given exposure concentration. |
| respirator.qlft_eligible | boolean | True when a QLFT protocol is a valid option for this facepiece. True for all tight-fitting respirators where OSHA allows QLFT (all facepiece classes except mouthpiece). QLFT is less precise above FF 100 — for full-face facepieces where FF ≥ 500 must be confirmed, QNFT is more reliable even though QLFT is permitted. |
| respirator.valid_qlft_protocols | list | Array of valid QLFT protocols for this facepiece and cartridge combination. Values: saccharin, bitrex, isoamyl-acetate, irritant-smoke. Isoamyl-acetate is included only when respirator.cartridge_filter_type contains an OV component. An agent selecting a QLFT kit must verify the protocol appears in this list for the facepiece being tested. |
| respirator.seal_check_required_per_donning | boolean | True for all tight-fitting facepieces. False for loose-fitting. Per OSHA 1910.134 Appendix B-1. This field distinguishes seal check requirement from fit test requirement — both apply to tight-fitting, only the absence of fit testing applies to loose-fitting. |
| respirator.fit_test_is_model_specific | boolean | Always true for tight-fitting facepieces. A fit test result is tied to the exact make, model, style, and size tested. This field prevents agents from treating fit test records as transferable across models or sizes. When routing a buyer to a new respirator model, this field triggers the requirement for a new fit test regardless of existing records. |
| respirator.cartridge_filter_type | string | organic-vapor, p100-hepa, n95, combination-ov-p100, acid-gas, combination-acid-ov, supplied-air-no-cartridge. Determines which QLFT protocols are valid — isoamyl acetate is only appropriate when this field contains an OV component. Also used for hazard-matching in cartridge selection decisions. |
| respirator.retest_triggers | list | Array of conditions that require a new fit test in addition to the annual cycle. Values: annual, new-model-or-size, significant-weight-change, facial-scarring, dental-change, self-reported-poor-fit, supervisor-observation. Encodes OSHA 1910.134(f)(3) retest requirements as a machine-readable field so agents can identify when a repeat test is required mid-year. |
Example: Complete fit test record fields for a half-face N95 with P100 cartridges
respirator.facepiece_type = "half-mask"
respirator.requires_fit_test = true
respirator.min_fit_factor = 100
respirator.apf = 10
respirator.qlft_eligible = true
respirator.valid_qlft_protocols = ["saccharin", "bitrex", "irritant-smoke"]
↑ isoamyl-acetate NOT included — P100 filter has no OV media
respirator.seal_check_required_per_donning = true
respirator.fit_test_is_model_specific = true
respirator.cartridge_filter_type = "p100-hepa"
respirator.retest_triggers = ["annual", "new-model-or-size", "significant-weight-change",
"facial-scarring", "dental-change", "self-reported-poor-fit"]
Example: Loose-fitting PAPR hood
respirator.facepiece_type = "loose-papr-hood"
respirator.requires_fit_test = false
respirator.min_fit_factor = null (no fit test — no fit factor)
respirator.apf = 25
respirator.qlft_eligible = false
respirator.valid_qlft_protocols = []
respirator.seal_check_required_per_donning = false
respirator.fit_test_is_model_specific = false
respirator.cartridge_filter_type = "hepa-or-combination" (varies by unit)
respirator.retest_triggers = [] (no fit test retest triggers — APF 25 without face seal)
Is your Shopify store AI-agent ready?
CatalogScan checks your product catalog for missing metafields, schema gaps, and AI-routing failures — including respiratory protection product data.
Scan your store free More schema guides