# Hole Correction Mode

In order for players' score to remain accurate, there is a need for scorers to be able to correct inputs that have already been submitted into the tablets and submitted to the DDE.

Hole correction mode has been developed to support this need. It allows the wholesale correction of both completed and ongoing holes.

Hole correction mode is started and finished with a ModeChange packet.

**ModeChange packet**

| Field Name        | Type    | Description                                                                                                            |
| ----------------- | ------- | ---------------------------------------------------------------------------------------------------------------------- |
| seqNum            | integer | The sequence number of the packet.                                                                                     |
| timestamp         | date    | The timestamp of the event, in UTC                                                                                     |
| timestampReceived | date    | The server time of the moment that this packet has been processed                                                      |
| eventElementType  | string  | The type of event, in this case **ModeChange**                                                                         |
| teamNo            | integer | The team Id in the case of a team event                                                                                |
| mode              | string  | The type of mode change. Hole correction mode is started by **BeginHoleCorrection** and ended by **EndHoleCorrection** |

Following a ModeChange of BeginHoleCorrection, individual holes are then resent as a standard series of stroke events and RoundStatusUpdates. These are always sent from the beginning of a hole, with the seqNum continuing from previous packets. These packets continue up until the point that the correction was initiated - this can be either the entirety of a hole, up to holing or up to the present moment (if the correction has been requested when a hole is ongoing).

Only one hole at a time can be corrected within the mode.

Hole correction mode is ended by a ModeChange of EndHoleCorrection.

See below for an example of a hole being corrected in it's entirety:

