Wild Achievements

That’s what I thought, but apparently there should be something else, or it’s just another part that bugged, which would be sad.

It would be nice to have more info. It looks like it is a pat on the back, which is nice. But many of the “achievements” say only keep observing and don’t explain what they are. I like to focus on my own goals, so having the info available would make Wild Achievements more interesting to me. Also, the ones that do explain what they are, say this number of that number, which is confusing. It looks very interesting, though. Maybe I would like it more if I didn’t have so few observations.

I think it has to do with animals that use sonar; I know bats and dolphins do, and it seems likely that a burrowing animal would as well.

1 Like

I have multiple dolphin observations, so I choose to think it’s a bug, unless there’s a requirement like “see them all in a week”, it’s sad we can’t see descriptions of “casual” achievements.

1 Like

Thanks for the feedback. I’ll look into the problems you guys reported, but don’t expect it to be fixed tomorrow :sweat_smile:

About 2 weeks ago I got around to fixing a bunch of the initial issues, hope you guys noticed improvements. I’m still (slowly) in the process of trying to fix the “View Observations” feature to give more relevant results. Once that is done I’ll look into the other issues.

Regarding the Swimming/Flying/Digging mammals achievement, its been a problematic one to implement. I should probably just change the way it’s calculated to be more straightforward. (Currently it count how many times you’ve observed a set of flying + swimming + digging mammals, for example if you’ve observed 3 whales, 2 bats and 1 mole then it counts as 1, but if it was 5 moles then the count would be 2 due to the bats.)


Does it count whales only and not dolphins?

That explanation really confused me. But let me see if I have it right.

“3 whales, 2 bats and 1 mole” = 1 complete set (whale + bat + mole) and two incomplete sets (whale + bat) and (whale only)

“3 whales, 2 bats and 5 moles” = 2 complete sets of (whale + bat + mole) plus three incomplete sets (whale + mole) and (mole only)

In other words, whichever animal type has the smallest number determines the count for the whole achievement.

1 Like

Yeah, that’s how I got it too.

Today I figured out exactly why. I’ll reply on Henry’s message below with details …

The paging needs adjusting. I determined by looking at the Network tab in Developer Console while running a search that you advance the d2 every 10 pages x 200 observations per page to the end date of the 10th page. But this causes some observations to be read twice! You need to adjust the number of observations that you read by the number that end up in the overlap.

For example, for me on this date, page 10 ends on an observation for 2021-09-05 (https://www.inaturalist.org/observations/93739655) but that is also included as the first observation on page 1 after advancing d2 to that date, i.e. d2=2021-09-05. Every 2000 observations read, these errors in counting accumulate, so that by the time it gets to the 40th GET, which is page=10 with d2=2019-02-18, it is only asking for per_page=99, because on the first request, it read that I have 7899 eligible observations (i.e. 39 * 200 = 7800 + 99 = 7899).

I did not go back and check every 10 page boundary to see how many observations were lost at each boundary, but I did go to the very last page and change per_page=99 to per_page=200, then re-issued the last API request by hand:


And voila, my missing observations, 14 in all:

In particular, I had just uploaded the the last one shown above for one of my achievements, and was surprised it was not included. That led to the above analysis where I spotted the problem.

I did not do an in-depth analysis of the code behind it, but from a quick skim of it, it seems this explanation is consistent with what I saw.

Old geeser shows completely wrong observations for me, 7 for some reason, from 2y ago to older ones, while it should be only 10+y ago, which I have enough.

I spent some time puzzling over that, too. Here’s what I think is going on …

It processes 200 of your Anatidae at a time, newest to oldest observed. Each time it finds one older than the years counted so far, it returns the difference in years between the one it found and the maximum year found so far (where the starting date is today).

Now, I think what happens next is those are getting accumulated by the main loop into a counter until they reach the goal of 10, but I must confess I broke off studying what the rest of the code does right there.

In my case, I had five observations, one each in 2022, 2021, 2020, 2018, and 2017. So 1 + 1 + 1 + 2 + 1 = 6, so I hadn’t yet reached the goal. The nice thing about counting them this way is seeing a cross section across the years of the different individuals I found, rather than just the oldest ones. But it shows as 50% there (5/10) which corresponds to the number of observations found, not the score which is only referred to internally to see if the goal has been reached yet. At least, without having read all of the code, that’s what I think is going on.

I had 2 3yo obs when I first did the Wild Achievements and it showed as 3/10. I then added a couple of 17yo obs, and later still 6 10yo obs. It is still saying 3/10 and if I click on “view observations” it just shows one of the 3yo obs.

1 Like

That’s consistent with my findings. If two are 3 years old, only one will be selected as a candidate, and it will count for 3 points. No others will count at all until you have enough extra observations older than the ones you want to count uploaded - enough to make up for the lost observations from the overlapping pages (which could be as many as 199 every 2000 observations, but in practice will probably be considerably less - still, enough for some people to be a significant bother). I’m hoping the author will take note and fix it soon. I have other priorities that prevent me from working on a fix right now.

edit: I did, however, just file some comments on GitHub so my insights here aren’t missed.