# Corrections

This packet will be sent whenever a previous packet needs correcting. The original event still happened, at the time that it happened, BUT some of the details within that packet are being updated. Corrections can happen to the last event that happened, or to an event that happened X events ago (I.e it can happen in and out of sequence).

**Current List of Events that can be Corrected:**

* Approximate Lie
* Detailed Lie
* Penalty
* Ball Drop

Note – this list will change over time as we add new packets that can be corrected.

**Correction Object**

| Field Name               | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| seqNum                   | integer | The sequence number of the packet.                                                                                                                                                                                                                                                                                                                                                                                   |
| timestamp                | date    | The timestamp of the event, in UTC                                                                                                                                                                                                                                                                                                                                                                                   |
| eventElementType         | string  | <p>The type of event, in this case Correction<br><br></p><p>Full list of values include:<br></p><ul><li>TglHammerThrown</li><li>RefereeCalled</li><li>HoleScoreUpdate</li><li>Correction</li><li>ModeChange</li><li>Penalty</li><li>RoundStatusUpdate</li><li>BallDrop</li><li>ProvisionalBallSelected</li><li>HitBall</li><li>AddressingBall</li><li>ApproximateLie</li><li>DetailedLie</li><li>BallHoled</li></ul> |
| timestampReceived        | date    | The server time of the moment that this packet has been processed                                                                                                                                                                                                                                                                                                                                                    |
| corrections              | object  | contains **all** information on the packet that is being corrected, even if certain information within the packet has not been corrected                                                                                                                                                                                                                                                                             |
| courseId                 | string  | The ID of the course where the event took place                                                                                                                                                                                                                                                                                                                                                                      |
| eventCorrectedIdentifier | object  | See object below                                                                                                                                                                                                                                                                                                                                                                                                     |
| groupId                  | integer | The group ID of the player who did the event                                                                                                                                                                                                                                                                                                                                                                         |
| roundNo                  | integer | The current round number                                                                                                                                                                                                                                                                                                                                                                                             |

**Corrections Object**

<table data-header-hidden><thead><tr><th width="191.33333333333331">Field Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>Field Name</td><td>Type</td><td>Description</td></tr><tr><td>ballLie</td><td>object</td><td>See object below</td></tr><tr><td>provisionalIndex</td><td>integer</td><td>indicates if the event is part of a provisional ball. 0 if not, 1 if first provisional ball, 2 if second provisional ball for that stroke, e.t.c…</td></tr><tr><td>strokeNo</td><td>integer</td><td>The stroke associated with the event that is being corrected</td></tr><tr><td>strokesAssessed</td><td>integer</td><td>The stroke assessed with the event that is being corrected</td></tr></tbody></table>

**Ball Lie Object**

<table data-header-hidden><thead><tr><th width="170.33333333333331">Field Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>Field Name</td><td>Type</td><td>Description</td></tr><tr><td>coordinates</td><td>object</td><td>See object below</td></tr><tr><td>shotDistance</td><td>integer</td><td>How far the shot went for that stroke. Data returned in meters.</td></tr><tr><td>distanceToPin</td><td>decimal</td><td>How far the ball is from the pin. Data returned in meters</td></tr><tr><td>surfaceType</td><td>string</td><td><p>Text string which describes the lie of the ball, can be inconsistent across different data collection systems / Tours. We recommend using the 3 letter codes.</p><p>See Surface Types table below.</p></td></tr><tr><td>surfaceTypeCode</td><td>string</td><td><p>3 letter enum code which describes the lie of the ball.</p><p>See Surface Types table below.</p></td></tr><tr><td>obstructions</td><td>boolean</td><td>true if the team has an obstruction next to the ball that makes the ball hard to hit</td></tr><tr><td>blindshot</td><td>boolean</td><td>true if the team cannot see the pin from where they are taking the shot</td></tr></tbody></table>

**coordinates object:**

| Field | Type    | Description               |
| ----- | ------- | ------------------------- |
| x     | decimal | X co-ordinate of the ball |
| y     | decimal | Y co-ordinate of the ball |
| z     | decimal | Z co-ordinate of the ball |

**eventCorrectedIdentifier Object**

This contains information unique to the event that is being corrected – use this information to reference the previous packet so you know what packet and what data to update.

