Temperature stability in Central America

Once, a friend of mine wondered if there was a place in the world where the temperature stays more or less the same throughout the year. “Well, check out the areas around the equator”, I said and made this map. Although yes, the Caribbean and Central America are not the closest areas to the equator, I still think the stability of air temperature in this region is absolutely astonishing.

For this map, I used the data from WMO, respective Wikipedia pages and a bit of Weather Spark.

GeoGuessr API Guide

To work on GeoGuessr maps, I created an app that would pull in data from the game using the game’s API. I had to use my browser’s console to find out what API calls the website actually makes as there is no publically accessible documentation on it.

So here’s my unofficial guide for those who wish to use the GeoGuessr API.

Notes: Most calls start with “geoguessr.com/api/” unless specified. For some of the calls, you need to be logged in, for others you don’t. The latter are indicated with italics. As I understand, there’re 2 versions of the API currently in use, 3 and 4. It is possible that in the near future a complete transition to v4 will happen and the old calls will be deprecated.

  1. v4/feed/private – entries from the “Activities” page of your profile, including game tokens. Variables: count, page.
  2. v3/profiles – info of the currently logged-in user.
  3. v4/notifications – notifications of the currently logged-in user. Returns an empty array if all the notifications have been read. Variables: count, page.
  4. v3/social/friends – friends of the currently logged-in user. Presumably, returns an empty array if the user doesn’t have friends. Variables: count, page.
  5. v3/social/friends/summary – same as the previous one but adds friends’ requests and recommendations.
  6. v3/social/friendships – shorter information on the friends of the currently logged-in user.
  7. v3/profiles/achievements – achievements of the currently logged-in user.
  8. v4/objectives – objectives of the currently logged-in user. You can also add the /unclaimed endpoint to this address.
  9. v3/social/maps/browse/personalized – personalised map for the currently logged-in user.
  10. v3/social/badges/unclaimed – unclaimed badges of the currently logged-in user.
  11. v3/social/events/unfinishedgames – unfinished games of the currently logged-in user, including the guesses, but not the rounds themselves.
  12. v3/profiles/maps – maps of the currently logged-in user (“My Maps” page).
  13. v3/likes – liked maps of the currently logged-in user (“Liked Maps” page). Variables: count, page.
  14. v4/stats/me – stats of the currently logged-in user but not what you see on your profile page.
  15. v3/profiles/stats – stats of the currently logged-in user which are displayed on the profile page.
  16. v3/subscriptions – subscriptions of the currently logged-in user.
  17. v3/explorer – details on the explorer mode of the currently logged-in user.
  18. v3/accounts/signin – signs you in, your credentials must be attached as a JSON payload in the format {email: “XXXXXX@blah.com”, password: “XXXXXX”}. You might need to properly serialise JSON with your credentials, a simple string that looked like JSON didn’t do it for me.
  19. v3/accounts/signout – signs you out. Be careful, no payload is required for this operation so it signs you out as soon as you reach the endpoint.
  20. v4/trophies/<user_ID_here> – trophies of any user. If you add /case at the end, it will show only the trophies you selected for your trophy case.
  21. v3/games/<game_token_here> – insert a game token instead of the X’s to gather the information about a certain game, including its type, rounds, score, etc. Any game ever played by whatever user can be accessed with this call, provided you have the token.
  22. v3/social/maps/browse/popular/random – a random popular map.
  23. v3/challenges/daily-challenges/today OR v3/challenges/daily-challenges/previous – today’s or previous daily challenges info.
  24. v3/challenges/<challenge_token_here> – insert a challenge token instead of the X’s to gather the information about a certain challenge.
  25. v4/seasons/active/stats – stats of the current season.
  26. v3/experiments – list of GeoGuessr experiments.
  27. v3/competitions – list of GeoGuessr competitions.
  28. maps/(map name or map id) – info on maps, works with map names for official maps like “world” or “famous-places”.
  29. https://game-server.geoguessr.com/api/battle-royale/<game_ID_here> – allows seeing the stats of any BR game, provided you have the game ID.
  30. https://game-server.geoguessr.com/api/lobby/<game_ID_here> – lobby of the game, including users (even their ids and stats), type of the game, etc.
  31. https://www.geoguessr.com/api/v4/seasons/game/BattleRoyaleCountries – info valid for the current season. “BattleRoyaleCountries” can be substituted with “BattleRoyalDistance” or “BattleRoyaleDuels” to get the exact same result.
  32. https://game-server.geoguessr.com/api/duels/<duel_game_ID_here>- info on your duel game.

For some of the calls, I’m not entirely certain what the response should be as in my case they return an empty array. Additionally, I haven’t played most of the game modes yet because I mostly play country streak so my expertise might not be so deep and some of my comments might not be as extensive.

Enjoy the guide and if in the future you create anything using Geoguessr API, feel free to share your work! I’ll be sharing my app as soon as I build a decent GUI.


  1. New game
  2. Countdown
  3. Division upgrade
  4. Division downgrade
  5. Round 1
  6. Round 2
  7. Round 3
  8. Round 4
  9. Multiple damage
  10. Healing round
  11. Churchbell
  12. Game lost
  13. Game won
  14. Healing up
  15. Count healing
  16. Loadig round
  17. Loading duel round
  18. Loading duel healing round
  19. Score tie
  20. Damage up
  21. Damage crush
  22. Counting damage
  23. Slide in rows
  24. Slide in

Purchasing power in Russia based on potatoes

