OpenPinsheet
Every day the cup stands somewhere on each green. OpenPinsheet keeps a record of where, as open data under the Open Database License, so the history of a green belongs to the club and not to the tool it was typed into.
Statusformat draft, version 1no day published yetone channel: OpenYardage
On this date, on this hole, the cup was here.
That is all a record says. The point locates itself: whoever wants to know which course or which green it belongs to asks the coordinate, not an ID. The hole number is the one the club uses, and it describes the record without being a key.
date,date_basis,hole,lat,lon,source,accuracy_m,front_m,left_m,input_front,input_offset,input_side,input_unit,channel,missing 2027-04-12,local,7,52.1234561,13.1234573,estimated,,12,9.5,12,5,right,m,openyardage, 2027-04-12,local,8,52.1241077,13.122915,mapped,,,,,,,,openyardage, 2027-04-12,local,9,,,,,,,,,,,,1
The last row is a hole where a pin was set that day but its position has been lost. It stays in the file, because a cup did stand there.
Every position says how it was obtained. An estimate is useful, and it is
not a measurement; the column source keeps the two apart.
estimated
Metres or yards from the front edge and from the left or right edge, as a greenkeeper reads them off. Converted to a coordinate against the green outline in OpenStreetMap on that day. What was typed stays in the record, so anyone can redo the conversion.
How well it matches the ground depends on how well the outline matches
the green. That has not been measured, so an estimate carries no
accuracy_m.
surveyed
GNSS with RTK or similar. accuracy_m is required: the horizontal accuracy the device reports.
mapped
Placed on a map or an aerial image. accuracy_m is optional.
detectedlater
A camera or LiDAR finds the cup. accuracy_m is required.
phone GPSnot accepted
Two metres at best, which on a green is the difference between two pin positions.
One row per day and hole. The same names are used in the CSV and in the
properties of the GeoJSON. Empty means unknown, never zero.
| Column | Meaning |
|---|---|
| When and where | |
| date | Calendar date at the course, YYYY-MM-DD. |
| date_basis | local, or utc where the local date was not recorded. In New Zealand the two are often a day apart. |
| hole | The hole as the club names it: 7, later perhaps B3. |
| lat, lon | WGS84 in degrees, seven decimals for every source. |
| How it was obtained | |
| source | estimated, surveyed, mapped or detected. |
| accuracy_m | Horizontal accuracy in metres, where one was measured. |
| front_m, left_m | Metres from the front and the left edge, read against the OpenStreetMap green of that day. |
| input_front, input_offset | What was typed: distance from the front and from the side edge, in the unit typed. |
| input_side | left or right: which edge the offset is measured from. |
| input_unit | m or yd. |
| Who vouches for it | |
| channel | The organisation the record came through. See Channels. |
| missing | 1 if a pin was set that day but its position is lost. Everything from lat to channel is then empty. |
A day is published three days later, once no course anywhere can still enter pins for it. After that the file does not change. Corrections and withdrawals get files of their own, so what was published on a day can always be checked.
v1/index.json list of files, sizes, sha256, format version v1/days/2027-04-12.csv v1/days/2027-04-12.geojson v1/years/2027.csv all days of a year
The data is under the Open Database License 1.0, the licence of OpenStreetMap. Anyone may use, copy and share it, also commercially. Whoever builds a database from it names the source and shares that database under the same licence. The licence cannot be withdrawn.
Attribution
Pin positions: OpenPinsheet and its channels, Open Database License 1.0.
Estimated positions are computed against green outlines from OpenStreetMap: map data © OpenStreetMap contributors (ODbL).
The second line is not a courtesy: a position computed against an OpenStreetMap outline is derived from OpenStreetMap, and the ODbL asks for that credit.
Nobody enters pins here directly. Records come through channels: tools that clubs already use. A channel decides who may enter pins for a course and vouches for it.
Clubs enter today's pins in the club dashboard, in metres or yards from the edges of the green.
Write to info@openyardage.com. The list of channels on this page is public, and so is every change to it.
OpenPinsheet costs little to run, and somebody still pays for it. Sponsors carry those costs. The data and its licence stay open either way.
Yardage books drawn from OpenStreetMap, free for golfers. Also the first channel.