# Outdoor Water & Hygiene: research notes

Date: 2026-10-25. Scope: gear for treating water and for washing or disposing of waste when there is no plumbing — backpacking, hiking, car camping, and international travel to places with unsafe tap water. Covers: water filters, water purifiers (chemical, UV, electroadsorptive, fine-membrane), chemical treatment drops/tablets, UV pens, boiling as a comparison point; and field hygiene: biodegradable soap/body wash, hand sanitizer, portable showers, trowels, and human-waste pack-out bags (WAG bags). In the Zamana taxonomy this sits at `supplies > active > outdoor_water` ("Outdoor Water & Hygiene", no children). Sibling leaves in the same sub-vertical (`supplies/active/*`, read from `catalog.json`) that this register does **not** swallow: `pool-accessories` (home pool/spa/sauna chemicals and cleaning — different buyer, different standards, e.g. CDC/APSP pool chemistry, not LNT), `camping-tools` (stoves, multitools, general camp gear — a camp sink or wash basin with no treatment or hygiene function belongs there, not here), `flotation`, `watercrafts`, `diving`, `wetsuits`, `watersport-boards` (recreational water sports gear, unrelated to drinking-water safety), `camp-furniture`, `poles`, `tents-shelters`, `sleeping-bags` (unrelated gear classes). Plain water bottles and hydration reservoirs with no filter or treatment function are generic drinkware and out of scope; a bottle only enters this leaf when its job is treating the water inside it (e.g. a bottle filter or UV bottle).

