How many people could get free OSMF Active Contributor membership? (see inside!)

I wanted to know how many people could get free OSMF membership, so I made a tool to calculate it.

If you have edited OSM for ≥42 days of the last year, you’re entitled to free membership (or assoc. membership) of the OpenStreetMap Foundation under the Active Contributor Programme¹. Tools like Pascal Neis’ How Did You Contribute (hdyc) show if you’re entitled.

But then I asked myself: How many people could get it? There are currently 2,300 OSMF members. How many OSMF members could we have!

So I made a little programme that scans an OSM history file, and calculates how many editing days every user has, and save that to a big CSV file. :slightly_smiling_face: It shows if someone is over the 42 days or not, as well how many editing days in total

You could use this on the full planet file to get the list of 10,000 OSMers who are entitled to OSMF free membership.

You can also use this on a region specific history file from Geofabrik to get a smaller list of users for just your users, but that’ll only have a subset.

Full history files can be downloaded from the OSM planet service or per region from the Geofabrik OSM Download Service (for OSM users).

:scroll: Source code amandasaurus/osm-num-active-contributors
Annoucement on

– ⓐⓜⓐⓝⓓⓐ :sunflower:


Note that there is some double counting. Though probably not too much.

For example my bot account would be counted among this 10 000 while not being eligible.

Any reason you didn’t simply run something against the changeset dump?

I’ve done this for many different metrics, for example ‘hours mapped’ and have not really felt the need to go to the history dump. I did lots of stuff leading up to the licence change on history files and it was quite painful.

Enquiring minds now wonder what the SQL for “have contributed something on at least 42 calendar days over the last year” would be to run on a ChangesetMD database…

True, but that’s probably <100.

Er… Cause I forgot? I’ve been often parsing OSM PBF files, and I just thought of using the history file first. By parsing a history file, you can run this for regions, rather than just the whole planet.

Well go on then! :slightly_smiling_face:

Just some random example (SQL) code (and no claims that it is particularly elegant or whatever)

with mapping_days as (with days as (select distinct user_id, date_trunc('day', closed_at) as day from osm_changeset) select user_id, count(*) as day_count from days group by user_id) select width_bucket(day_count, 1, 7000, 7000) as buckets, count(*) from mapping_days group by buckets order by buckets;

will give you a histogram of mapping days per contributor (over the whole history of OSM), restricting the dates to the last 12 months is left as an exercise for the reader :slight_smile: .


My instance of ChangesetMD geocodes the changesets (roughly, from the bounding box centroid, but from a practical pov good enough), see SimonPoole's Diary | How large are our national contributor communities and how are they developing? | OpenStreetMap from way back.

1 Like