mitchbeebe / new-birdle

New and Improved Birdle
https://play-birdle.com
MIT License
4 stars 0 forks source link

Birdle South America 4/11/24 error #6

Closed MonkeyMan2104 closed 5 months ago

MonkeyMan2104 commented 5 months ago

The bird selected for the South American birdle for 4/11/24 was not a South American bird. It was not in the list to guess due to this, making that birdle impossible. Screenshot (2)

image
MonkeyMan2104 commented 5 months ago

Asia birdle also had an African bird, but it was on the list, so that was still possible

mitchbeebe commented 5 months ago

Thanks for flagging! I'm not seeing the South American bird in the dropdown either. I'll take a look and get that fixed asap.

The Asia birdle appears to have some observations in Yemen, which counts as Asia and would explain why it was featured today.

colerouse12 commented 5 months ago

Hi Mitch! A group of 4 of us have been playing birdle daily for the last 6 months or so. We love the update but are having a few issues that we wanted to let you know about. Unfortunately these are more with the user experience and not necesarilly technical bugs so im not sure how to address making a fix for them.

We have been seeing a lot of birds on the North America and US Lower 48 daily games who are incredibly rare for those regions. It is frustrating as the habitat distribution maps have shown birds from South America, Africa, Asia, and all over the world. I understand completely that these birds may have been reported sightings, but to call them a 'North American Bird' would not be accurate.

I see that the API is pulling for all "species ever seen in a region." I read through the postman weblink and do not see any query parameters to find birds that are commonly seen in a region.

Two quick ideas: limiting the bird list for North America to the original 635 birds provided by allaboutbirds.com (I saw thats what you used for birdle v1). OR enlisting some help to go through each regional list and manually exclude those birds that are extreme outliers. This solution would require a little bit of monitoring as ebird updates these regional lists often "The results are usually updated every 10 seconds for locations, every day for larger regions"(https://api.ebird.org/v2/product/spplist/{{regionCode}}).

I hope you can see that this would make the game seem more 'fair' to players and limit guesses to a list that experienced birders would be familiar with in their particular region.

Much thanks for your wonderful website!

mitchbeebe commented 5 months ago

Hi! I appreciate the feedback. I agree, the current bird-region associations aren't perfect, especially when it's an observation from a sanctuary or someone logging an escapee that includes the species in the region.

The API you linked to is actually the same one I'm currently using (see here). The solution I'm thinking of is a bit more involved. It involves using this endpoint for recent observations in a region which offers parameters for excluding provisional sightings. I just need to vet that there are enough unique sightings in the 30 day window to provide a good sample size for the random daily bird.

The challenge is two-fold. First, the current continental regions are considered "custom" and aren't supported, so we'll need to first collect all the countries, then collect all the recent observations, and then update the bird-region associations. Second, this would need to be scheduled to run, say, every month in the background, so it doesn't impact site performance, which requires some additional server setup.

Thanks again for the ideas. It's definitely something I think should be worked on, just requires some time.

mitchbeebe commented 5 months ago

The PR above closes this issue by changing the endpoint used to associate birds with regions from GET Species List for a Region to GET Recent observations in a region.

What this means is the regional daily bird is drawn from the population of recently observed species in a region rather than any species ever seen in the region. Exotic observations–defined as naturalized, provisional, or escapee species–are also excluded in an effort to limit the random daily bird to native species.

The bird-region associations will change with temporal migrations as they are set to update every week, collecting the prior 30 days of observed species on eBird. I can revisit this if this proves to be an insufficient sample size and we see too many repeat birds.