Handicaps and scoring
Parful runs thisWhere a handicap comes from
Also called Handicap sources, Handicap provenance, Linked and manual handicaps.
A member's Handicap Index® on a Parful club roster is linked, meaning a handicap ID is on file and network sync can refresh it when the club turns sync on, or manual, meaning it is whatever the club last entered. Every change records its source (sync, CSV import, manual edit or wizard), a revision and an audit entry.
- Two source modes
- Linked (a handicap ID on file) or manual (the club's last entry)
- Four change sources
- Handicap sync, CSV import, manual edit, update wizard
- Every change writes
- A revision with the previous and new value, and a club audit entry
- Lock
- A locked handicap is skipped by sync, import and wizard until a manager lifts the lock
- No handicap
- Shown as NH. Never converted to a scratch handicap of 0.0
- Range accepted
- +10.0 to 54.0, one decimal
Linked or manual: the mode is derived, not chosen
A club roster does not ask a manager to pick a handicap mode for each member. The mode falls out of the data. A member with a handicap ID on file (a GHIN® number or another network identifier) is linked. A member with no ID is manual. Add an ID and the member becomes linked; remove it and they become manual. Nothing is stored and nothing needs migrating.
Linked means eligible for network sync. When the club's sync is on, the platform refreshes linked members' values from the network nightly and on demand; while it is off, linked members behave like manual members and their values show an as-of date. Manual means the value is whatever the club last entered, and nothing changes it until someone at the club does.
A manager can edit either kind of member by hand at any time. A manual edit on a linked member is not a mode switch. It is an override, recorded as such, and the next sync may supersede it (also recorded) unless the handicap is locked.
The four change sources and the revision trail
Every write to a member's handicap, from any screen or job, passes through one server-side change path. It updates the value, stamps it with a change source, appends a revision to the member's handicap history and writes a club audit entry. Client code never writes the handicap fields directly, and the security rules refuse any attempt to.
- Handicap sync: the value came from the network. The actor is the system.
- CSV import: the value came from a roster file a manager uploaded, on first import or a re-import.
- Manual edit: a manager typed the value into the member's edit form.
- Update wizard: a manager reviewed and saved a batch of values in the update wizard.
Revisions and locks
Each revision carries the previous index, the new index, the change source, who made the change (a manager, or the system for a sync), an optional note and the date. Wherever a handicap is edited, the previous value is shown beside it. Older data written before this trail existed is mapped to the same four labels when it is read.
A lock pins the value. Sync, the apply step of an import and a wizard batch save all skip locked members and report them as skipped. A single manual edit on a locked member has to lift the lock explicitly in the edit form, and that is recorded too. Locking is a manager action and is audit-logged even though it changes no value.
Profiles, guests and NH
A member can enter their own index on their Parful profile. That self-declared value lives on the member's user record only. It never overwrites the club roster, and the roster never reads it. The roster is the club's record; the profile is the player's.
A guest at an outing carries their own value, entered when they are added, or NH, meaning no handicap. NH stays NH: it is never converted into a scratch handicap of 0.0, and the card shows NH rather than 0. On a club outing a player with NH receives no strokes, so their net equals their gross and the card says why. On Events, a player with no handicap is not ranked on the net board at all.
How Parful runs it
Managers see each member's handicap with its source badge (Official for a sync-applied value on a linked member, Manual otherwise), the as-of date and a lock control. The members hub, the update wizard, the CSV import preview and the outing participants list all read the same value and the same badge. A failed network lookup is flagged inline, naming the member, with a one-tap path to manual entry. A missing or stale handicap never blocks a flow: grouping, competition entry and scoring continue, with a warning where it matters.
Worked example
A worked example: one member's handicap history over a season
Maria joined the club roster from a CSV in March. Her handicap history shows every change and where it came from.
| Date | Change source | Previous | New | Actor | Note |
|---|---|---|---|---|---|
| Mar 2 | CSV import | none | 14.2 | Jane (manager) | Spring roster upload |
| Mar 18 | Handicap sync | 14.2 | 13.9 | System | Nightly refresh, member is linked |
| Apr 5 | Manual edit | 13.9 | 14.5 | Jane (manager) | Committee ruling after a disputed card |
| Apr 5 | Lock | 14.5 | 14.5 | Jane (manager) | Pinned until the committee reviews again |
| Apr 20 | Handicap sync | 14.5 | skipped | System | Locked, reported as skipped |
| May 10 | Manual edit | 14.5 | 14.1 | Jane (manager) | Lock lifted for manual edit |
- The lock row changes no value. It is on the audit log because a manager did it; it is not a revision.
- Maria's own profile index (say 14.0, entered by her in April) appears nowhere here. It is hers, on her user record, and the roster ignores it.
Common variants
- Estimated handicaps
- A player's own Parful profile can carry an app-estimated index built from their recorded rounds, promoted after three eligible rounds. It is the player's, on their profile, and is never written to a club roster.
- Club-calculated roster handicaps
- An older Parful behavior recalculated roster handicaps from club rounds automatically. It was retired: roster values change only through the four explicit sources. Round differentials are still recorded on every finalized outing, for history and trends.
- Verified versus unverified IDs
- A handicap ID typed at join or import is stored unverified and makes the member linked at once. Verification against the network happens when the network is next available; nothing waits on it.