Most genealogists use maybe a tenth of what the GEDCOM file format can do. The rest sits in the specification, unused, because no program surfaces it in the interface and no export ever writes it.
Here are five of those features, with the exact syntax and an honest note on whether your software will keep them. Two versions matter throughout: GEDCOM 5.5.1 (from 1999, still the format almost every website and program actually reads) and GEDCOM 7.0 (released May 2021, currently at 7.0.18). If the difference between them is new to you, the plain-English format explainer covers the basics first.
1. ASSO: recording people who aren't relatives
GEDCOM's data model is built on nuclear families — INDI records joined by FAM records. That leaves out godparents, witnesses, informants, neighbours, employers, clergy and enslavers, which is where a lot of the actual evidence lives.
The ASSO tag handles all of them.
GEDCOM 5.5.1 syntax
0 @I1@ INDI 1 NAME Fred /Jones/ 1 ASSO @I2@ 2 RELA Godparent
RELA is free text, so it's flexible but not machine-comparable.
GEDCOM 7.0 syntax
Version 7 replaced RELA with an enumerated ROLE:
0 @I1@ INDI 1 ASSO @I2@ 2 ROLE GODP
Valid roles are CHIL, CLERGY, FATH, FRIEND, GODP, HUSB, MOTH, MULTIPLE, NGHBR, OFFICIATOR, PARENT, SPOU, WIFE, WITN and OTHER. Anything else uses ROLE OTHER with a PHRASE beneath it.
Version 7 also lets you attach an association to a specific event, and to point at someone who has no record of their own using @VOID@:
1 BURI 2 ASSO @VOID@ 3 ROLE OFFICIATOR
Support
Patchy. Because 5.5.1 only allowed ASSO at the individual level, programs invented _ASSO, _WITN and _GODP to hang associations off events. Those custom tags rarely survive a move between programs, and RootsMagic 9 didn't recognise even the standard ASSO tag when importing FamilySearch's own GEDCOM 7 test file. Pointers to people who were never written out are exactly what the GEDCOM validator flags as dangling references.
2. QUAY: a built-in confidence rating for every source
Every source citation in the GEDCOM file format can carry a QUAY value — your own assessment of how much that evidence is worth, on a four-point scale.
- 0 — Unreliable evidence or estimated data
- 1 — Questionable reliability (interviews, census, oral genealogies, or potential for bias)
- 2 — Secondary evidence, recorded some time after the event
- 3 — Direct and primary evidence, or by dominance of the evidence
1 BIRT 2 DATE 12 JUL 1743 2 SOUR @S5@ 3 PAGE Page 120 3 QUAY 3
QUAY belongs to the citation, not to the fact, and it sits only under SOUR. The point is that it's machine-readable: tools like Gigatrees use it to score facts automatically and pick the best-supported value when two sources disagree.
Support
Widely written, inconsistently labelled. Programs relabel the four levels in their own interfaces, so “2” in one app reads as something different in the next. The specification is explicit that software must not invent or silently change your rating on import.
3. Dates that record what you actually know
2 JUN 1985 is a fraction of what GEDCOM date syntax allows.
Approximations
2 DATE ABT 1700 2 DATE CAL 1700 2 DATE EST 1700
ABT is about, CAL is calculated (from a recorded age, say), EST is estimated.
Ranges versus periods
These are different things and the distinction gets missed constantly.
A range is one event that happened somewhere inside a window:
2 DATE BET 1600 AND 1620 2 DATE BEF 2 AUG 2003
A period is a state that lasted across a span:
1 RESI 2 DATE FROM 1900 TO 1912
Non-Gregorian calendars
Prefix the date with a calendar escape. In 5.5.1:
2 DATE @#DJULIAN@ 14 FEB 1710
Also available: @#DHEBREW@ and @#DFRENCH R@. GEDCOM 7 dropped the escape punctuation in favour of plain words — JULIAN, HEBREW, FRENCH_R — and added BCE years plus free-text PHRASE clarifications on any date.
Dual dates
For the Old Style / New Style transition, write the year both ways: 21 FEB 1750/51.
Support
Calendar escapes are close to extinct in the wild. In an analysis of 82.9 million date lines across roughly 7,000 files, @#DJULIAN@ appeared 10,201 times, @#DHEBREW@ 1,063 times, and @#DFRENCH R@ 498 times. Most programs treat every date as Gregorian internally, which quietly breaks age calculations across a calendar change.
4. Custom tags, and the version 7 fix for them
Any tag starting with an underscore is a vendor or user extension: _UID, _MILT, _MARNM, _PRIM. It must be uppercase, 3 to 31 characters, unique in its first 15. This convention kept the GEDCOM file format alive for two decades and is also why your custom fields vanish when you switch programs — one vendor's _MILT is another's unrecognised line.
GEDCOM 7 keeps the underscores but adds a schema block in the header that maps each tag to a URI:
0 HEAD 1 GEDC 2 VERS 7.0 1 SCHMA 2 TAG _SKYPEID http://xmlns.com/foaf/0.1/skypeID
The meaning now travels with the URI rather than the tag name, so two programs that chose different letters can still interoperate if they point at the same definition. FamilySearch maintains a machine-readable registry of these at gedcom.io/terms/v7/.
One caveat: version 7 still permits undocumented extension tags, so the mechanism only helps when vendors actually populate SCHMA.
The alternative you should use first
For events GEDCOM has no tag for, don't invent a custom tag. Use the generic event with a TYPE:
1 EVEN 2 TYPE Land Lease 2 DATE 2 OCT 1837
That's portable. _LANDLEASE is not. To find out what your own program is writing, export a file and run it through GEDCOM to XML or JSON — every underscore tag shows up in the output, including the ones the interface never mentioned.
5. GEDZip and photo cropping
GEDCOM files are plain text, which is why sharing a tree has always lost the pictures. Version 5.5 allowed embedded Base64 images; 5.5.1 removed that in favour of file paths, which break the moment anything moves.
GEDZip (.gdz)
GEDCOM 7 defines GEDZip: a standard Zip archive containing gedcom.ged plus every media file it references, with a .gdz extension and its own registered media type. Media paths sit under a media/ prefix by convention. It's the fix for “my GEDCOM didn't bring the photos.”
CROP
Version 7 lets a multimedia link specify a rectangle inside an image, so one group portrait can supply the profile photo for everyone in it:
1 OBJE @O1@ 2 CROP 3 TOP 200 3 LEFT 300 3 HEIGHT 400 3 WIDTH 300
Values are pixels, and cropping happens at display time — the full image still loads.
Support
Both are GEDCOM 7 only, so both depend on the receiving program supporting version 7. Ancestry strips media links from its exports entirely — one of several things the Ancestry export guide walks through before you rely on the file.
Will any of this survive a transfer?
That's the real question, and the answer as of early 2026 is: it depends heavily on the program.
| Program | GEDCOM 7 status |
|---|---|
| Family Historian 7 | Import and export, including GEDZip |
| MacFamilyTree 10/11 | Import and export |
| Reunion 14, Ancestris | Import and export |
| Heredis 2023–2025 | Import only |
| RootsMagic 9/10 | Partial import; exports 5.5.1 |
| Gramps, webtrees, Family Tree Maker, Legacy | 5.5.1 only |
| Ancestry, MyHeritage, FamilySearch Family Tree | 5.5.1 only |
GEDCOM 5.5.1 is still the working standard. Anything exclusive to version 7 — ROLE, CROP, GEDZip, shared notes, documented extensions — should be treated as a bonus rather than something to rely on until the large sites catch up.
The practical habit that protects you: after any export, open the file somewhere neutral before you trust it. Drop it into the viewer to read the records as written, check the structure with the validator, and — if the destination program is the risk — keep a self-contained HTML copy or a PDF of what the tree looked like beforehand. Want version 7 syntax to compare against? There's a GEDCOM 7 sample file alongside its 5.5.1 twin.