Quote labels: **verbatim** = the sentence in quotation marks is in text I read myself, either via `curl` + HTML-stripping (and for the one source I only reached through the Wayback Machine, the archived snapshot's own HTML, read the same way) or a fetch tool returning it inside quotation marks and confirmed against the raw page. **fetched excerpt** = a fetch tool summarised or lightly reworded the page and I did not independently re-read the raw HTML for that exact sentence. **search excerpt** = from a search-engine summary with no page read at all. WebSearch reported its session budget was already used (200 of 200) on the first query of this run, before any query for this category returned results, so every source below was reached by direct URL (brand sitemaps, Wayback Machine lookups, or guessed/known URLs), never by a search query, and the "search excerpt" label does not apply to anything in this file except where noted as unreachable.

## Seed

Ran `seed.py --category outdoor-water` once as instructed. Due to a tool-batching mistake on my part (I queued the seed call alongside two unrelated file reads in a parallel batch, then could not tell from the batched output that it had already run, and called it a second time), the script actually executed twice. The two outputs:

- Run 1 (used as the Seed below): example = kitchen-knives `steel_hardness` ("a numeric spec that only makes sense as one side of a trade-off, and a visual grammar borrowed from the hobbyist community that puts the trade-off on one axis"); persona = "A competitive endurance athlete, who thinks in cost per unit of the active thing and what is a waste of weight."
- Run 2 (discarded, not used for anything below): example = kitchen-knives again; persona = "A rock climber, who thinks in failure modes and in what certification actually tested." I am reporting this script behavior as requested rather than silently using whichever run was more convenient.

Answers, written before any further research, then checked against the data gathered afterward:

1. **The outdoor-water equivalent of steel hardness is filter pore size.** It is on every brand spec page (not every retail listing), it is the number that drives the bacteria/protozoa removal claim, and it only makes sense as one side of a trade-off: a finer pore removes more but clogs faster and flows slower, a coarser pore flows faster when fresh but misses more, and past a point (roughly 0.3 microns and up) it misses viruses entirely regardless of how the marketing reads. Survived the data check: every filter/purifier spec page I read (Sawyer, Katadyn BeFree, Katadyn Pocket, MSR Guardian) states a micron figure, and CDC and Wikipedia both independently describe the same trade-off. Kept as `filter_pore_micron` with its own trade-off entry and a place in the `purifier_class` split's rationale.
2. **The endurance athlete's "cost per unit of the active thing, and what is a waste of weight" lens is the filter-lifetime-versus-price question.** Backpackers already think this way about filters: a light, cheap squeeze filter rated for 200 to 1,000 L can cost more per liter over a season than a heavier ceramic or pump purifier rated for 10,000 to 50,000 L, and carrying the wrong one is itself a waste of pack weight (a group gravity bag for a solo hiker, or a 900 g ceramic filter for a weekend trip). Survived as the `filter_lifetime_l` facet, the `cost_per_liter_treated` derived metric, and the `form_factor` trade-offs (gravity bag weight vs squeeze filter capacity).

Nothing from the seed step was dropped outright; both lines of thinking held up once I had real spec pages in hand.

## Sources and what each supports

### Regulators and standards bodies

**CDC, A Guide to Drinking Water Treatment and Sanitation for Backcountry and Travel Use**
https://www.cdc.gov/healthywater/drinking/travel/backcountry_water_treatment.html
The live URL returned HTTP 403 (Akamai bot block) on every direct attempt. Read instead via the Wayback Machine snapshot dated 2024-09-13 (`http://web.archive.org/web/20240913050245/https://www.cdc.gov/healthywater/drinking/travel/backcountry_water_treatment.html`), downloaded with `curl` and stripped of HTML tags myself — **verbatim** below.
- "Methods that may remove some or all of Cryptosporidium from drinking water are: Boiling (Rolling boil for 1 minute) has a very high effectiveness in killing Cryptosporidium; Filtration has a high effectiveness in removing Cryptosporidium when using an absolute less than or equal to 1 micron filter (NSF Standard 53 or 58 rated "cyst reduction / removal" filter); Disinfection with iodine or chlorine is not effective in killing Cryptosporidium; Disinfection with chlorine dioxide has a low to moderate effectiveness in killing Cryptosporidium."
- "Methods that may remove some or all of Giardia from drinking water are: ... Disinfection with iodine or chlorine has a low to moderate effectiveness in killing Giardia; Disinfection with chlorine dioxide has a high effectiveness in killing Giardia."
- "Methods that may remove some or all of bacteria from drinking water are: Boiling (Rolling boil for 1 minute) has a very high effectiveness in killing bacteria; Filtration has a moderate effectiveness in removing bacteria when using an absolute less than or equal to 0.3 micron filter; Disinfection with iodine or chlorine has a high effectiveness in killing bacteria."
- "Methods that may remove some or all of viruses from drinking water are: Boiling (Rolling boil for 1 minute minimum) has a very high effectiveness in killing viruses; Filtration is not effective in removing viruses; Disinfection with iodine or chlorine has a high effectiveness in killing viruses."
- "Water should be brought to a rolling boil for 1 minute. At altitudes greater than 6,500 feet (approximately 2,000 meters), you should boil water for 3 minutes."
- "Except for boiling, few of the water treatment methods are 100% effective in removing all pathogens."
- Supports: the entire pathogen/method effectiveness grid behind `treatment_method`, the boiling time in `mechanism.plain`, the iodine/chlorine-vs-Cryptosporidium judgement, and the "filtration is not effective against viruses" line in the first judgement. Confidence high — this is CDC's own purpose-built page for exactly this buying decision.

**CDC, Show Me the Science: When & How to Use Hand Sanitizer**
https://www.cdc.gov/handwashing/show-me-the-science-hand-sanitizer.html
Live URL also 403. Read via Wayback (`http://web.archive.org/web/20240515055408/...`), `curl` + stripped — **verbatim**.
- "if soap and water are not available, using a hand sanitizer with at least 60% alcohol can help you avoid getting sick."
- "Many studies have found that sanitizers with an alcohol concentration between 60–95% are more effective at killing germs than those with a lower alcohol concentration."
- "Although alcohol-based hand sanitizers can inactivate many types of microbes very effectively when used correctly, ... [some pathogens are harder to kill,] like Cryptosporidium, norovirus, and Clostridium difficile."
- Supports: `hand_sanitizer_alcohol_pct`'s 60–95% range and the fourth judgement. Confidence high.

**Leave No Trace, Principle 3: Dispose of Waste Properly**
https://www.lnt.org/why/7-principles/dispose-of-waste-properly/
Live URL 403 (Cloudflare challenge). Read via Wayback snapshot dated 2026-10-11, `curl` + stripped — **verbatim**.
- "Deposit solid human waste in catholes dug 6-8 inches deep at least 200 feet from water, camp, and trails. Cover and disguise the cathole when finished."
- "Locate cat holes at least 200 feet (about 70 to 80 adult paces) from water, trails, and camp... Dig a hole 6-8 inches deep and 4-6 inches in diameter."
- "This waste should be packed out if a cathole cannot be dug."
- "To wash yourself or your dishes, carry water 200 feet away from streams or lakes and use small amounts of biodegradable soap. Scatter strained dishwater."
- "Hand sanitizers that don't require rinsing allow you to wash your hands without worrying about wastewater disposal."
- Supports: `human_waste_method`'s cathole depth/distance and WAG-bag alternative, `soap_biodegradable`'s 200-foot rule, and the third judgement. Confidence high — this is the trade body for backcountry ethics, and the page is its own canonical statement of Principle 3.

### Primers

**REI Co-op, Choosing a Backpacking Water Filter** (titled "Choosing a Backpacking Water Filter | REI Expert Advice" on the page itself; the article's own URL slug is `water-treatment-backcountry.html`)
https://www.rei.com/learn/expert-advice/water-treatment-backcountry.html
Live URL 403. Read via Wayback snapshot dated 2026-05-19, `curl` + stripped — **verbatim**.
- "Water filters work by physically straining out protozoan cysts... and bacteria... Water purifiers also combat viruses, which are too tiny for most filters to effectively catch."
- Quick-reference table: eight methods (pump, gravity, UV, bottle, squeeze, straw, chemical, boiling) each marked for all-around performance, large volume, low maintenance, ease of use, low weight, low cost, speed.
- Pump: "Pros: ... Water can be pulled from seeps and shallow water sources... Cons: Pumping can be a chore... Weight and bulk are greater than other treatment methods."
- Gravity: "Pros: Gravity does the work for you. You can easily process large quantities of water for a big group... Cons: It can be hard to find a place to hang reservoirs. Treatment process is slower than pumping."
- UV: "Pros: ... No element cleaning and replacement are ever needed. Cons: Requires batteries. Silty or cloudy water impairs effectiveness, requiring you to prefilter."
- Squeeze: "On average, lighter, smaller and cost less than pump and gravity filters... Water quantity is limited by reservoir, flask or bottle size."
- Straw: "Generally only a 1-person treatment option."
- Chemical: "Wait time before drinking is 30 minutes to 4 hours, longer for icy cold water. Iodine products aren't effective against Cryptosporidium."
- Boiling: "Bring water to a rolling boil for 1 minute; if you're above 6,500 feet, boil it for 3 minutes."
- "Keep camp, toilet and dishwashing areas at least 200 feet from any water source. For details on all Leave No Trace principles see LNT.org."
- Supports: the `purifier_class` definition and judgement 1, the entire `form_factor` facet and its "Method comparison matrix" visual grammar, the `treatment_wait_time_min` chemical range, the boiling time (second source), the 200-foot rule (second source for LNT), and the `prefilter_needed` facet. Confidence high — this is REI's own in-house buying guide, written and reviewed by gear specialists, and every figure above was read from the raw stripped text, not a summary.

**Wikipedia, Portable water purification**
https://en.wikipedia.org/wiki/Portable_water_purification
Fetched directly (200 OK), `curl` + stripped — **verbatim**.
- "Most filters of this kind remove most bacteria and protozoa, such as Cryptosporidium and Giardia lamblia, but not viruses except for the very largest of 0.3 μm and larger diameters."
- "It is worth noting that not all bacteria are removed by 0.2 μm pump filters."
- "At altitudes greater than 6,562 feet (2,000 meters) boiling should continue for 3 minutes" (and a rolling boil of 1 minute otherwise) — second source for CDC's boiling rule.
- "Neither chlorine (e.g., bleach) nor iodine alone is considered completely effective against Cryptosporidium, although they are partially effective against Giardia."
- "[Viruses] requir[e] a 10-30 times greater dose of UV light than Giardia or Cryptosporidium," the limiting factor for UV treatment.
- Supports: judgement 1 (second source), the 0.3-micron virus exception used in `filter_pore_micron`'s and `mechanism.plain`'s wording, and the iodine/Cryptosporidium point (second source for CDC and REI). Confidence high — Wikipedia's own citations here trace to CDC, WHO and EPA primary sources, and I read the article's text directly rather than trusting the summary.

**Wikipedia, Hand sanitizer**
https://en.wikipedia.org/wiki/Hand_sanitizer
Fetched directly (200 OK), `curl` + stripped — **verbatim**.
- "Alcohol-based hand sanitizers, which contain at least 60% alcohol..., are recommended by the United States Centers for Disease Control and Prevention (CDC)."
- "Products with 60% to 95% alcohol by volume are effective antiseptics... most products contain between 60% and 80% alcohol."
- Supports: second source for the 60–95% range and the "most products" typical band in `hand_sanitizer_alcohol_pct`. Confidence high.

### Spec sheets (brand pages, read for what fields they state and in what order)

All of the following were reached by first pulling the brand's Shopify `sitemap.xml` (several redirect from msrgear.com/sawyer-style vanity domains to the real storefront, e.g. MSR's `cascadedesigns.com` and Sawyer's own domain), because the product's old or guessed URL 404'd; the sitemap gave the live product URL, which I then fetched directly (200 OK in every case below) and read as stripped raw text — **verbatim** for every quoted figure.

**Sawyer Products, Squeeze Water Filtration System**
https://www.sawyer.com/products/squeeze-water-filtration-system/
- "Filter Material: 0.1 Micron Absolute Hollow Fiber Membrane."
- "Rated to 0.1 micron absolute filtration, the Squeeze Filter removes 99.99999% of bacteria such as salmonella, cholera, leptospirosis, and e. Coli, and removes 99.9999% of protozoa such as giardia and cryptosporidium (independent testing laboratory Hydration, LLC.; microbiological report S05-03)."
- "Longevity: Backed by manufacturer's lifetime limited warranty." No liter figure anywhere on the page, and no virus claim anywhere on the page.
- Supports: `filter_pore_micron`'s 0.1 µm value, `treatment_method` = hollow fiber, and the "no virus claim" half of judgement 1. Also supports `filter_lifetime_l`'s backfill note (Sawyer is the one brand in this set that states no liter number at all).

**Katadyn, BeFree Filter AC 1.0L**
https://katadyn.com/products/8021403-katadyn-befree-filter-ac-1-0l-black
- "Filter material: Hollowfibre, Activated Carbon." "Technology: Microfilter." "Effective against: Cysts, Bacteria, Protozoas, Sediments, Bad taste."
- "Up to 2 L/min output." "Flow rate (L/min): 2."
- "Hollow Fiber Filter: Up to 1000 liters depending on water quality, Activated Carbon: Up to 200 liters depending on water quality."
- No micron figure appears on this specific page (I did not claim one for BeFree in the register) and no virus claim.
- Supports: `treatment_method` = hollow fiber + activated carbon, `flow_rate_lpm` = 2, `filter_lifetime_l`'s two-stage figure, and the "no virus claim" half of judgement 1.

**Katadyn, Pocket Water Filter**
https://katadyn.com/products/2010000-katadyn-pocket-water-filter
- "The microorganisms cannot pass through the pores of the filter ceramic (0.2 microns) because of their size." "silver-impregnated ceramic filter." "Unlike disposable filters, the ceramic can be cleaned several times — even in the field."
- "Quickness counts too with an output of 1 litre/minute." "The capacity is up to 50'000 litres, depending on water quality."
- Supports: `filter_pore_micron` = 0.2 µm (second data point alongside MSR's 0.02 and the CDC/Wikipedia 0.2–0.3 µm band), `treatment_method` = ceramic, `flow_rate_lpm` = 1, `filter_lifetime_l`'s 50,000 L figure, and the "Capacity against weight" visual grammar's heavy/long-life corner.

**Katadyn, Micropur MP1 Water Purifier Tablets**
https://katadyn.com/products/8014996-katadyn-micropur-mp1-water-purifier-tablets-package-of-20
- "The exposure time is 4 hours. Effective against microorganisms, bacteria, protozoa, cysts and viruses." "One tablet treats 1 litre of clear water." Shelf life "5 [years] from date of manufacture."
- Supports: `treatment_method` = chemical, `treatment_wait_time_min`'s 4-hour (240 min) ceiling, and the `cost_per_liter_treated` metric's one-tablet-per-liter rule.

**Katadyn, SteriPEN Ultra UV Water Purifier**
https://katadyn.com/products/ult-mp-efg-katadyn-steripen-ultra-uv-water-purifier
- "Treatment size: ½ or 1 liter. Treatment time: 48 or 90 seconds." "Use only on clear water, as cloudy, sediment-laden water hinders effectiveness." "Broad-spectrum purification. Inactivates bacteria, protozoa and viruses." Battery: "Internal USB Rechargeable Lithium-Ion," "Product Life: 8,000 activations," "Treatment per battery charge: 50."
- Supports: `treatment_method` = UV, `treatment_wait_time_min`'s 48–90 second figure, `prefilter_needed` = true for UV, and `uv_treatments_per_charge`'s 50-per-charge minimum.

**Katadyn, SteriPEN Classic 3 UV Water Purifier** (fetched 2026-10-26, as part of the required-fixes pass below)
https://katadyn.com/products/sp-mp-efg-katadyn-steripen-classic-3-uv-water-purifier
- Fetched live with `curl`, read myself — **verbatim**: "An 8,000 treatment lamp delivers a lifetime of purification." "Treatment size: ½ or 1 liter." "Treatment time: 48 or 90 seconds." "Lamp Life: 8'000 activations." "Battery: 4 AA Batteries Lithium or Rechargeable NiMH." Spec table, "Treatment per battery charge": "NiMH performance varies by mAh rating: 2300 provides about 100 liters. Lithium are the most economical choice."
- Supports: the same 8,000-activation lamp life as the SteriPEN Ultra (so that figure is a constant across this product line, not a range), and `uv_treatments_per_charge`'s ~100-per-charge maximum on AA/NiMH power, giving a genuine two-product range (50 to 100) against the Ultra's internal-battery figure above.

**MSR (Cascade Designs), Guardian Purifier**
https://cascadedesigns.com/products/guardian-purifier
- "Filter Pore Size (Microns): 0.02." "Meets NSF protocol P248, testing standard used by U.S. military, for removal of viruses, bacteria, protozoa, and sediment from 'worst-case' water conditions." "Flow (L/Min): 2.5 liters per min." "Cartridge Life: 10,000+ liters." "Self-Cleaning" pump, "no backflushing or filter-scrubbing ever required."
- Supports: `filter_pore_micron` = 0.02 µm (the finest in this set), `purifier_certification` = NSF P248, `flow_rate_lpm` = 2.5, `filter_lifetime_l` = 10,000+.

**Grayl, GeoPress Purifier Water Bottle**
https://grayl.com/products/24oz-geopress-filter-purifier-water-bottle-nature-edition
- "In 8 seconds (5 liters/minute) ... Removes: waterborne pathogens (99.99% of viruses, 99.9999% of bacteria, 99.9% of protozoan cysts)."
- "These filters effectively block and trap microorganisms and particulates, ensuring that submicron contaminants are removed through electroadsorption. Additionally, the cartridge is equipped with ultra-powdered activated carbon."
- "independently tested by a certified laboratory to meet or exceed NSF/ANSI protocol 42 and 53 for pathogen and chemical removal; meets the United States Environmental Protection Agency's Guide Standard and Protocol for testing microbiological water purifiers."
- Supports: `treatment_method` = electroadsorptive cartridge, `purifier_certification` = EPA Guide Standard, `treatment_wait_time_min` (near-instant), `flow_rate_lpm` = 5 (burst), and judgement 2 — the 99.99/99.9999/99.9 percent figures match the EPA Guide Standard's own log-reduction thresholds (4-log virus, 6-log bacteria, 3-log protozoa), a well-known set of numbers, but Grayl's page is the only place I saw them stated together and tied explicitly to that standard, so the register attributes them to Grayl's own page rather than to the EPA document (see "Could not reach" below).

**Cleanwaste, The Original WAG BAG**
https://cleanwaste.com/product/the-original-wag-bag/
Fetched successfully once via WebFetch (model summary with quoted text) early in the session; a later `curl` attempt on the same URL returned 403, so I could not re-verify by reading the raw HTML myself. Labelled **fetched excerpt**, not verbatim, for this reason.
- "Waste bag pre-loaded with Poo Powder® Gelling/Deodorizing Agent." A NASA-developed gelling agent that will "trap, deodorize, and break down waste." "Each unit can gel up to 32 ounces of waste."
- Supports: `human_waste_method`'s WAG-bag description. No disputed number rests on this source; it is purely descriptive of what the product is.

**NEMO Equipment, Helio Pressure Shower**
https://www.nemoequipment.com/products/helio-pressure-shower
- "Helio's 2.9-gallon vertical reservoir." "A foot-pump pressurization system and hands-free nozzle." "Provides 5–7 minutes of continuous, steady spraying power without the need to hang or rely on gravity."
- Supports: `portable_shower_type`'s foot-pump description and figures.

### Could not reach

- **EPA, Guide Standard and Protocol for Testing Microbiological Water Purifiers** (the 1987 document everyone in this category ultimately points to). Tried: the live `epa.gov` path (403, both the current and a plausible 2015 re-publication path), the EPA NEPIS document system by a guessed Dockey (`nepis.epa.gov/.../ZyPDF.cgi?Dockey=...` → HTTP 410 Gone, meaning the document did once exist there and was removed), and a Wayback Machine CDX search for any archived copy under that filename or a nearby one (no snapshot found). Because I never saw this document's own text, the register does **not** cite it directly. The 99.99/99.9999/99.9 percent log-reduction figures that match it are instead cited to Grayl's product page, which states them and explicitly claims EPA Guide Standard compliance (judgement 2 above flags the distinction).
- **extension.okstate.edu** and **cleanwaterstore.com** pages explaining NSF/EPA purifier standards (both 403). Would have been a second source for the log-reduction figures; not reached.
- **nps.gov** pages on Mount Rainier climbing waste disposal and Grand Canyon backcountry permits (no Wayback snapshot for the Rainier URL I tried; the one Rainier page I did fetch via Wayback, `climbing.htm`, does not mention waste disposal at all — wrong page for that claim). I therefore do **not** assert any specific national-park WAG-bag mandate anywhere in the register; the WAG-bag facet is sourced only to LNT's general "pack it out if you cannot dig" principle and Cleanwaste's own product description.
- **FDA** consumer hand-sanitizer Q&A (guessed URL 404; did not find the correct one in the time available). The hand-sanitizer alcohol threshold instead rests on CDC plus Wikipedia, which is two independent sources.
- Reverse osmosis in a consumer backpacking product: no brand page or review for a handheld backpacking RO filter turned up in this research (the technology exists in marine survival desalinators, which I know from general background, not from a source read in this session, so I have **not** asserted anything about marine desalinators in the register itself). As of the 2026-10-26 fix pass, `"reverse osmosis"` has been **dropped** from `treatment_method`'s values list for this reason (superseding the original plan to keep it as a carryover from the existing add-on's enum) — a value with no evidence behind it should not sit in the register even if the underlying add-on schema still lists it; the add-on's own enum is unaffected by this register.

## Data points used for derived metrics

- `cost_per_liter_treated`: needs `filter_lifetime_l` (Sawyer: unknown/warranty only; Katadyn BeFree: 1,000 L hollow fiber + 200 L carbon; Katadyn Pocket: 50,000 L; MSR Guardian: 10,000+ L) or, for tablets, the one-tablet-per-liter rule (Katadyn Micropur, verbatim). Formula is two-branch because reusable cartridges and consumable tablets are priced completely differently; see the facet's `backfill_note`.
- `group_fill_time_min`: needs `flow_rate_lpm` (Katadyn Pocket 1, Katadyn BeFree 2, MSR Guardian 2.5, Grayl GeoPress burst 5) and a liters-needed figure the assistant would get from the user, not the listing; same pattern as lamps' and power-bank's metrics that need a listing or user-supplied number alongside a facet.

## Against the existing add-on schema

Add-on read: `zamana-expertise/data/schema-parts/supplies/active/add-ons/outdoor_water.jsonc`. It holds exactly two fields: `filtration_method` (enum: hollow_fiber, ceramic, carbon, uv, chemical, reverse_osmosis, na, unspecified) and `filtration_rating` (a free-text string, with the comment's own examples "0.1 micron" and "99.9999% bacteria" showing it already conflates two different kinds of number). Also read `active-standard.jsonc` (only `sizing.max_user_weight`, not relevant here) and `supplies-standard.jsonc` (`high_signal_markdown`, `sizing.dimensions/capacity/weight`, which already cover a product's physical size and would carry things like a shower's gallon capacity or a filter's weight without a dedicated facet). Field-kind vocabulary from `AGENTS.md`: vertical anchor, category quality currency, hard filter, sizing, or "dead" (cut on sight).

| Facet in this register | In add-on today | Proposed kind under AGENTS.md | Note |
|---|---|---|---|
| `purifier_class` (filter vs purifier) | not present | hard filter | The single most-asked buyer question in this category and currently invisible to the schema. Cheap to infer from the product name, worth a real field rather than inferring it every time. |
| `treatment_method` | yes, as `filtration_method`, but coarser | hard filter | Keep the enum but split `chemical` into `iodine` and `chlorine_dioxide` — CDC gives them materially different effectiveness against Cryptosporidium (not effective vs low-to-moderate) and Giardia (low-to-moderate vs high). Add `electroadsorptive_cartridge` for Grayl-style press purifiers, which is neither a pore-size filter nor a classic chemical dose. `na` and `unspecified` are fine as-is. |
| `filter_pore_micron` | folded into `filtration_rating`'s free text today | category quality currency | A real number every brand spec page in this research stated outright; dense enough to commit to backfilling, which `filtration_rating`'s loose string is not (it mixes microns and percentages in one field, so nothing downstream can safely parse either). |
| `purifier_certification` | not present | hard filter | Currently the only trace of this is buried in `filtration_rating`'s percentage examples, which do not say which standard the percentage is tested against or whether it's self-reported. A named enum (not stated / EPA Guide Standard / NSF P248 / NSF 42-53 only) is honest about how rarely this is actually documented. |
| `flow_rate_lpm`, `filter_lifetime_l`, `treatment_wait_time_min` | not present | category quality currency (lifetime, flow) / hard filter (wait time, since a buyer who needs water now will filter out anything with a multi-hour wait) | All three are stated on brand pages for most products in this research (Sawyer being the one exception for lifetime). None are currently capturable. |
| `prefilter_needed` | not present | hard filter | A genuine fit/compat fact (silty rivers rule out most UV purifiers) that a photo cannot answer and that is currently invisible. |
| `soap_biodegradable`, `portable_shower_type`, `human_waste_method`, `hand_sanitizer_alcohol_pct` | not present at all; the add-on only covers water filtration | vertical anchor-adjacent hard filters | The add-on's scope as written (`filtration_method`/`filtration_rating`) only covers half of what the taxonomy label "Outdoor Water & Hygiene" actually names. These four fields are the minimum needed to make the hygiene half legible at all; none is answerable from a photo. |

`filtration_rating` itself is the field this register considers noise once the above exist: it is a free-text catch-all mixing a pore size and a removal percentage in one string, exactly the kind of field rule 5 in `AGENTS.md` flags for replacement by structured fields plus markdown, not by a cleaner string.

## Branches

Every leg below is traced to a specific sentence in the register (`category.json`) or in the Sources section above; legs I could not trace this way were not written.

- `primary_job` = "treat water" → then_ask `purifier_class`, `form_factor`. Chain: these two facets only exist for water-treatment products; a buyer who said "treat water" has already ruled out needing soap, a shower, or a trowel, so both top-tier water splits apply immediately. SUPPORTED by the facet definitions themselves (both are listed as roles `["split", ...]` with no hygiene content).
- `primary_job` = "hygiene and cleanup" → then_ask `hygiene_task`; makes_irrelevant the nine water-treatment facets. Chain: REI's and CDC's whole framework (filter vs purifier, pore size, wait time, flow rate) is about pathogen removal from drinking water; none of it bears on washing or waste disposal, which LNT governs by distance and depth instead ("carry water 200 feet away... use small amounts of biodegradable soap" — a geometry rule, not a microbiology one). SUPPORTED.
- `purifier_class` = "bacteria and protozoa only" → then_ask `treatment_method`, `filter_pore_micron`; makes_irrelevant `purifier_certification`, `treatment_wait_time_min`. Chain: a product that only targets bacteria and protozoa is, by definition, not claiming to meet a virus-rated standard, so asking which standard it meets is moot (Sawyer and Katadyn BeFree state no virus claim and no standard). The near-zero wait time is also moot because every product in this research that is "filter only" is a mechanical, essentially instant format (hollow fiber or ceramic), never a chemical or UV one — confirmed by cross-checking: no chemical or UV product in this research claims anything less than full virus coverage (Micropur, SteriPEN, MSR Guardian and Grayl are all virus-claiming). SUPPORTED, including the implicit correlation with `form_factor`.
- `purifier_class` = "viruses too" → then_ask `treatment_method`, `purifier_certification`, `treatment_wait_time_min`. Chain: once viruses are in scope, which named standard (if any) backs the claim becomes the live question (MSR's NSF P248 vs Grayl's EPA Guide Standard vs "not stated"), and the wait time becomes real information rather than a formality (Micropur's 4 hours vs SteriPEN's 90 seconds vs Grayl's 8 seconds are all genuinely different costs). SUPPORTED.
- `form_factor` = "drops or UV pen" → then_ask `treatment_wait_time_min`, `prefilter_needed`; makes_irrelevant `filter_pore_micron`, `filter_lifetime_l`. Chain: chemical and UV treatments have no membrane and no pore size (CDC and Katadyn's pages never give either a micron figure for Micropur or SteriPEN), and no filter cartridge to wear out, so both facets are category errors on this branch, not just low-priority. SUPPORTED.
- `form_factor` = "pump" or "gravity bag" → then_ask `flow_rate_lpm`, `filter_lifetime_l`; makes_irrelevant `treatment_wait_time_min`. Chain: both formats are mechanical filtration with a stated flow rate and cartridge life (Katadyn Pocket, Katadyn BeFree, MSR Guardian all state both), and REI's own pros/cons list gives pumps and gravity systems no "wait time" line at all, only a flow-rate one. SUPPORTED.
- `form_factor` = "squeeze or straw" → then_ask `filter_lifetime_l`. Chain: squeeze and straw filters are also mechanical and instant, but unlike pump/gravity systems they are not reliably specified for flow rate (Sawyer states no flow figure at all), so only lifetime is a safe thing to ask next. SUPPORTED; this is also why `flow_rate_lpm` is not made irrelevant here (REI implies squeeze filters do have a flow rate, it is simply under-reported, which is a backfill problem, not a category-error one).
- `hygiene_task` = "wash up" → then_ask `soap_biodegradable`, `portable_shower_type`, `hand_sanitizer_alcohol_pct`; makes_irrelevant `human_waste_method`. Chain: LNT's washing rule (soap, 200 feet, biodegradable or not) and its hand-sanitizer line are both filed under washing, and a trowel or WAG bag has no role in getting clean. SUPPORTED.
- `hygiene_task` = "dispose of waste" → then_ask `human_waste_method`, `hand_sanitizer_alcohol_pct`; makes_irrelevant `soap_biodegradable`, `portable_shower_type`. Chain: LNT's cathole/WAG-bag rule is specifically the waste-disposal principle, and LNT's own text keeps hand sanitizer relevant here too ("Hand sanitizers that don't require rinsing allow you to wash your hands without worrying about wastewater disposal" appears in the same waste-disposal context), which is why `hand_sanitizer_alcohol_pct` is asked on both branches rather than made irrelevant on this one. SUPPORTED.

## Trimmed detail

Sentences cut from capped fields that carried a fact, a number, or a source. Nothing was dropped from the register; each is kept elsewhere (noted) or lives only here.

- **summary**: "A purifier adds a chemical, UV, finer-membrane, or electroadsorptive step." (kept in `mechanism.plain` and the `purifier_class` facet).
- **mechanism.plain**: "which the trade calls this a filter" and "and it becomes a purifier" wording trimmed slightly; no fact cut, both ideas survive in the final sentence forms. The specific pathogen examples (Giardia, Cryptosporidium) are kept; the broader "Shigella, hepatitis A, E. coli, enterovirus" examples CDC gives for bacteria and viruses were cut for length and are not needed since the register works at the class level (bacteria/virus/protozoa), not the species level.
- **purifier_class.why_experts_care**: the specific sentence "MSR cites NSF P248 and Grayl cites the EPA Guide Standard" was moved into `purifier_certification`'s own `why_experts_care`, to avoid repeating it in two facets.
- **treatment_method.why_experts_care**: REI's full eight-way pros/cons table (pump/gravity/UV/bottle/squeeze/straw/chemical/boiling) was cut to the single clearest disagreement (chlorine dioxide vs iodine vs Cryptosporidium); the full table lives in the "Method comparison matrix" visual grammar and in this file's Sources section above.
- **filter_lifetime_l.why_experts_care**: "a scrubbable ceramic filter can in practice be used indefinitely between full cartridge changes, since Katadyn's own description is 'the ceramic can be cleaned several times — even in the field' rather than a hard liter ceiling" (kept here; the facet's stated range uses Katadyn's own 50,000 L figure as the practical ceiling rather than claiming "indefinite").
- **human_waste_method.why_experts_care**: the specific LNT wording "at least 200 feet (about 70 to 80 adult paces)" was trimmed to just "200 feet" for length; the paces figure is kept in the Sources section above.
- **judgements[1].note** (the Grayl/EPA one): "NSF/ANSI 42 (aesthetic effects, chlorine/taste/odor) and 53 (health effects, including cyst reduction) are both real, well-established standards, just not the virus-specific one" was trimmed to the shorter claim that they test "taste and particulates, not viruses specifically"; the fuller NSF 42/53 scope description lives here only.

## Noise

Spec-sheet rows seen during this research that are not captured as their own facet, and why — added per the house format so a future check can tell a deliberate omission from an oversight.

- Weight (Sawyer Squeeze: 8.19 oz) and shower tank capacity (NEMO Helio: 2.9 gallons) — not category facets; carried by the generic `supplies-standard.jsonc` `sizing` fields (see "Against the existing add-on schema" above), not omitted.
- Price, brand, rating — generic facets per house rule; never included regardless of category.
- UV lamp life ("8,000 activations," stated identically by both the SteriPEN Ultra and the SteriPEN Classic 3) — not given its own facet because it does not vary across either UV pen read for this register; noted instead in `uv_treatments_per_charge`'s `why_experts_care` as context for the figure that does vary (treatments per battery charge, 50 vs ~100).
- Shelf life (Katadyn Micropur tablets: "5 years from date of manufacture") — a storage/expiry fact, not a trade-off between products; not captured as a facet.

## Corrections

None from the first pass — this was the first draft for this category, so there was no earlier draft to correct against.

### Corrections (2026-10-25)

Applied after a blind check (`check.md`, run 2026-10-26) found 7 required fixes. All 7 were applied; none rejected.

1. Added `filter_pore_micron` to `purifier_class`="viruses too"'s `then_ask` — MSR Guardian, this branch's own cited example, has a researched 0.02 µm pore size the branch never surfaced.
2. Removed `treatment_wait_time_min` from `purifier_class`="bacteria and protozoa only"'s `makes_irrelevant` and added it to that branch's `then_ask` instead, since `treatment_method`="boiling" is a live option there with a genuine wait.
3. Added the `uv_treatments_per_charge` facet (range 50–100 treatments per charge) and wired it into `form_factor`="drops or UV pen"'s `then_ask`; fetched a second UV pen's spec page (Katadyn SteriPEN Classic 3) live to get a two-source range, since the register previously had only the SteriPEN Ultra's 50-per-charge figure.
4. Added this file's `## Noise` section above.
5. Reworded `purifier_class`'s `question` and `cold_start_question` from the jargon self-classification ("Just bacteria and protozoa, or viruses too?") to the destination-based proxy the split's own `rationale` and `skip_if_known` already relied on ("US/Canada backcountry only, or traveling elsewhere?").
6. Tightened `filter_pore_micron.range.max` from 0.3 to 0.2 µm and dropped `cdc_backcountry`/`wiki_portable_purification` from that facet's `evidence`, since no cited product sits at 0.3 µm; the range now rests only on product-level specs (MSR Guardian 0.02 µm, Katadyn Pocket 0.2 µm).
7. Dropped `"reverse osmosis"` from `treatment_method`'s `values` and from the facet's `definition`, since no backpacking RO product or source was ever found for this register; also corrected the stale "Could not reach" note above that had said the value would stay in the enum regardless.

## Notes on the build scripts

`validate.py`, `render.py` and `viewer.py` all ran clean on the first pass with no changes needed to `category.json` beyond normal authoring iteration; nothing to report as a script problem.
