SOTA Unwrapped 2025

Hello all,

I have put together a Streamlit app that looks at what an activator has gotten over the year, and summarises it in a fun way, which was heavily inspired by Spotify Wrapped.

I have made it get a few fun statistics that at the end summarises it quite nicely into a card that you can share, it is still in progress so I am open to other statistics that others may be interested in. :slight_smile: I have tried to have a wide variety but I know some activators take certain pleasures in specific achievements (S2S points, completes etc)

V2 will hopefully implement some of these features, and will also have a “chaser” mode to see chaser statistics and achievements from 2025.

SOTA Unwrapped 2025 · Streamlit

I appreciate any constructive feedback, do bear in mind it will be quite slow to load if you have done 100+ activations this year as I have added in rate-limiting to not overwhelm the SOTA APIs :grin:

Cheers,

Jared G5JFJ

25 Likes

I guess I won’t push my version in the next day or so then.

2 Likes

This was good fun. Thanks for making and sharing!

2 Likes

Yup, but was worth the wait. Good job!

6 Likes

You know you want to do it…

1 Like

Great fun :grinning_face:
Thanks for your efforts!!

73, mx,
Roman

1 Like

That’s neat. Just to be picky a few comments:

  • Too many exclamation marks! It’s one of my pet hates! Sorry!
  • Is the vertical gain just the sum of all the summit heights? If so then a bit meaningless unless you start at sea level every time. I’d rename it.
  • I’d love to see my S2S stats in there as that’s a key part of SOTA for me.
1 Like

Thanks Jared, looks good even though my data is a bit lacklustre and even lower that I thought…. (I didn’t manage a single GM activation). I would agree that S2S would be a nice addition. 73 Paul

1 Like

Thanks for this, it turns out I’ve done more than I thought.

Andy

MM7MOX

1 Like

Great fun, thanks Jared!

Definitely my favourite unwrapped of the year :smiley:

1 Like

A nice app! Thanks for sharing.

You could download the summit list csv from sotadata and use that to look up summit height to save multiple API queries.

A method for total height could be downloading a gpx track from the summit and computing the elevation from that. Although this is back to a query per summit, and relies on tracks being added to sotamaps. I do have a repo with all the gpx routes from a few months ago as I thought sotamaps was going to be shutdown, so the data could be computed in advance. However, your method is the same as the sotadata’s badges.

I’m sure you know but there’s an end point for S2S data:

https://api-db2.sota.org.uk/logs/s2s/' + userId + '/' + year + '/0 or this one depending on what you want to do https://api-db2.sota.org.uk/logs/s2s/{userId}/9999/0.

Plus maybe chasers want some stats:

https://api-db2.sota.org.uk/logs/chaser/{userId}/0/1

You have db access on your side so can do even more detailed stats that would be API intensive otherwise!

3 Likes

Cheers all for the feedback, it is helpful and will help form what I plan to do next.

Based on feedback and my thoughts, I will look at (in priority order):

  • Performance tweaks, get summit list CSV and do the lookup there, rather than an API call per summit. Also change wording to make intent clearer, and lose some exclamation marks!
  • Look at adding a slide that incorporates some S2S details for the year
  • Chaser unwrapped
  • Look at favourite modes, distribution of QSOs per mode.
  • Make the app more stable, someone shared an error they were getting which I could not reproduce, but could incorporate retries/longer timeout and see if it makes the app run smoother.
  • Look into other animations/improve design
4 Likes

Thanks for the helpful hints Alex, must shout out I did look at some of your Streamlit repos and used the Callsign/ID conversion from sotl.as that you use. I’ll definitely look at getting the CSV instead as this will make the app more smoother :slight_smile:

1 Like

It’d be great to see it, and the approach you made behind it.

NIce app Jared ! @G5JFJ

My only complaint is that I’ve used 40m more than 10m this year :joy:

2 Likes

I have implemented some performance tweaks, including local callsign lookup which incidentally should make the app more stable.

Also added in S2S details, modes and Chaser Unwrapped.

Really enjoyed making this, though if I get chance to do this next year I would like to try a different technology stack.

8 Likes

As with all software there will be a wrinkle when the users try it.

The SOTA database gets a bit confused when you mix GHZ and MHZ. As a result your app sees my top band as 2m but top mode as SSB

I just ran 2025 off my database and it looks like this.

Band Mode Band_QSOs
70MHz FM 2
2.3GHz SSB 287
2.3GHz FM 1
144MHz FM 20

It would have been nice if the database was consistent with MHz but it is one of the odd things that Microwavers aware of. Just putting a LEFT(band,len(band)-3) sort of statement lands the 2.3GHz Band as a non amateur band just above Top Band.

BTW I also split 2.3GHz in the comments field Pt2Pt and QO-100, there is a bit of a difference in QSO distance.

Fun stuff !

Since microwavers are a minority interest group I wouldn’t put too much efforts into fixing the issue.

73 de Andrew G4VFL

2 Likes

In case people haven’t noticed.

3 Likes

It tells me that 96.16858237547893% of my chaser QSOs were S2S.

1 Like

Very useful that is too. Thanks @VK3ARR

1 Like