Some time ago we looked at the nominal monthly income in Russian regions but of course, the picture would be incomplete if we didn’t look at the actual difference in purchasing power. We see that this difference is not as striking as the income one, however, you can easily see the divide between the Western part of the country and basically everywhere else (apart from Khanty-Mansi and Yamalo-Nenets autonomous okrugs).

Here’s the source. Contact me here if you want to know more or hear a lame joke.

Ukrainian Independence Referendum

In 1991, the Ukrainians clearly voted to leave the USSR and become an independent country. The referendum passed with 90.32% of the voters saying “yes, I approve” to the declaration of Ukrainian independence, which stated that continuing a millennium-old tradition of statehood in Ukraine, the country was to become independent as of now (then) and that its territory is indivisible and untouchable.

As shown on the second map, even the regions with significant Russian population decided that they didn’t want to be part of Russia anymore. That is something that this old man refuses to understand. Stop living in 1922, Volodya, your time has passed, leave Ukraine alone and, preferably, Russia too.

Contact me here if you have an idea for another map supporting Ukraine (or any other map for that matter).

Russian regions

In light of recent events, I thought it might be a good idea to make a map with an overview of Russian regions. There are 6 types of subdivisions in Russia:

  1. Republics – nominally autonomous, with its own language and constitution, created around local non-Russian ethnicities in these regions but when it comes to international affairs are basically parts of Russia
  2. Oblasts – your normal region
  3. Krais – your normal region but when new regions were created in the USSR all krais were supposed to have autonomous regions within them, something oblasts couldn’t do. Over time the situation changed, but the names remained the same.
  4. Autnomous okrugs – another form of ethnicity-based subdivisions in Russia but without official regional languages and with an option to become a part of other regions. Among all the autonomous okrugs, currently, only Chukotka is not a part of any other region.
  5. Autonomous oblast – there’s only one of them, which was created by Stalin in the 1920s to send all the Jews there. Never worked and no one knows why it is still there. But hey, they are still trying to preserve Yiddish there!
  6. Federal cities – biggest cities, i.e. Moscow and St. Petersburg

In the first decade of the 21st century, a few autonomous okrugs were fully incorporated into respective oblasts losing their subject status brining the current number of the federal subjects to 83.

As usual, you can contact me here for this and other maps in better resolution, to suggest new maps and for other matters.

Apprehended anti-war protesters in Russia

This invasion is absolutely absurd. This man is a paranoid senile maniac. I stand with Ukraine. I detest everything about this Russian government. I adore those Russians who risk being arrested and go out on the streets to protest these appalling actions of the Soviet Russian dictatorship. I don’t want to take the focus off Ukraine but I’m glad to see that there are Russians who see the situation for what it is – Russian imperialism.

Here’s the source. The data was collected by a human rights organisation that investigates politically motivated arrests, layoffs, etc. and helps those affected by it. If you want to help OVD-News, you can donate money on their website but don’t forget, the Ukrainians need help too and even more. Stay strong, Ukraine, he will fall one day.

Top corporate tax rates around the world

Taxation usually comprises a large chunk of a government’s budget and a sizeable part of it comes from corporate income tax. Attitudes toward taxation differ per country with some preferring lower rates to entice businesses and some preferring higher rates. Nevertheless, even when tax rates are pretty high, companies in some countries manage to avoid paying taxes altogether maximising their profit and decreasing the positive impact they might have on society (looking at you, Jeff). So although it is undoubtedly interesting to get an overview of top corporate tax rates worldwide, it does not mean that companies in these countries actually pay taxes based on these rates.

Some values on the map do not represent the real-world situation fully: Bahrain doesn’t have a general corporate income tax, but they do tax oil companies at a rate that can be as high as 46%; similar applies to the UAE, where each of the 7 emirates is allowed to levy their own corporate income tax up to 55%, however, in practice this tax is only applied to foreign banks and petroleum companies; on Comoros, the rate of 50% applies only to “public industrial and commercial enterprises or those where the state or certain public institutions are participants … if their turnover exceeds 500 million Comorian francs”. The normal tax rate is 35%.

Here you can find the source and here you can read about their methodology.

Three points for a win in European leagues

For us, football fans in 2022, 3 points per win sounds like the norm and for someone my age, it has always been so. However, before the mid-90s, only a handful of leagues in Europe used this system. Before it, only 2 points were awarded per win. Proposed by Jimmy Hill, thу 3-points system was first introduced in England in 1981 but up until the 1994 World Cup, it didn’t gather much support. Only when it proved successful in this tournament, other countries followed suit. This system increased the value of a victory compared to a draw but did it really decrease the number of draws? I don’t know, I will research it and make a new map for all of us to see.

To make this map, I used this Wikipedia article and some extra sources I had to dig up to gather data on, for instance, Gibraltar. If you want, you can send me some compliments using the contact form.

Regional poverty in Russia

Russia likes to present itself as a developed nation at the forefront of global progress, however, when it comes to income, average numbers in even its richest regions don’t even get close to minimum salary in Western Europe. Of course, the costs of living in Russia are much lower than in “western” countries. Think about cheaper real estate, electricity, gas, public transport and internet, free healthcare and an option to get a university education for free. However, supermarket prices differ but not as much as the salaries and other things essential for modern life such as electronics cost more or less the same.

Maybe the title of this map is a bit harsh and maybe it’s not really poverty, but when in such a big, rich country which produced one of the greatest artists and scientists in the world half of the population has to survive on less than 400€ a month, I feel like certain questions should be raised.

You can contact me here. And of course, here’s the source.