Blog

0 @B@ ARTICLE  ·  1 SUBJ Format internals

5 hidden features in the GEDCOM file format

Five underused GEDCOM features — associations, source ratings, Julian dates, custom tags and GEDZip — with real syntax and honest notes on which programs support them.

·8 min read

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.

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.

ProgramGEDCOM 7 status
Family Historian 7Import and export, including GEDZip
MacFamilyTree 10/11Import and export
Reunion 14, AncestrisImport and export
Heredis 2023–2025Import only
RootsMagic 9/10Partial import; exports 5.5.1
Gramps, webtrees, Family Tree Maker, Legacy5.5.1 only
Ancestry, MyHeritage, FamilySearch Family Tree5.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.

Frequently asked questions

What is the ASSO tag in GEDCOM?

ASSO records a relationship between two people who aren't related by blood or marriage — godparents, witnesses, neighbours, officiants. The nature of the link goes in RELA (GEDCOM 5.5.1) or ROLE (GEDCOM 7).

What does QUAY mean in a GEDCOM file?

It's a certainty rating from 0 to 3 attached to a source citation, where 3 is direct primary evidence and 0 is unreliable or estimated.

Can a GEDCOM file contain photos?

Not a plain .ged file, which is text only and references images by path. A GEDCOM 7 .gdz GEDZip archive bundles the file and its media together.

How do I record a Julian date in GEDCOM?

Prefix it with a calendar escape: 2 DATE @#DJULIAN@ 14 FEB 1710 in GEDCOM 5.5.1, or 2 DATE JULIAN 14 FEB 1710 in GEDCOM 7.

Should I use custom GEDCOM tags?

Only as a last resort. Try the generic EVEN with a TYPE first — it transfers between programs, and underscore tags usually don't. You can see which of yours survived by reopening the exported file in the viewer.

Open your own file and look.

The viewer reads GEDCOM 5.5.1 and 7.0 in your browser — no account, no upload, nothing leaves your device. Or take a sample tree for a spin first.

Open the viewerBrowse the tools

Keep reading