Above is the embedded link to the final Tableau visualization embedded within this project, which can also be accessed via this link for increased screen real-estate.
Below contains documentation for each portion of the project:
Synthetic Dataset Creation | Spreadsheet Cleaning and Analysis | SQL Summary and Analysis | Tableau Summary and Analysis
This project uses fully synthetic patient-level fall data. Hospital names are used only as fictional labels for the exercise; the results do not describe actual patients, hospitals, or health-system performance.
I built this project as an end-to-end healthcare analytics exercise using a deliberately messy synthetic inpatient fall dataset. The dataset contains 85 fall incidents involving 80 fictional patients across four Chicago hospital labels.
I cleaned and analyzed the same source data independently in Google Sheets and Google BigQuery, then built both a Google Sheets dashboard and a three-part interactive Tableau story. The analysis explores when falls occurred, which patient and unit characteristics were associated with worse outcomes, and where prevention efforts could potentially be focused.
The project was designed to practice practical healthcare data-quality and analysis work rather than to model actual hospital performance. The source data include inconsistent hospital names and timestamps, missing values, an implausible age, repeat fallers, and unmatched fall-reason codes.
Because the data are synthetic, the findings should be interpreted as demonstrations of analytical workflow and interpretation rather than clinical evidence or benchmarks for the hospitals represented.
Dataset: 85 synthetic inpatient fall incidents involving 80 fictional patients.
Repeat fallers: 4 patients accounted for 9 total incidents.
Unit types: Med-Surg, Geriatric Psych, Acute Rehab, and ICU.
Med-Surg: 39 incidents.
Geriatric Psych: 18 incidents.
Acute Rehab: 14 incidents.
ICU: 14 incidents.
Hospital labels: Northwestern Memorial Hospital, Rush University Medical Center, UChicago Medicine, and Advocate Illinois Masonic.
Independent workflows: The raw data were cleaned and analyzed separately in Google Sheets and BigQuery rather than transferring one platform's cleaned output into the other.
Visualization: Google Sheets dashboard plus a three-dashboard Tableau story consisting of Overview, Risk Identification, and Recommendations.
When do falls occur by hour and day of week?
How do fall reasons differ across unit types?
How are cognitive status, Morse Fall Scale scores, and post-fall mobility change distributed across incidents?
How does documented provider presence relate to fall circumstances and injury severity in this synthetic sample?
Which fictional patients appear more than once in the incident log?
Which findings are strong enough to support a focused prevention recommendation, and which require more data before action?
Provider presence and severe injury
Of the 85 incidents, 64 were documented with no provider present. All 20 major injuries and all 3 sentinel events occurred in this category.
No major injury or sentinel event occurred among the 12 incidents where a provider was documented as present.
This is an association within a synthetic dataset and should not be interpreted as evidence that provider presence caused the difference in injury severity.
Fall reasons
The most common documented fall reasons were:
Unassisted toileting / urgency: 26 incidents
Ambulation loss of balance: 25 incidents
Bed/chair transfer slippage: 22 incidents
Medication-induced orthostatic hypotension: 10 incidents
Other / unclassified cause: 2 incidents
Unit-specific patterns
Med-Surg had the most incidents overall with 39, including 16 toileting-related falls.
Geriatric Psych had 18 incidents, including 9 toileting-related falls and 9 balance-related falls.
Bed/chair transfer slippage was the leading reason in Acute Rehab, accounting for 7 of 14 incidents.
Medication-induced orthostatic hypotension was the leading reason in ICU, accounting for 7 of 14 incidents.
These differences suggest that fall-prevention efforts would likely need to be tailored to the patient population and workflow of each unit rather than relying on one universal intervention.
Cognitive status and Morse Fall Scale score
Average Morse Fall Scale scores increased across the documented cognitive-status categories:
Alert & Oriented: 40.0
Mild Confusion: 63.0
Severe Dementia: 94.4
Sun-downing: 103.6
Cognitive status not documented: 65.0
Post-fall mobility
Average Timed Up and Go (TUG) completion time increased after falls in every unit, indicating worse mobility performance after the incident within the synthetic dataset.
Geriatric Psych had the largest average increase:
14.62 additional seconds
56.10% increase relative to baseline
Across injury categories, more severe outcomes were also associated with progressively larger increases in TUG completion time.
Timing
Falls were distributed fairly evenly across the week:
Sunday: 14
Monday: 13
Wednesday: 13
Friday: 13
Thursday: 12
Tuesday: 10
Saturday: 10
The highest individual hourly count was 6 incidents at 03:00. Most other hours contained between 2 and 4 incidents.
The differences are not large enough to support a confident staffing recommendation based on time of day alone.
This dataset was generated for practice. Relationships and correlations within the data reflect the synthetic construction and should not be generalized to real patients or hospitals.
The Provider_Present field indicates whether a provider was documented as being in the room. It is not equivalent to a formally defined or validated "witnessed fall" variable. An earlier version of the dashboard referred to these events as "unwitnessed falls," but "provider not present" is the more accurate description.
The dataset does not contain patient-days, occupied bed-days, admissions, staffing hours, unit census, or another exposure denominator. Hospital and unit incident counts therefore cannot be interpreted as true fall rates.
Missing injury severity was handled differently between the two analytical workflows. Google Sheets labeled missing values as Not Documented, while the original SQL cleaning query converted blanks to None. A missing value should not be interpreted as proof that no injury occurred.
Patient age was also handled differently between platforms. In Sheets, the two missing ages and the implausible age of 210 were replaced with the dataset median of 78. The SQL master table retained the original values, later flagged age 210 as an anomaly, and excluded implausible ages only from selected analyses.
The preventability tiers attached to fall reasons were part of the synthetic lookup table and are not presented as a validated clinical classification system.
Based on the patterns in the synthetic dataset:
Prioritize assisted toileting and timely call-light response for patients identified as high risk, particularly in units where toileting-related incidents are common.
Use unit-specific prevention approaches rather than one universal intervention.
Emphasize transfer safety in Acute Rehab.
Emphasize toileting and ambulation support in Med-Surg and Geriatric Psych.
Review medication-related and orthostatic risk in ICU when clinically appropriate.
Combine mobility status, cognitive status, fall-risk assessment, supervision needs, and transfer ability rather than relying on a single risk score.
Consider local bed/chair-alarm policies and other supervision tools as part of an individualized fall-prevention plan.
Document interventions and continue data collection so future performance can be evaluated using defined outcome measures, appropriate denominators, and pre/post intervention periods.