<aside>
This project analyzes 342,890 wildlife strike incidents reported to the Federal Aviation Administration (FAA) of the United States between 1990 and 2025. Using SQL for data exploration and Power BI for visualization, it examines which US airports face the highest strike frequency, which phases of flight are most dangerous, and how strike volume and repair costs have evolved over 35 years. Data is sourced from the FAA National Wildlife Strike Database — one of the most comprehensive aviation safety datasets in the world.
</aside>
<aside>
</aside>
<aside>
</aside>
<aside>
</aside>
<aside>
The primary purpose of this project is to demonstrate a complete end-to-end analytics workflow — from raw data acquisition and SQL-based exploration to interactive dashboard visualization and professional documentation.
Who this is relevant to:
<aside>
| Tool | Purpose |
|---|---|
| JetBrains DataGrip | SQL querying, data exploration, and aggregated CSV exports |
| SQLite | Local database engine storing and querying the full 342,890-row dataset |
| Microsoft Power BI Desktop | Interactive dashboard and data visualization |
| Microsoft Excel | Initial file inspection of the raw .xlsx download |
| CloudConvert | Independent XLSX to CSV conversion for cross-reference validation |
| Anthropic Claude | Data verification, CSV conversion cross-checking, and workflow guidance |
| Canva | Visual report design and PDF creation for portfolio sharing |
| Notion | Project documentation and process writeup |
| GitHub | Version control and public project repository |
| </aside> |
<aside>
https://wildlife.faa.gov/search
</aside>
<aside>
<aside>
This dictionary covers the most analytically relevant fields used in this project, plus additional columns of interest for future research.
| Source | FAA National Wildlife Strike Database (wildlife.faa.gov) |
|---|---|
| Total Columns in Full Dataset | 102 |
| </aside> |
<aside>
</aside>
<aside>
| Voluntary Reporting | Strike reporting is not mandatory for most operators. The database represents reported incidents only — actual strike frequency is estimated to be significantly higher. |
|---|---|
| Null Values | Many fields contain null or blank values, particularly for older records (pre-2000) where reporting standards were less detailed. Key columns with high null rates include TIME, TIME_OF_DAY, SPECIES, HEIGHT, SPEED, and cost fields. |
| Cost Fields | Zero values in COST_REPAIRS and COST_OTHER may represent no damage or unreported costs — these cannot be distinguished without reviewing individual records. |
| Species Identification | Species names in older records rely on visual identification by crew or reporters. DNA-confirmed identifications from the Smithsonian Feather Identification Laboratory are more common in recent records. |
| Inflation Adjustment | Always use COST_REPAIRS_INFL_ADJ rather than COST_REPAIRS for year-to-year cost comparisons. The nominal cost field does not account for inflation and will understate the relative cost of older incidents. |
| </aside> |
</aside>
<aside>
<aside>
04-25-2026 (6-55 PM PHT) Latest README.md
</aside>
<aside>
Annual strike counts and inflation-adjusted repair costs from 1990 to 2025. 36 rows. Used to build the trend line visual in Power BI.
Strike counts grouped by phase of flight, with damage severity breakdown (minor, substantial, destroyed). 12 rows. Used to build the bar chart visual in Power BI.
Strike counts grouped by airport, including latitude, longitude, state, and damaging strike count. 30 rows. Used to build the bubble map visual in Power BI.
All SQL queries written and executed in JetBrains DataGrip, including data integrity checks, the three analysis queries, and five bonus queries for extended analysis.
</aside>
<aside>
Power BI Desktop project file containing all three interactive visuals — the wildlife strike map, phase of flight bar chart, and 35-year trend combo chart. Requires Power BI Desktop (free) to open.
Static PDF export of the Power BI dashboard. Contains all three visuals across three pages. No software required to view.
</aside>
<aside>
</aside>
<aside> ⚠️
</aside>
</aside>
<aside>
</aside>
<aside>
</aside>