Disc Golf Tagging in OpenStreetMap
A reference for mappers, and a citation source for the OSM community: the tagging scheme Planet DiscGolf follows, and the verified statistics behind it. Every number below was checked against the OpenStreetMap API, Overpass, and taginfo on 2026-07-02 — see Sources & method.
At last build, Planet DiscGolf tracked 2590 disc golf courses from this same OpenStreetMap dataset.
The scheme, in short
One course = one OSM object. Interior features use a dedicated namespace. This mirrors
how golf is tagged (leisure=golf_course + golf=*) — the same model,
applied to disc golf.
| Course | leisure=disc_golf_course + sport=disc_golf
+ name=*, on one node placed at the course entrance or
first tee — near parking, where a router should send you. |
|---|---|
| Tee | disc_golf=tee (node); optional surface=*,
colour=* |
| Basket | disc_golf=basket (node) |
| Hole | disc_golf=hole (way, tee→basket); carries
par=* and dist=* (bare meters); ref=* only for
single-layout courses |
| Fairway | disc_golf=fairway (area), where mapped |
| Mando / drop zone | disc_golf=mando /
disc_golf=drop_zone (node) |
Don't: leisure=pitch or leisure=track for the
course; sport=disc_golf on tees, baskets or holes (the course node already
states the sport); golf=* keys; name=* on individual holes; an
invented leisure=park boundary drawn just to carry the course tags.
Multi-layout courses
Same holes, different tee positions or hole counts (short 9 vs. full 18, seasonal
layouts): use one type=disc_golf_layout relation per configuration. Hole number
comes from the relation member's position — the first role=hole way is hole 1 —
never from ref on the way itself, since the same way can be a different hole
number in a different layout. The course node is a mandatory role=course member.
DiscGolfPark Běchovice (Prague) has three type=disc_golf_layout
relations sharing one course node — the reference implementation.
See it on the live map or its course page.
The scheme has also been adopted independently: Thornbury Park Disc Golf (Pennsylvania, US) uses the same relation structure without any involvement from us.
The numbers
Totals (taginfo,
2026-07-02): 2,674
objects tagged leisure=disc_golf_course
(1,648 nodes /
849 ways /
177 relations);
3,773 objects tagged
sport=disc_golf. About 18.5% of courses lack the sport tag entirely — a gap
that's growing since the iD editor stopped auto-adding it in July 2025 (see the renderer
matrix below). Beyond the course feature itself, roughly
31,106
disc_golf=tee/basket/hole micro-features are mapped
(10,181 tees /
10,474 baskets /
10,451 holes).
Where sport=disc_golf actually points
A full Overpass dump of every sport=disc_golf object shows only 57.8% of it
is the course feature itself. This is why a renderer keying on the sport tag alone shows
noise — see the renderer matrix below.
| Carrier | Count | Share | Assessment |
|---|---|---|---|
| leisure=disc_golf_course | 2,181 | 57.8% | the course feature — correct |
| leisure=pitch | 319 | 8.5% | fairways mis-mapped as pitches |
| disc_golf=hole | 314 | 8.3% | redundant — the course node already states the sport |
| disc_golf=basket | 283 | 7.5% | redundant |
| disc_golf=tee | 234 | 6.2% | redundant |
| no physical carrier tag | 146 | 3.9% | a floating sport tag on nothing |
| leisure=track | 86 | 2.3% | mistagged course or fairway |
| golf=pin / golf=green | 46 | 1.2% | the wrong sport's namespace |
| tourism=information | 37 | 1.0% | info boards carrying course tags |
| other (park, sports_centre, grass…) | 127 | 3.4% | mixed carriers, case-by-case |
Geographic distribution
leisure=disc_golf_course by country (Overpass, 2026-07-02) — a
curated selection of major markets, not exhaustive:
| Country | Courses |
|---|---|
| United States | 1,376 |
| Finland | 340 |
| Sweden | 167 |
| Canada | 121 |
| Norway | 106 |
| Germany | 95 |
| Estonia | 86 |
| Czechia | 76 |
| Australia | 41 |
| Denmark | 38 |
| France | 37 |
| Austria | 18 |
| New Zealand | 17 |
| Netherlands | 15 |
| Switzerland | 15 |
| United Kingdom | 12 |
| Japan | 8 |
| Ireland | 0 |
The top 5 countries hold roughly 79% of all mapped courses.
Mistagging patterns found
| Pattern | Count | Note |
|---|---|---|
| Course name is a hole/basket label (e.g. "1", "Hull 1") | 85 | really a mistagged tee, basket or hole — not a distinct course |
| Course tags placed on a tourism=information board | 17 | should sit on a dedicated course point; the board stays tourism=information only |
| No name at all | 753 | 28% of all courses — often recoverable from on-site signage |
| Duplicate-flagged courses (same name within 500m) | 151 | name+proximity dedup flag; see docs/OSM_CLEANUP_AND_TAGGING_PROPOSAL.md C1 for the cluster-level audit (64 clusters, 86 surplus objects) — a different, coarser count from a separate pass |
Renderer & editor support
| Consumer | Support | Mechanism | Source | Note |
|---|---|---|---|---|
| OsmAnd | Renders + searchable | sport=disc_golf only — misses leisure-only courses | OsmAnd-resources commit 2e54c440 (Jan 2024) | basket icon from zoom 15; applies PR #1028 |
| Organic Maps | None | type dropped by the map generator | issue #1917 comment (Apr 2023) | not displayed, not searchable |
| CoMaps | None | same gap — Organic Maps fork | comaps#2629 (open, Nov 2025) | open request lists disc_golf_course explicitly |
| OSM Carto (osm.org default "Standard" layer) | Not rendered | no disc golf case in the stylesheet yet | issue #3766 (open, reopened 2022) | blockers: mapper consensus, node/area split, a non-basket icon |
| iD editor | Presets for course/tee/basket/hole | leisure=disc_golf_course — no longer auto-adds the sport tag | id-tagging-schema PR #1639 (Jul 2025) | tee and basket presets still share one icon (#2246, open) |
| JOSM | No built-in preset | community preset (2018) + map style (2024) | Styles/DiscGolfCourse (Negreheb, 2024) | the 2018 external preset still pushes a deprecated relation type |
| Vespucci | Full default preset | leisure=disc_golf_course + disc_golf=tee/basket/hole | beautified-JOSM-preset commit f057007c (Sep 2023) | tee preset currently allows area geometry (reported) |
| StreetComplete | Partial, via generic quests | leisure=disc_golf_course in fee and opening-hours quests | PR #6357 (Jun 2025) | no dedicated disc golf quest yet |
Verified examples
Well-tagged courses
- Tantolunden DiscGolfPark (Sweden) — Textbook tagging — leisure and sport tags, fee/access, opening hours, website, and 7/8/7 tees, baskets and holes mapped. Map · Course page · OSM
- Ummeljoen Frisbeegolfrata (Finland) — The richest metadata in the dataset — full address, operator, start date, website, and complete 9/9/9 infrastructure. Map · Course page · OSM
- Valtu discgolfipark (Estonia) — Complete from its very first upload — every core tag present at version 1, with 20 tees, 16 baskets and 18 holes. Map · Course page · OSM
- DiscGolfPark Chodov (Czechia) — Area mapping done right — full tagging on a way, with 9/9/9 tees, baskets and holes, proving the scheme works on areas too. Map · Course page · OSM
Common mistakes, in the wild
- "Håll 1", Sweden — Tagged leisure=disc_golf_course, but the name is a hole label — this is really a basket or hole, not a separate course. OSM
- Fairway "3", Plzeň-Homolka, Czechia — A fairway drawn as leisure=pitch + sport=disc_golf and named just "3" — renders as a spurious extra course in sport-tag-only apps. OSM
- Praha-Čakovice info board, Czechia — Full course tags placed on a tourism=information board node instead of a dedicated course point — one course, mapped across three separate objects. OSM
- DiscGolfPark Běchovice park boundary, Czechia — An invented leisure=park boundary (farmland until 2015) carrying the course's sport tag and name — not a verifiable park, and the reason some apps show this course via the park instead of the course node. OSM
Sources & method
Statistics on this page come from three sources, each cross-checked: the taginfo API for totals, full Overpass API dumps for carrier and geographic breakdowns, and individual OSM API lookups to verify every example cited by hand. All figures are a point-in-time snapshot from 2026-07-02.
- OSM wiki: Disc golf
- Tag:leisure=disc_golf_course
- Proposal:Disc_golf_course_2025 (current draft)
- Proposal:Disc_golf_course (2011, never voted)
- Proposal:Disc_golf (2009, sport=disc_golf, archived)
- RFC discussion thread
Disc golf tagging FAQ
Which tags does a disc golf course need?
leisure=disc_golf_course plus sport=disc_golf and a name, on one node placed at the course entrance or first tee. That alone is enough to appear on every OSM-based disc golf map.
Should a course be a node or an area?
A node is preferred — it doubles as the point a router navigates to. An area is fine where the boundary is verifiable on the ground, but never tag both a node and an area for the same course.
Why doesn't my course show up in OsmAnd?
OsmAnd currently renders disc golf only via the sport=disc_golf tag, not leisure=disc_golf_course alone. Add sport=disc_golf to the course node — see the tagging statistics on this page for how common this gap is.
How do I map a course with multiple layouts (tee/basket variants)?
Use one type=disc_golf_layout relation per playable configuration, with the hole ways in playing order and the course node as a role=course member. See the multi-layout section on this page.
Open the map Review OSM data How to contribute
Want to edit OSM directly? openstreetmap.org/edit.