<table data-header-hidden><thead><tr><th width="191.33333333333331">Field Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>Field Name</td><td>Type</td><td>Description</td></tr><tr><td>holeNo</td><td>integer</td><td>The hole in which the event took place that is being corrected</td></tr><tr><td>eventElementType</td><td>string</td><td><p>The type of event that is being corrected<br></p><p>Full list of values include:<br></p><ul><li>TglHammerThrown</li><li>RefereeCalled</li><li>HoleScoreUpdate</li><li>Correction</li><li>ModeChange</li><li>Penalty</li><li>RoundStatusUpdate</li><li>BallDrop</li><li>ProvisionalBallSelected</li><li>HitBall</li><li>AddressingBall</li><li>ApproximateLie</li><li>DetailedLie</li><li>BallHoled</li></ul></td></tr><tr><td>strokeNo</td><td>integer</td><td>The stroke associated with the event that is being corrected</td></tr><tr><td>playerId</td><td>integer</td><td>The player ID of the player who did the event that is being corrected</td></tr><tr><td>holeOrder</td><td>integer</td><td>The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18</td></tr><tr><td>teamNo</td><td>integer</td><td>The team number of the player who did the event</td></tr></tbody></table>

#### Surface Types:

| surfaceTypeCode | surfaceType                    |                       |
| --------------- | ------------------------------ | --------------------- |
| ODO             | Dirt                           | For both PGA and DPWT |
| OFW             | Fairway                        | For both PGA and DPWT |
| OST             | Fairway Bunker                 | For both PGA and DPWT |
| OCO             | Fringe                         | For both PGA and DPWT |
| OGR             | Green                          | For both PGA and DPWT |
| OGS             | Greenside Bunker               | For both PGA and DPWT |
| OIR             | Intermediate Rough             | For both PGA and DPWT |
| ONA             | Native Area                    | For both PGA and DPWT |
| OTH             | Other                          | For both PGA and DPWT |
| ORO             | Rough                          | For both PGA and DPWT |
| OTB             | Tee Box                        | For both PGA and DPWT |
| OTO             | Trees                          | For both PGA and DPWT |
| OUK             | Unsure/Undefined               | For both PGA and DPWT |
| OWA             | WaterHazard/LateralWaterHazard | For both PGA and DPWT |
| OWB             | Waste Bunker                   | For both PGA and DPWT |
| OBU             | Bushes                         | DPWT only             |
| ODS             | Desert                         | DPWT only             |
| OTF             | OtherFairway                   | DPWT only             |
| OOB             | OutOfBounds                    | DPWT only             |
| OCA             | Cart Path                      | PGA only              |
| OGR             | Green                          | PGA only              |
| OPT             | Path                           | PGA only              |
| ORK             | Rock Outline                   | PGA only              |
| OTB             | Tee Box                        | For both PGA and DPWT |
| OWL             | Wall                           | PGA only              |

\
**Sample Event Packet**

In this example an Detailed Lie packet has been corrected:

```
{
  "corrections": {
    "ballLie": {
      "blindShot": false,
      "coordinates": {
        "x": 11129.023,
        "y": 11254.199,
        "z": 12.925
      },
      "distanceToPin": 6.375,
      "obstructions": false,
      "shotDistance": 93.675,
      "surfaceType": "Green",
      "surfaceTypeCode": "OGR"
    },
    "provisionalIndex": 0,
    "strokeNo": 2,
    "strokesAssessed": 1
  },
  "courseId": "113",
  "eventCorrectedIdentifier": {
    "eventElementType": "DetailedLie",
    "holeNo": 12,
    "holeOrder": 3,
    "playerId": 3961,
    "strokeNo": 2,
    "teamNo": 102
  },
  "eventElementType": "Correction",
  "groupId": 1115953,
  "roundNo": 1,
  "seqNum": 40,
  "timestamp": "2025-01-09T17:41:31.672Z",
  "timestampReceived": "2025-01-09T17:41:32.138Z"
}
```

## Doc navigation

[← Provision Ball Selected](https://docs.sportradar.com/golf/round-details-scenarios/provision-ball-selected)[Hole Score Update →](https://docs.sportradar.com/golf/round-details-scenarios/hole-score-update)
