Handwriting semantics · Processing API

Smart Scorecards
scoring logic.

Map handwritten scorecard entries to stable API values, understand when the service withholds automatic acceptance, and build a review experience that never turns uncertain evidence into a guessed result.

Literal → canonical value → decision

Interpret the mark. Preserve the evidence.

For each supported page, POST /api/v1/scorecards/process returns one cell for every row and field. The service retains the visible literal, normalizes known scorecard notation into value, preserves alternate candidates, and assigns either ACCEPTED or NEEDS_REVIEW. Deterministic rules can only downgrade a result to review; they never replace a provider-selected value or fill a missing cell.

01Read the visible handwriting and keep the original literal.
02Normalize typography, case, spacing, aliases, and supported golf notation.
03Compare the literal, selected canonical value, and all returned candidates.
04Apply deterministic ambiguity, compound-direction, and cross-field review rules.
ScopeThis page documents handwriting interpretation and API decision logic. Smart Scorecards does not calculate handicaps, net scores, Stableford points, match-play results, or Rules of Golf penalty adjustments.

Seven fields per row

Rows and numeric values.

Front-nine pages use rows 1–9; back-nine pages use 10–18. The printed total label FT or BT is returned as canonical row T. Numeric values are whole numbers from 0 through 999. An unrecorded cell is represented by null, not zero, except that a dash in putts explicitly means zero.

FieldRecognized entryMeaning
score0–999The total strokes recorded for the hole.
putts0–999 or a dashA dash is interpreted as 0. A blank remains null.
firResult mark, direction, or blankFairway-in-regulation outcome. A blank or dash remains null.
teeClubSupported club name or blankThe club used from the teeing area.
girResult mark, direction, unavailable mark, or blankGreen-in-regulation outcome. A blank or dash remains null.
approachClubSupported club name or blankThe club used for the recorded approach.
approachDistance0–999 or blankA whole-number approach distance; blank remains null.

The response always uses these fields: score, putts, fir, teeClub, gir, approachClub, approachDistance.

Case-insensitive club vocabulary

Normalize club names.

Whitespace, case, periods, underscores, and hyphens do not change a supported club token. The API returns an uppercase canonical value. Odd-degree wedges are supported across the complete 40°–70° range.

Handwritten optionsCanonical valueBehavior
D, Dr, DR, Drv, DriverDRIVERAccepted without review when the literal and provider value agree.
Md, MD, Mini DriverMINI_DRIVERAccepted without review when the literal and provider value agree.
1W–9W1W–9WWood.
1H–9H1H–9HHybrid.
1I–9I1I–9IIron.
1–91I–9IA bare single digit defaults to the corresponding iron.
PW, LW, AW, GW, SWSame tokenNamed wedge.
40–7040°–70°A two-digit value in this range is a degree wedge.
52w, 52d, 52*, 52°52°Wedge suffixes are normalized to the degree value.
41, 51, and 61Without a suffix, these values are interpreted as 4I, 5I, and 6I because a handwritten I is commonly read as 1. Use 51w, 51d, 51*, or 51° for a 51-degree wedge.

Fairway and green outcomes

Resolve FIR and GIR marks.

FIR and GIR share the same hit, miss, mishit, and directional vocabulary. GIR additionally supports an explicit unavailable state. The canonical accuracy vocabulary currently contains 16 values.

Handwritten optionsCanonical valueFieldBehavior
✓, ✔, ✅, ☑, check, checkmark, hitHITFIR and GIRAccepted when the provider value agrees.
X, ✕, ✖, ×, miss, missedMISS_UNKNOWNFIR and GIRA recorded miss with no direction.
M, MH, mishitMISS_MISHITFIR and GIRA mishit is a miss, retained as its own canonical value.
-nullFIR and GIRNot recorded.
vHITFIR and GIRTreated as a likely OCR rendering of a handwritten check mark.

Use a complete check mark when authoring or printing golfer instructions. The recognition service may normalize an OCR v to HIT. Arrows and chevrons are intentionally unsupported; use the documented letters and numbers instead.

