Import/OpenGolf US 2026
< Import
OSM Import Plan: OpenGolf US Golf Courses
> For submission to: wiki.openstreetmap.org/wiki/Import/OpenGolf_US_2026
Summary
Import structured golf course attributes (type, holes, par, per-hole par) for 15,667 US golf courses from the OpenGolfAPI dataset into OpenStreetMap.
This is a tag enrichment import, not a geometry import. We are adding tags to existing OSM features, not creating new features (except where a known golf course has no OSM representation at all).
Data Source
- Provider: OpenGolfAPI (opengolfapi.org)
- License: ODbL 1.0 (compatible with OSM)
- Dataset: 15,667 US golf courses
- Original sources: OpenStreetMap (course discovery), public course websites (scorecard data), NOAA (climate), public course websites (phone, contact)
- Collection date: March-April 2026
- Quality: All data verified against at least one source; coordinates cross-referenced with OSM
Scope
Tags being added
Only to features tagged leisure=golf_course:
| Tag | Coverage | Notes |
|---|---|---|
golf:holes |
93% of courses | 9 or 18 |
golf:par |
90% of courses | Course total par |
golf:type |
93% of courses | public/private/municipal/resort |
golf:hole:N:par |
90% of courses | Per-hole par (N=1-18) |
phone |
53% of courses | Only where not already tagged |
website |
84% of courses | Only where not already tagged |
start_date |
89% of courses | Only where not already tagged |
What will NOT be imported
- No geometry changes (boundaries, nodes, relations)
- No deletion of existing tags
- No overwriting of existing values (our data fills gaps only)
- No commercial data (booking URLs, ratings, pricing)
Methodology
Step 1: Matching
Each OpenGolf course is matched to an existing OSM feature using:
- OSM ID match — 100% of our courses originated from OSM Overpass queries, so we have the original
osm_id. This is the primary match key. - Coordinate proximity — verify the matched feature is within 500m of our coordinates (catches cases where OSM features were split/merged since our crawl).
- Name similarity — fuzzy match as tiebreaker if multiple features at same location.
Courses that don't match an existing OSM feature are flagged for manual review, not auto-imported.
Step 2: Conflation Rules
For each matched feature:
| Scenario | Action |
|---|---|
| Tag doesn't exist in OSM | Add our value |
| Tag already exists in OSM | Keep OSM value (never overwrite) |
| Our value is null/empty | Skip (don't add empty tags) |
| Feature is a relation | Add tags to relation, not members |
| Feature was deleted since crawl | Skip |
Step 3: Changeset Structure
- Import account:
opengolf_import(dedicated, clearly identified) - Changeset size: Maximum 5,000 features per changeset
- Changeset tags:
source=OpenGolf import=OpenGolf_US_2026 website=https://opengolfapi.org description=Adding golf course attributes (type, holes, par) from OpenGolf dataset
Step 4: Review Process
- Generate full import as
.osc(OSM change) files - Upload sample changeset (100 courses in one state) for community review
- Wait minimum 2 weeks for feedback
- Address all feedback before proceeding
- Import remaining states in batches, one per day
Quality Assurance
Pre-import validation
- Every course coordinate verified against OSM within 500m
- Par values validated: hole par in {3, 4, 5, 6}, total par in range 27-80
- Course type validated against enum
- Phone numbers validated as 10+ digits
- Website URLs validated as responding HTTP 200
Post-import monitoring
- Check OSM changeset discussion for issues
- Monitor OSM Notes created near imported features
- Respond to any community concerns within 24 hours
- Revert any problematic changesets immediately if requested
Tools
- JOSM — for manual review of sample changesets
- osmium — for generating
.oscchange files - Custom script — TypeScript script to generate changesets from Supabase data
Timeline
| Week | Action |
|---|---|
| 1 | Publish proposal on OSM wiki, post to imports@ mailing list |
| 2-3 | Community feedback period |
| 3 | Sample import (100 courses, 1 state) for review |
| 4 | Address feedback, revise if needed |
| 5-6 | Full import (50 states, 1 per day) |
| 7+ | Monitor, respond to feedback, fix issues |
Contact
- Import lead: Julian Pretto
- OSM username: opengolf_import
- Email: hello@opengolfapi.org
- GitHub: github.com/opengolfapi
- Website: opengolfapi.org