Mobility Atlas research: pressure-mattress-guide Data and method for the article at mobilitatlas.com/blog/pressure-mattress-guide/ License: CC BY 4.0 (credit "Mobility Atlas") Prepared: 16 October 2026 WHAT WAS READ Every FDA MAUDE medical device report with text filed under product code FNM (Mattress, Air Flotation, Alternating Pressure) or IKY (Mattress, Flotation Therapy, Non-Powered), received 1 January 2019 to the latest openFDA update read on 16 October 2026: 1,825 reports, all coded. 10 describe no mattress event (coded N), leaving 1,815: 1,262 event reports and 553 inspection reports (mattresses or covers checked and found damaged or soiled, most of them in 2024 after Veterans Health Administration safety alert AL24-01). All 24 FDA recall records for product codes FNM and IKY, downloaded through openFDA on 16 October 2026 (recall_facts.py). Makers: grouped from the manufacturer and brand names in each report (Arjo, Medline, Stryker, Joerns, Hillrom/Baxter, Agiliti, Moxi, Drive, other). HOW IT WAS CODED 1. A codebook (codebook.txt) was written before any report was coded. Its SHA-256 fingerprint, recorded at 2026-10-16T08:30:08Z, is f7e00c5175fdda736218c75f79d7af2a00229efcaf21345299b0e0332f1d9073. Any later change to the codebook would change this fingerprint. 2. The reports were split into chunks. Two coders (AI language models working separately, each in a private scratch folder, each without access to the other's answers, told to read every report and not to use keyword scripts) coded every report in every chunk against the codebook. 3. Agreement between the two coders: surface 88.9% (kappa 0.824); category 95.3% (kappa 0.943); injury 99.5% (kappa 0.986); fall 99.8% (kappa 0.992); setting 93.3% (kappa 0.874); inspection 97.2% (kappa 0.934); what was found 88.8% (kappa 0.826). 4. Every report where the coders differed was decided by the lead analyst under the written rules below (550 reports marked adjudicated). A consistency pass then re-applied the rules across the whole table and changed codes in 0 more reports (marked consistency). 5. Counts in the article were produced by script from the final table, not by hand. Some sub-counts (parts, places or words named in reports) are keyword counts over the report text; the exact word patterns are listed under KEYWORD COUNTS. Different wording would give somewhat different counts. ADJUDICATION RULES M1: SURFACE: the report text decides first (pump, blower, control unit, alternating, low air loss, power plug or cord of the device -> A; foam, gel, static or non-powered -> F; stretcher, gurney, OR or procedure-table pad named as the item -> S; the VA boilerplate "hospital bed and gurney surfaces" does not name the item); then a device-record generic name or model that describes the type (LAL, ALT PRESS, APP, PUMP, GEL FOAM, FOAM); then a brand line only when other reports of the same line in this pool state its type in their own text and none states a different type (IsoTour gel core -> F; Isoflex SE and ComfortGel SE stretcher pads -> S; Velaris, Dolphin FIS, ProCair Plus, SkinGuard, UltraCare and Drive 14029/14530 with pump, blower or control unit -> A); otherwise U. The product code alone and a generic name that only repeats the FDA classification name (including a procode correction note) never decide, because agreed rows show both FNM and IKY carry every surface type; bare lines whose pool reports disagree or say nothing (AirNest, Centrella Max, AccuMax, Nano AG, bare Isoflex, bare ProCair, Custom Care, Atlas, UltraMax, XPRT, bubble overlay) are U. M2: SURFACE (hybrids): a foam mattress with air cells that the report or its line is said to use with a pump (Velaris: "regardless of whether using the Velaris pump", cells not inflating) is A, even where one narrative calls it built of foam. M3: CATEGORY D vs O vs P: D when the surface or part of it lost air, leaked, would not inflate or fill (including a foam mattress that did not expand), or the person sank, dipped or bottomed out, also when blamed on the pump or motor and also when a broken zipper or fluids are reported alongside (D precedes C); O when air is present but distributed unevenly (air shifts away from under the patient, cells high and low, gap between cells), too firm, or bolsters uninflated or too high; P only when the pump, control, alarm, hose or alternating function failed with no loss of support described. M4: CATEGORY C vs U: C needs a damaged cover, seam or zipper, holes, cracks or tears, or fluid, stain, soil or contamination inside; an inspection that names only an inner layer (fire barrier only, internal materials only) or says only compromised, integrity compromise or removed for wear and tear, with no part or kind named, is U. M5: CATEGORY K vs X: K when a pressure injury that arose on the surface is reported, including when the reporter or survey respondent adds that no malfunction was seen or alleged, when the only fault named lies outside 1-8 (internal gel or foam separation, inner parts assembled upside down) or is unspecified (K precedes U), and whatever the maker later concludes (that goes to FINDING); X when the reporter, facility or survey respondent states the surface did not cause or contribute, or that they did not allege it caused or contributed (no attribution). M6: CATEGORY (other precedence): a damaged power cord found during the investigation makes H even when the alleged event is a fall; a mattress reported as becoming very hot is H (codebook overheating of the mattress); N when the electrical event is another maker's bed cord or no event is described at all; a fall blamed on an unspecified malfunction is F (F precedes U); being found next to the bed with no fall established and no fault is X. M7: FINDING (facility inspection or audit reports filed by the facility, incl. VA/VHA AL24-01): the facility's own inspection counts as the finding: D when it names a specific defect in the reported device (microholes, tears, cracks, fluid ingress, stains or contamination inside, compromised fire barrier or internal materials, odor, overlay height found to contribute); N when it names an outside cause (cuts and wear by users, bleach) or the report quotes the maker blaming cleaning or overdue replacement; X when it says only compromised, integrity compromise, removed or soiled without a specific defect tied to the device, or only cites the alert. M8: FINDING (maker reports): D when the maker, its technician or its photo review confirms a fault or replaces a part as faulty, including leaks attributed to normal wear within service life; N when the maker finds no fault, could not reproduce after evaluating the returned sample, photos or video, or names an outside cause (cord crushed, pinched or kinked by bed parts or users, cable management not used, facility wiring, bleach, staff practice or settings, disconnected hoses, another maker's pump, smoking, use gaps in device data, beyond service life, overlay stacked on another mattress), even when it adds that the device failed its specification; X when it was not evaluated, no sample, unable to confirm, production-record review only, a warranty or wear-and-tear policy statement without evaluation, a replacement sent without confirmation, or when only the reporter, family or the provider's own technician describes the fault. M9: SETTING: C when a hospital, nursing or care home, ward or unit, the facility, residents, nurses, customer staff, employees or maintenance technicians, or a facility-wide or fleet audit (including any AL24-01 alert report) is named; H when a home, a family member, the patient's own caregiver or caretakers, or a private purchase is named and no facility; a facility named at the event outranks a family member who reported; otherwise U (customer, end user, patient, hospital bed, a bare caregiver, police, or a later ER or hospital transfer do not decide). M10: INSPECTION: Y when the report gives results of checking surfaces rather than one patient event: alert or audit findings, several mattresses found compromised, preventive maintenance findings, or an inspection on rental return; N for patient-event complaints even when many (20 falls, a rise in pressure injuries) and for a facility noticing torn covers in use without a described check. M11: INJURY: Y when the text states bodily harm from the event, including pain; N when only a fall, an impact, a hot part, an Injury event type, or a death or resuscitation unrelated to the device is stated. M12: FALL: Y when the person went to the floor, including the lower body on the floor with the head caught at the bed; N when the person was caught hanging on the rail or found half out of the bed. M13: PAIRS: reports in one series with the same text (same facility audit, same safety-alert batch, same customer complaint split by patient) get identical codes. KEYWORD COUNTS (Python regular expressions, matched against the upper-case report text without its header line) KW = { 'pressure_injury': r'PRESSURE (INJUR|ULCER|SORE)|BED ?SORE|DECUBIT|\bULCER', 'cpr': r'\bCPR\b', 'power_cord': r'POWER CORD|\bCORD\b|CABLE|PLUG', 'spark_smoke_fire': r'SPARK|SMOK|FIRE|MELT|BURN', 'shock': r'SHOCK', 'power_loss': r'POWER (OUTAGE|FAILURE|LOSS)|UNPLUGGED|LOST POWER|POWER WAS', 'bolster': r'BOLSTER', 'rail': r'\bRAIL', 'hose_or_tube': r'\bHOSE|TUBING|TUBESET|CONNECTOR', 'bottom_out': r'BOTTOM(ED|ING)? OUT|ON THE (BED )?FRAME|FELT THE FRAME', 'fluid_ingress': r'FLUID|INGRESS|BLOOD|STAIN|SOIL', 'bleach': r'BLEACH|CHLORINE', 'al24': r'AL24-01|AL 24-01|SAFETY ALERT', 'fracture': r'FRACTUR', 'head': r'\bHEAD\b', 'hospital_or_er': r'HOSPITAL|EMERGENCY ROOM|\bER\b', 'oxygen': r'OXYGEN', 'smoking': r'SMOKING|CIGAR', } QUALITY NOTES (disclosed in full) - The article went through fact-check passes by checkers who had not written it (a full pass with a reader review, then a control pass over the changes), each recomputing numbers from the files here and reading quotes against their sources; every error found was corrected before publication. AMOUNTS Every report text was searched for money figures; none gives one. Prices in the article are prices shown on makers', dealers' and retailers' pages and in the Mobility Atlas catalog, listed in pressure-mattress-guide-documents.csv and the article sources. LIMITS - Reports are not rates. Nobody publishes how many devices of each model are in use. - A report is an allegation or a description; the FDA says the submission of a report "itself does not necessarily demonstrate that the device caused or contributed to the adverse outcome or event." - Event and inspection reports are counted separately; the inspection reports describe checks, not incidents. - 295 of the 351 event reports received in 2026 name Medline, most of them about mattresses losing air; they inflate the 2026 count and the deflation group. - The setting is not stated in most event reports; only 77 name a home. - One coder's first pass on a chunk used a keyword script instead of reading each report; it was discarded and the chunk recoded by hand before agreement was measured. - The same event is sometimes filed twice; we count reports, not events. FILES codebook.txt the codebook as fingerprinted coded_reports.csv one row per coded report: both coders' answers, the final code, and how a disagreement was resolved (resolution, rule_applied) report_pool.csv the reports in the pool with product code, brand, date received and event type The full report texts are public: search MAUDE or openFDA by report key. pressure-mattress-guide-documents.csv the documents and pages read, with links