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"
}