Canonical miss geometry

Retain the direction of a miss.

Simple lateral or distance directions can be auto-accepted when every observation agrees. Combined directions are recognized but remain reviewable under the current policy. This conservative boundary avoids presenting a precise two-axis miss as settled when compact handwriting is difficult to distinguish.

Handwritten optionsCanonical valueBehavior
L, LeftMISS_LEFTAccepted when the provider value agrees.
R, RightMISS_RIGHTAccepted when the provider value agrees.
FL, Far LeftMISS_FAR_LEFTAccepted when the provider value agrees.
FR, Far RightMISS_FAR_RIGHTAccepted when the provider value agrees.
S, ShortMISS_SHORTAccepted when the provider value agrees.
Lo, LongMISS_LONGAccepted when the provider value agrees.
RS, R/SMISS_RIGHT_SHORTRecognized, then routed to review as a compound direction.
RLo, R/LoMISS_RIGHT_LONGRecognized, then routed to review as a compound direction.
LS, L/SMISS_LEFT_SHORTRecognized, then routed to review as a compound direction.
LLo, L/LoMISS_LEFT_LONGRecognized, then routed to review as a compound direction.

Arrows, chevrons, triangle-like marks, and prose descriptions of those shapes are not directional aliases. The service preserves the literal evidence, leaves the canonical value unresolved, and routes the cell to review.

GIR unavailable

Handwritten optionsCanonical value
UNGIR_UNAVAILABLE
URGIR_UNAVAILABLE
NA or N/AGIR_UNAVAILABLE
Unreachable or UnavailableGIR_UNAVAILABLE
Not Available or Not ApplicableGIR_UNAVAILABLE

GIR_UNAVAILABLE is valid only in gir. It represents a hole where the golfer could not reasonably attempt the green in regulation after an earlier shot. It is neither a hit nor an ordinary miss and should not be counted as a GIR opportunity. The same notation in fir is unresolved and requires review.

Conservative acceptance

Know why a cell needs review.

A recognized canonical value can still carry NEEDS_REVIEW. Clients must use decision as the acceptance boundary and treat value as reviewable evidence until a person confirms it.

Review signalRule
Provider uncertaintyThe provider marks the observation UNCERTAIN or INVALID, requests review, or returns more than one candidate.
Literal contradictionThe deterministic interpreter cannot reconcile the original literal with the provider-selected canonical value.
OCR correctionA likely glyph correction—such as W read as M, H read as N, or I read as 1—preserves candidates but requires review.
Compound directionA combined lateral-and-distance miss is recognized, then receives COMPOUND_DIRECTION_REQUIRES_REVIEW under the current calibration policy.
Putts exceed scoreBoth cells are routed to review when a hole's putts are greater than its score.
FIR is not applicableA populated FIR cell is routed to review when course context says FIR does not apply, including a par 3.

providerConfidence is always null. The provider does not supply a calibrated field probability, so CADDIE.100 does not manufacture a percentage. Inspect decision, candidates, and evidence.reasonCodes instead.

Integration contract

Build review into the round flow.

Trust the decision boundaryCommit ACCEPTED cells automatically. Present every NEEDS_REVIEW cell for confirmation, even when value is populated.
Keep null distinct from zeronull means no accepted recorded value. Zero is an explicit numeric value, including a dash in the putts field.
Display the source evidenceUse literal, candidates, and reason codes to explain why the cell is being reviewed.
Apply product scoring laterCalculate totals, handicaps, points, and derived statistics only after the client has resolved review cells under its own rules.

See the processing endpoint contract → for request, response, idempotency, retention, and failure behavior.

Rule revisionsInterpretation scorecard-handwriting-interpretation@1; accuracy scorecard-accuracy-normalizer@2; clubs scorecard-club-normalizer@2; numeric literals scorecard-numeric-literal@1; calibration scorecard-handwriting-calibration@1; policy scorecard-handwriting-policy@1.