```
{
  "eventElementType": "ModeChange",
  "mode": "BeginHoleCorrection",
  "seqNum": 61,
  "teamNo": 102,
  "timestamp": "2025-01-09T17:46:07.862Z",
  "timestampReceived": "2025-01-09T18:00:32.678Z"
}

{
  "courseId": "113",
  "eventElementType": "RoundStatusUpdate",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "roundNo": 1,
  "seqNum": 62,
  "state": "HoleStarted",
  "teamNo": 102,
  "timestamp": "2025-01-09T17:46:07.862Z"
}

{
  "clubTypeCode": "CDR",
  "courseId": "113",
  "eventElementType": "AddressingBall",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "seqNum": 63,
  "strokeNo": 1,
  "teamNo": 102,
  "timestamp": "2025-01-09T17:47:39.381Z"
}

{
  "courseId": "113",
  "eventElementType": "HitBall",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "score": {
    "currentHolePar": 4,
    "currentHoleStrokes": 3,
    "currentRoundScoreToPar": "-1",
    "overallScoreToPar": "-1"
  },
  "seqNum": 64,
  "strokeNo": 1,
  "strokesAssessed": 1,
  "teamNo": 102,
  "timestamp": "2025-01-09T17:47:51.658Z"
}

{
  "ballLie": {
    "blindShot": false,
    "coordinates": {
      "x": 11868.311,
      "y": 10815.146,
      "z": 8.09
    },
    "distanceToPin": 162.382,
    "distanceToPinProb": null,
    "isPredictionUnconfident": false,
    "isWaterProbable": false,
    "obstructions": false,
    "shotDistance": 270.815,
    "strokesToPinProb": {
      "2.9": 13,
      "3.2": 8,
      "3.3": 78
    },
    "surfaceType": "Fairway Bunker",
    "surfaceTypeCode": "OST",
    "zoneProbabilities": [
      {
        "distanceToPinYards": 178.11,
        "probabilityPercent": 79,
        "zoneCode": "OST",
        "zoneType": "Bunker"
      },
      {
        "distanceToPinYards": 154.24,
        "probabilityPercent": 13,
        "zoneCode": "OFW",
        "zoneType": "Fairway"
      },
      {
        "distanceToPinYards": 165.75,
        "probabilityPercent": 8,
        "zoneCode": "ORO",
        "zoneType": "Rough"
      },
      {
        "distanceToPinYards": 158.82,
        "probabilityPercent": 1,
        "zoneCode": "OIR",
        "zoneType": "Intermediate"
      }
    ]
  },
  "courseId": "113",
  "eventElementType": "ApproximateLie",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "seqNum": 65,
  "strokeNo": 1,
  "strokesAssessed": 1,
  "teamNo": 102,
  "timestamp": "2025-01-09T17:48:00.239Z"
}

{
  "ballLie": {
    "blindShot": false,
    "coordinates": {
      "x": 11959.449,
      "y": 10749.377,
      "z": 8.525
    },
    "distanceToPin": 133.807,
    "obstructions": false,
    "shotDistance": 305.054,
    "surfaceType": "Fairway",
    "surfaceTypeCode": "OFW"
  },
  "courseId": "113",
  "eventElementType": "DetailedLie",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "seqNum": 66,
  "strokeNo": 1,
  "strokesAssessed": 1,
  "teamNo": 102,
  "timestamp": "2025-01-09T17:48:16.649Z"
}

{
  "clubTypeCode": "CUK",
  "courseId": "113",
  "eventElementType": "AddressingBall",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "seqNum": 67,
  "strokeNo": 2,
  "teamNo": 102,
  "timestamp": "2025-01-09T17:54:23.525Z"
}

{
  "courseId": "113",
  "eventElementType": "HitBall",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "score": {
    "currentHolePar": 4,
    "currentHoleStrokes": 3,
    "currentRoundScoreToPar": "-1",
    "overallScoreToPar": "-1"
  },
  "seqNum": 68,
  "strokeNo": 2,
  "strokesAssessed": 1,
  "teamNo": 102,
  "timestamp": "2025-01-09T17:54:31.631Z"
}

{
  "ballLie": {
    "blindShot": false,
    "coordinates": {
      "x": 12077.453,
      "y": 10332.251,
      "z": 9.833
    },
    "distanceToPin": 2.972,
    "distanceToPinProb": {
      "13-20": 20,
      "20-30": 2,
      "4-6": 1,
      "6-9": 30,
      "9-13": 46
    },
    "isPredictionUnconfident": false,
    "isWaterProbable": false,
    "obstructions": false,
    "shotDistance": 132.105,
    "strokesToPinProb": {
      "1.2": 1,
      "1.3": 3,
      "1.4": 14,
      "1.5": 22,
      "1.6": 34,
      "1.7": 18,
      "1.8": 8
    },
    "surfaceType": "Green",
    "surfaceTypeCode": "OGR",
    "zoneProbabilities": [
      {
        "distanceToPinYards": 3.63,
        "probabilityPercent": 100,
        "zoneCode": "OGR",
        "zoneType": "Green"
      }
    ]
  },
  "courseId": "113",
  "eventElementType": "ApproximateLie",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "seqNum": 69,
  "strokeNo": 2,
  "strokesAssessed": 1,
  "teamNo": 102,
  "timestamp": "2025-01-09T17:54:39.741Z"
}

{
  "ballLie": {
    "blindShot": false,
    "coordinates": {
      "x": 12077.975,
      "y": 10334.752,
      "z": 9.804
    },
    "distanceToPin": 3.175,
    "obstructions": false,
    "shotDistance": 131.42,
    "surfaceType": "Green",
    "surfaceTypeCode": "OGR"
  },
  "courseId": "113",
  "eventElementType": "DetailedLie",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "seqNum": 70,
  "strokeNo": 2,
  "strokesAssessed": 1,
  "teamNo": 102,
  "timestamp": "2025-01-09T17:54:47.902Z"
}

{
  "clubTypeCode": "CUK",
  "courseId": "113",
  "eventElementType": "AddressingBall",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "seqNum": 71,
  "strokeNo": 3,
  "teamNo": 102,
  "timestamp": "2025-01-09T18:00:09.840Z"
}

{
  "courseId": "113",
  "eventElementType": "HitBall",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "score": {
    "currentHolePar": 4,
    "currentHoleStrokes": 3,
    "currentRoundScoreToPar": "-1",
    "overallScoreToPar": "-1"
  },
  "seqNum": 72,
  "strokeNo": 3,
  "strokesAssessed": 1,
  "teamNo": 102,
  "timestamp": "2025-01-09T18:00:23.070Z"
}

{
  "courseId": "113",
  "eventElementType": "BallHoled",
  "groupId": 1115953,
  "groupNo": 13,
  "holeNo": 13,
  "holeOrder": 4,
  "player": {
    "country": "USA",
    "displayName": "Keith Mitchell",
    "firstName": "Keith",
    "gender": "male",
    "id": 3961,
    "isAmateur": false,
    "lastName": "Mitchell"
  },
  "playerId": 3961,
  "provisionalIndex": 0,
  "roundNo": 1,
  "score": {
    "currentHolePar": 4,
    "currentHoleStrokes": 3,
    "currentRoundScoreToPar": "-1",
    "overallScoreToPar": "-1"
  },
  "seqNum": 73,
  "strokeNo": 3,
  "strokesAssessed": 1,
  "teamNo": 102,
  "timestamp": "2025-01-09T18:00:32.208Z"
}

{
  "eventElementType": "ModeChange",
  "mode": "EndHoleCorrection",
  "seqNum": 74,
  "teamNo": 102,
  "timestamp": "2025-01-09T18:00:32.208Z",
  "timestampReceived": "2025-01-09T18:00:32.678Z"
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sportradar.com/golf-media/round-details-and-match-details-scenarios/hole-correction-mode.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
