They fit in the palm of your hand.
Every year, they fly from Mexico to Canada and back.
They are also listed as an endangered species in Canada.
You guess it right, it's the monarch butterflies.
An Endangered Species
Citizen-driven Efforts
The data was collected over the .... iNaturalist
Data Analysis
Data Cleaning
The raw dataset contained 703,394 records spanning from the 1800s to 2025.
The first thing I noticed was that more than half the records (371,805)
had no recoverable date, meaning neither the eventDate field nor the year,
month, and day fields were populated.
As visible in the chart below, data before 1980 is extremely sparse, so I
restricted the analysis to 1980 onwards. The spike around 1999-2001 also
stood out. Digging into it, it turned out to be a bulk submission from
Monarch Watch, a dedicated monarch monitoring program based out of the
University of Kansas that has tracked the species since the early 1990s.
These records were aggregated annually and lacked day and month
information, making them unusable for phenological analysis.
After removing records with unrecoverable dates, missing coordinates,
duplicates, and pre-1980 observations, the dataset was reduced to 316,273
records. Given sparse coverage in the early years, the analysis was
further restricted to 2010 onwards, yielding a final dataset of 312,235
records, roughly 44% of the original.
Data Visualization
The maps below show monarch butterfly sightings across North America
colored by month. The full migration corridor is immediately visible, with
purple and blue dots cluster in Mexico during winter, greens push north
through spring, and reds and oranges spread across the US and Canada
through summer and fall. Comparing across periods, the density of
sightings increases noticeably over time, largely reflecting the growth of
iNaturalist as a platform rather than the actual monarch population.
2010-2015
2016-2020
2021-2025
all years
JanFebMarAprMayJunJulAugSepOctNovDec
Each dot represents a sighting, colored by month of observation.
Colors follow the seasonal cycle, with cool purples and blues in
winter, greens in spring, warm oranges and reds through summer and
early fall.
The animation below shows the monthly migration pattern across the
full dataset. Watch the monarchs move north through spring and return
south in the fall.
Statistical Analysis
To better understand the migration pattern, I focused on the Atlantic
coast corridor and traced the path monarchs take as they move north
through Georgia, the Carolinas, Virginia, and up through New England.
The table below shows the number of sightings per state per year. The
iNaturalist effect is immediately visible: records in every state jump
dramatically after 2017, reflecting platform growth rather than monarch
population changes.
State
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
Connecticut
3
7
6
1
21
7
43
75
92
225
220
362
338
213
325
493
Delaware
1
0
2
2
8
14
15
31
39
42
106
141
134
149
151
289
Georgia
8
27
17
13
25
5
17
43
59
126
199
253
387
286
236
633
Maine
4
1
35
18
36
10
48
151
112
352
202
347
506
208
484
714
Maryland
7
8
13
16
62
64
151
233
344
557
817
847
1034
571
627
1753
Massachusetts
2
9
25
18
50
54
70
198
300
760
529
928
915
667
937
1117
New Jersey
22
17
29
15
33
45
81
196
263
495
465
688
459
382
747
1526
New York
39
34
29
16
38
44
85
502
631
1378
1233
1649
1242
969
1336
2246
North Carolina
8
4
11
10
23
82
66
121
253
370
602
631
642
676
705
1683
Rhode Island
1
0
3
12
9
9
21
37
36
66
53
82
88
78
116
137
South Carolina
9
19
12
5
21
28
53
104
104
150
227
231
189
200
195
418
Virginia
15
13
40
13
41
62
126
220
409
585
1223
987
997
732
761
2074
Despite the uneven coverage, a clear pattern emerges when we look at early
arrival dates. For each state, I calculated the 5th percentile sighting
date across years with at least 100 records, effectively when monarchs
first consistently show up. Only years with at least 5 valid years of data
were included.
State
Avg Early Arrival
Valid Years
South Carolina
Mar 30
9
Georgia
Apr 17
7
North Carolina
May 07
9
Delaware
Jun 03
6
Virginia
Jun 11
10
Maryland
Jun 22
10
Connecticut
Jun 25
7
Massachusetts
Jun 25
9
New Jersey
Jun 26
9
New York
Jun 27
9
Maine
Jul 06
9
The results tell a clean story. South Carolina sees its first consistent
sightings around March 30, Georgia around April 17, and the signal moves
steadily northward through Virginia in June, reaching Maine by early July.
The map below visualizes this progression along the corridor. This is the
spring northward migration captured in citizen science data. While not
perfect, it is remarkably coherent given the limitations of the dataset.
On the path
Conclusions
Next Steps
References
๐ฆ
Fig. 1 - Arduino Setup
The moisture sensor (MS) connects the plant to the Arduino (A) via
a 3.3V voltage and outputs data on A0.
The phototransistor (P) connects to 5V on Arduino (A) through a
10Ω resistor. Data is read on the analog output A2.
The Arduino collects the sensors' data and sends it to the backend (a
Python FastAPI application) via
asynchronous serial communication. The data
is then processed and displayed in React on the frontend. I used a
combination of WebSockets and HTTP for communication across the stack. I
am fairly new to WebSockets, so it was
really cool implementing a two-way communication channel between backend
and frontend.
I used GPT-4o by OpenAI to handle
text-to-speech (TTS) communication and give
Lady Monstera her voice.
From Sensors to Speech
Seeing the plantโs internal state update in real time was absolutely
thrilling! I tracked water and light changes over 5-second intervals, and
let the plant comment on significant state changes. Here is how Lady
Monstera recently handled an abrupt dimming of the lights:
And here is how she reacted to being watered!
Notice how she records and updates the last
time she was watered - just another way to remind you how sassy she is,
and how she wonโt forgive you for forgetting to water her!
Reflections and Future Opportunities
I opted for
text-to-speech instead of realtime
speech. Realtime was very sensitive to ambient noise, difficult to
control and it quickly became too expensive to experiment with.
It would be fun to gamify the
experience, with multiple plants talking to each other, each with
distinct personalities based on their needs. Maybe even connect
hobbyist gardeners and let their plants gossip about their owners ๐คญ
Ultimately, I hope this project helps us get
closer to our houseplants and the
nature around us, reduce houseplant neglect and make interacting with
our green friends a little more entertaining and curiosity-driven.
Thank You, Fellow Hackers!
The
Waterloo Voice AI Hackathon
was my first real-world hackathon and I loved every minute of it. Coding
next to other hackers, exchanging ideas and simply absorbing the energy
and enthusiasm in the room has left an indelible mark on me. It has given
me the confidence to keep building, no matter how silly or small the
initial idea might seem.
As a rule of green thumb (yes, I am proud of this one ๐), don't
leaf your plants unattended for too long. Also, singing to them
improves their greenery and promotes luscious, beat-loving leaves!