Mobility Atlas research: stairlift-guide Data and method for the article at mobilitatlas.com/blog/stairlift-guide/ License: CC BY 4.0 (credit "Mobility Atlas") Prepared: 16 October 2026 WHAT WAS READ Every FDA MAUDE medical device report ever filed under product code PCD (powered stairway chair lift; 21 CFR 890.5150) or PCE (permanently mounted wheelchair platform lift; 21 CFR 890.3930), as read in openFDA on 15 October 2026: 234 reports received from April 2014 to September 2026, 231 with text, all coded. 1 describes no stairlift or platform lift event (coded N), leaving 230. All 3 FDA recall records for product code PCD (none under PCE), downloaded through openFDA on 15 October 2026. Makers: grouped from the manufacturer and brand names in each report; a report filed by one company under another's brand is counted under the brand. HOW IT WAS CODED 1. A codebook (codebook.txt) was written before any report was coded. Its SHA-256 fingerprint, recorded at 2026-10-15T17:51:12Z, is 46f567b91d627d3f6af5fd81ee2cdba1f59380911aa2c01324b7a6494e742ef0. 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: device 99.6% (kappa 0.956); category 94.8% (kappa 0.936); injury 99.6% (kappa 0.989); fall 99.1% (kappa 0.98); user stranded 99.1% (kappa 0.896); what was found 91.8% (kappa 0.873). 4. Every report where the coders differed was decided by the lead analyst under the written rules below (31 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 S1: FINDING: a fault traced to installation, set-up or service by the maker or its dealer (untorqued bolts, missing bolt, configuration, out-of-spec install, damage by a technician) is D; a cause outside the device stated by the maker (belt not worn, user leaned or misused the lift, user lubricated the rail) is N; a fault described as observed (a broken weld, a relay fault, a replaced power pack) is D even if the part was not returned. S2: CATEGORY: a platform or carriage that dropped, slid down the rail, jolted or went past its end stop is M, even when a worn or failed drive part is named. S3: CATEGORY: movement caused by the user or another person pressing the control, with no fault, is T. S4: CATEGORY: a seat that tilted, rose or would not lock is B unless it moved the user unexpectedly in a way M covers; a seat that rose as the user bent forward is M. S5: CATEGORY: a lift that stopped at a landing, at an obstruction or with flat batteries is E; a body part caught or wedged against the rail or lift is C; an injury while cleaning a lift that was not moving is X; conflicting accounts are U. S6: FLAGS: fall is y when the user fell out as the chair tipped; injury is n when no harm is stated; stranded is y only when the user was stuck or needed freeing. S7: DEVICE: a wheelchair lift fitted to a van is P. KEYWORD COUNTS (Python regular expressions, matched against the upper-case report text without its header line) KW = { 'got_off_mid_rail': r'GET OFF|GOT OFF|GETTING OFF|STEP(PED)? OFF|DISMOUNT|ALIGHT|CLIMB(ED)? OFF|(HELP|GET|GETTING|ASSIST\w*) (HER|HIM|WIFE|HUSBAND) (OFF|OUT)|OUT OF THE (CHAIR|SEAT|LIFT)|EXIT\w*|GOT OUT|GET OUT|LEAVE THE (LIFT|STAIRLIFT|CHAIR|SEAT)|LEFT THE (SEAT|CHAIR)', 'walked_the_stairs': r'(WALK|CLIMB|DESCEND)\w* (UP |DOWN |BACK )*(THE )?(STAIR|STEP)|DECIDED TO WALK|WALK UP|WALK DOWN|ON FOOT', 'seatbelt': r'SEAT ?BELT|SAFETY BELT|LAP BELT', 'belt_not_worn': r'(FORG\w* TO|DID NOT|DIDN.T|WASN.T|WAS NOT) (FASTEN|SECURE|WEAR|WEARING|USE|USING|BUCKLE)\w*( THE| HIS| HER| ANY| A)? ?(SEAT ?BELT|SAFETY BELT|BELT)|(NOT|NOR|WITHOUT|NEVER) (WEARING|WEAR|USING|USE|FASTEN\w*|BUCKL\w*)( THE| HIS| HER)? (SEAT ?BELT|SAFETY BELT|BELT)|WITHOUT (THE |HIS |HER |A )?(SEAT ?BELT|SAFETY BELT)', 'safety_edge_or_obstruction': r'SAFETY EDGE|SAFETY SENSOR|OBSTRUCTION|OBSTACLE', 'hand_winding': r'HAND ?-?WIND', 'swivel': r'SWIVEL', 'charging_or_battery': r'CHARG|BATTER', 'dark': r'\bDARK', 'error_code_or_beep': r'\bERROR|\bCODE\b|\bF\d\b|\bE\d\b|BEEP', 'landing_or_mid': r'MID[- ]?(RAIL|LANDING|WAY|STAIR|FLIGHT)|HALF ?WAY|PART ?WAY|LANDING|3/4|MIDDLE OF THE (STAIRS|RAIL)', 'caregiver_helped_off': r'(HUSBAND|WIFE|SON|DAUGHTER|CAREGIVER|AIDE|FAMILY)\b.{0,60}(HELP|ASSIST|ATTEMPT\w* TO HELP|LIFT)', } FRACTURE_BONE = r'FRACTUR|BROKE(N)? (HER|HIS|THEIR|A|AN|BOTH|MULTIPLE|SEVERAL|\d+|TWO|THREE)? ?(LEFT |RIGHT |LOWER |UPPER )?(HIP|ARM|LEG|WRIST|RIBS?|ANKLES?|FOOT|FEET|NECK|BACK|SHOULDER|COLLAR ?BONE|PELVIS|FEMUR|ELBOW|KNEE|TOES?|FINGERS?|BONES?|NOSE|VERTEBRA\w*|HAND)|BROKEN (HIP|ARM|LEG|WRIST|RIBS?|ANKLE|FOOT|NECK|BACK|SHOULDER|BONES?|PELVIS|FEMUR|ELBOW|KNEE|NOSE|HAND)' HOSPITAL = r'HOSPITAL|EMERGENCY ROOM|\bER\b|SURGERY' 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 stairlift-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." - One maker is named in most of the reports, which reflects its filing, not its safety. - A few events were filed more than once; we count reports, not events. - Counts of people getting off the lift or walking the stairs, of belts not worn and of fractures are word searches; we read the 66 stop-and-fall reports by hand to check the main one (about 58 fit). 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. stairlift-guide-documents.csv the documents and pages read, with links