Mobility Atlas research: manual-wheelchair-repair-guide Data and method for the article at mobilitatlas.com/blog/manual-wheelchair-repair-guide/ License: CC BY 4.0 (credit "Mobility Atlas") Prepared: 16 October 2026 WHAT WAS READ FDA MAUDE medical device reports filed under product code IOR (Wheelchair, Mechanical; 21 CFR 890.3850), read in openFDA on 16 October 2026 (data last updated 7 October 2026), that carry text: (a) every such report received 1 January 2019 to 31 December 2025 (633); (b) every 2026 report whose manufacturer field does not contain "Medline" (24); (c) a systematic sample of 300 of the 1,921 reports with text whose manufacturer field contains "Medline", received in 2026, taken as 50 consecutive reports at six evenly spaced positions of the openFDA result list sorted by date received (skips 0, 320, 640, 960, 1280 and 1600). Pool: 957 reports, all coded; 2 describe no wheelchair event (coded N), leaving 955. The stratum of each report is in strata.csv. The FDA recall records for product code IOR, downloaded through openFDA on 10 October 2026 (40 records). This study re-reads many of the same reports as the Mobility Atlas lightweight wheelchair study with a different codebook: the part that failed first, how, and whether the report names upkeep. Makers: grouped from the manufacturer and brand names in each report (Sunrise Medical, Medline, Drive, Permobil/TiLite, Invacare, Ki Mobility, 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-16T05:07:51Z, is af26754b8131f0a387e251df88ce12ae1a5f659d3313a7ae1558c22cf4732a40. 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: part named 94.9% (kappa 0.937); mode 97.2% (kappa 0.963); injury 99.6% (kappa 0.991); fall 98.0% (kappa 0.945); upkeep 98.2% (kappa 0.955); arrival 99.0% (kappa 0.945); what was found 98.3% (kappa 0.972). 4. Every report where the coders differed was decided by the lead analyst under the written rules below (115 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 W1: PART (wheel off): a wheel that came off, fell off, detached or felt loose is Q when the report, including the maker narrative, names no axle, quick-release pin, axle bolt or lug, bearing, or broken wheel or hub; a wheel that broke, cracked, bent or warped with no sign it was a front or caster wheel is S (the wheel itself); a wheel named both rear and front, or only "wheels" that malfunctioned, were replaced or did not turn, is Q. W2: PART and MODE (alleged vs found): when the maker's own review of the sample, photo or video identifies which part failed or how it failed, code that part and mode, because the report then says that part failed first (as on agreed rows 50459936, 50473602, 50525324, 50531195, 50790374, 23356429); keep the reporter's allegation when the maker finds no fault, cannot confirm, or names no part. W3: PART (several parts): when the report names several failed parts with no order of failure, code the one that comes first in the codebook list among the parts that can be coded; the order in which a sentence lists them is not an order of failure, and a part that can only be coded Q counts at Q's place in the list. W4: PART (hardware and welds): a screw, bolt, nut or cap that the report ties to a part (seat braces, caster or front axle bolts) is coded as that part, W only when it is tied to no part; a break at a frame weld is F even when the welded lug holds the rear axle. W5: PART (no failure): X when no part failed and none is alleged to be defective: fit, set-up, weight, centre of gravity, footplate position, a missing accessory never fitted, a burn or pressure sore from an intact part, or knocking a fork or footplate; a sharp or protruding piece alleged to have cut the user is an alleged defect, coded by that part, Y when it is named but outside the list (latch block), Q when it is not identified (a plate); N when the wheelchair was not involved (packaging). W6: PART (named parts): a recline piston or reclining handle is K (backrest hardware); the left side of the chair warped is F (side frame); a tilt support bar is F, like the agreed tilt-collar row 9371213; a seat section of unknown type is Y, like agreed row 17523973; a wheel cover is Y (named, not in the list). W7: FALL: y when the user went to the floor or out of the seat, including during a transfer into or out of the chair or while holding the chair to transfer, when the chair tipped with the user in it, or when the chair rolled away during a transfer and the user fractured a hip; this matches the agreed transfer rows (10072190, 10976552, 16034178, 22913298, 23466012); n when no fall is stated or the user fell back into the chair. W8: INJURY: y when harm or care is stated, or the text says the user hit the head or face on something (as on agreed rows 15812597, 50869004); n when only a fall, a floor landing or an Injury event type is stated with no harm. W9: UPKEEP: y when the report, the maker narrative included, names wear (worn, hardly any rubber), age offered as an explanation, lack of maintenance, loosening that needs tightening, an adjustment (brakes too tight, brake cable at its maximum, tyre inflation), installation torque, or a non-maker part or user modification, as a cause, a possible cause or the fix; this includes the Sunrise/Quickie and TiLite text that cites maintenance or tightening of the failed part while explaining the event; n when wear or age is only observed and not tied to the event, or when a factory or delivery set-up error was corrected. W10: ARRIVAL: y when the problem was noticed at delivery, unboxing, assembly, first use or the first days of use, or when the text calls the chair new or just ordered at the time of the problem (as on agreed row 22913298); n when the timing is unknown, including a part merely reported missing (as on agreed rows 17488335 and 17524302), or when the problem came after a period of use. W11: MODE (wheel locks and brakes): J when a lock or brake did not hold, would not engage or lock, slipped, released, let the chair move while engaged, or is said not to work; L when the stated or observed failure is that it is loose, wobbly or came off (the first stated mode when two are given); O only for "malfunctioning" with no description. W12: MODE (other): a quick-release pin too short to catch the wheel is J (would not lock); spokes that blew off are L; a part drilled in the wrong place is O; a slide cap that pops off is L; wobbly is L; with PART Q, X or N the mode is O. W13: FINDING: D when the maker or its technician confirms the fault by inspection, photo or video, opens a CAPA for it, or replaced or fitted the failed part (warranty part, spare, replacement back) without blaming an outside cause; N when the maker states no malfunction, performed as intended, no fault or root cause found on evaluation, or names an outside cause (misuse, improper fit or measurement); a fault the maker confirms and attributes to shipping damage or mishandling in transit is D, because the part as delivered was damaged, which matches the rows on which both coders agreed; X when the maker draws no conclusion (not returned, a hedged "does not appear", a DHR review only, a dealer's belief, a repair part ordered by a dealer). KEYWORD COUNTS (Python regular expressions, matched against the upper-case report text without its header line) KW = { 'fracture': r'FRACTUR', 'head': r'\bHEAD\b', 'hospital_or_er': r'HOSPITAL|EMERGENCY ROOM|\bER\b', 'curb_or_ramp': r'CURB|KERB|RAMP|SLOPE|HILL', 'transfer': r'TRANSFER', 'quick_release': r'QUICK.?RELEASE|\bQR\b|RELEASE PIN|AXLE PIN', 'bearing': r'BEARING', 'tighten_or_loosen': r'TIGHTEN|LOOSEN', 'maintenance': r'MAINTENANCE|MAINTAIN', 'weld': r'WELD', 'anti_tip': r'ANTI.?TIP', 'shipping': r'SHIPPING|TRANSIT|MISHANDL', } 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 manual-wheelchair-repair-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." - The Medline 2026 reports are a sample of one maker's retrospective batch; they are counted separately and not added to the other strata. - 200 of the 655 reports outside that sample are one series of Sunrise Medical dealer reports about loose wheel locks; they dominate the wheel lock count. - Faults that users fix themselves (flat tyres, dirty bearings) are rarely reported, so tyres and bearings are badly undercounted. - One coder's first pass on a chunk assumed codes for a repeated series instead of reading each report; it was sent back and recoded report by report before agreement was measured. 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. manual-wheelchair-repair-guide-documents.csv the documents and pages read, with links