# GEDCOM

FamilySearch GEDCOM, or simply GEDCOM (/ˈdʒɛdkɒm/ JED-kom, acronym of Genealogical Data Communication), is an open file format and the de facto standard specification for storing genealogical data. It was developed by the Church of Jesus Christ of Latter-day Saints (LDS, also known as the Mormon Church), the operators of FamilySearch, to aid in the research and sharing of genealogical information. A common usage is as a standard format for the backup and transfer of family tree data between different genealogy software and websites, most of which support importing from and exporting to GEDCOM format.
GEDCOM is defined as a plain text file, using UTF-8 encoding as of version 7.0. This file contains genealogical information about individuals such as names, events, and relationships; metadata links these records together.
GEDCOM 7.0, released in 2021, is the most recent version of the GEDCOM specification as of July 2024. However, its predecessor, GEDCOM 5.5.1, remains the industry's format standard for the exchange of genealogical data. First released as a draft standard in 1999, GEDCOM 5.5.1 received only minor updates in the subsequent 20 years leading up to the release of 5.5.1 final in 2019. To address its shortcomings, some genealogy programs introduced proprietary extensions to GEDCOM which are not always recognized by other programs, such as GEDCOM 5.5 EL (Extended Locations). Efforts have been made to have 7.0 more widely adopted since its release. FamilySearch intends to be GEDCOM 7.0 compatible in the third quarter 2022 and Ancestry.com is planning for 7.0 compatibility, but has not yet specified an implementation date.

## Data model

GEDCOM uses a lineage-linked data model based on the conceptual model of the nuclear family. The family (FAM) record type is therefore the only source of links between the individuals (INDI) in the file, assigning parents (as HUSB and WIFE) and children (as CHIL) by referring to individuals' unique ID numbers. These historical origins are described in the 7.0 specification document: "The FAM record was originally structured to represent families where a male HUSB (husband or father) and female WIFE (wife or mother) produce CHIL (children)."
Although the links in a GEDCOM family record still use the original naming indicating a husband and a wife, the specification now states that "sex, gender, titles, and roles of partners should not be inferred based on the partner that the HUSB or WIFE structure points to" and that these individuals within a family structure are collectively referred to as 'partners', 'parents' or 'spouses'. A FAM record can also be used for "cohabitation, fostering, adoption, and so on, regardless of the gender of the partners."

## File structure

A GEDCOM file consists of a header section, records, and a trailer section. Within these sections, records represent people (INDI record), families (FAM records), sources of information (SOUR records), and other miscellaneous records, including notes. Every line of a GEDCOM file begins with a level number where all top-level records (HEAD, TRLR, SUBN, and each INDI, FAM, OBJE, NOTE, REPO, SOUR, and SUBM) begin with a line with level 0, while other level numbers are positive integers.
Although it is possible to write a GEDCOM file by hand, the format was designed to be used with software and thus is not especially human-friendly. A GEDCOM validator that can be used to validate the structure of a GEDCOM file is included as part of PhpGedView project, though it is not meant to be a standalone validator. For standalone validation "The Windows GEDCOM Validator" can be used. or the older unmaintained Gedcheck from the LDS Church.
During 2001, The GEDCOM TestBook Project evaluated how well four popular genealogy programs conformed to the GEDCOM 5.5 standard using the Gedcheck program. Findings showed that a number of problems existed and that "The most commonly found fault leading to data loss was the failure to read the NOTE tag at all the possible levels at which it may appear." In 2005, the Genealogical Software Report Card was evaluated (by Bill Mumford who participated in the original GEDCOM Testbook Project) and included testing the GEDCOM 5.5 standard using the Gedcheck program.
To assist with adoption of GEDCOM 7.0, validation tools now exist for that standard as well.

### Example

The following is a sample GEDCOM file.
The header (HEAD) includes the source program and version (Personal Ancestral File, 5.0), the GEDCOM version (5.5), the character encoding (ANSEL), and a link to information about the submitter of the file.
The individual records (INDI) define John Smith (ID I1), Elizabeth Stansfield (ID I2), and James Smith (ID I3).
The family record (FAM) links the husband (HUSB), wife (WIFE), and child (CHIL) by their ID numbers.

## Versions

The current version of the specification in wide use is GEDCOM 5.5.1 final, which was released on 15 November 2019. Its predecessor, GEDCOM 5.5.1 draft was issued in 1999, introducing nine new attribute, tags and adding UTF-8 as an approved character encoding. The draft was not formally approved, but its provisions were adopted in some part by a number of genealogy programs including FamilySearch.org.
Lineage-linked GEDCOM is the deliberate de facto common denominator. Despite version 5.5 of the GEDCOM standard first being published in 1996, many genealogical software suppliers have never fully supported the feature of multilingual Unicode text (instead of the ANSEL character set) introduced with that version of the specification. Uniform use of Unicode would allow for the usage of international character sets. An example is the storage of East Asian names in their original Chinese, Japanese and Korean (CJK) characters, without which they could be ambiguous and of little use for genealogical or historical research. PAF 5.2 is an example of software that uses UTF-8 as its internal character set, and can output a UTF-8 GEDCOM.
GEDCOM 7.0 requires UTF-8 encoding throughout, and resolves other long-standing issues with GEDCOM 5.5.1. Multimedia support in the form of an associated .zip file, called a GEDZip, is another inclusion. Efforts are underway to see 7.0 embraced as the new exchange standard. GEDCOM 7.0 allows explicitly identifying what standards other than GEDCOM may apply to a particular file. GEDCOM has always been extensible, but prior to 7.0 there was no standard way to identify such extensions. Also, GEDCOM 7.0 allows explicitly marking an event as nonexistent. This allows, for example, documenting that a particular individual never married. GEDCOM 7.0 was the first version to use semantic versioning, and is the most recent minor version of the specification.
As of July 2024, the next planned minor release is v7.1, which is under development.

### Release history

| GEDCOM version | Release date | Notes |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="1.0" | Old version, not maintained: 1.0 | 1984 | – |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="2.0" | Old version, not maintained: 2.0 | Dec 1985 | PAF 2.0 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="2.1" | Old version, not maintained: 2.1 | Feb 1987 | GEDCOM for PAF 2.1 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="2.3 Draft" | Old version, not maintained: 2.3 Draft | 7 August 1985 | with PAF2.0 GEDCOM implementation conventions |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="2.4 Draft" | Old version, not maintained: 2.4 Draft | 13 December 1985 | with PAF2.0 GEDCOM implementation conventions |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="3.0 Standard" | Old version, not maintained: 3.0 Standard | 9 October 1987 | PAF 2.0 and 2.1 implementation of 3.0 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="4.0 Standard" | Old version, not maintained: 4.0 Standard | August 1989 | PAF 2.1 – 2.31 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="4.1 Draft" | Old version, not maintained: 4.1 Draft | – | – |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="4.2 Draft" | Old version, not maintained: 4.2 Draft | 25 January 1990 | – |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="5.0 Draft" | Old version, not maintained: 5.0 Draft | 31 December 1991 | lineage-linked structures were introduced. |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="5.1 Draft" | Old version, not maintained: 5.1 Draft | 18 September 1992 | – |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="5.2 Draft" | Old version, not maintained: 5.2 Draft | 22 January 1992 | – |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="5.3 Draft" | Old version, not maintained: 5.3 Draft | 4 November 1993 | Unicode standard (ISO/IEC 10646) was introduced as an additional character set. |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="5.4 Draft" | Old version, not maintained: 5.4 Draft | 21 August 1995 | – |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="5.5 Standard" | Old version, not maintained: 5.5 Standard | 11 December 1995 | PAF 3, 4 and 5 |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="5.5 Standard" | Old version, still maintained: 5.5 Standard | January 2, 1996 | PAF 3, 4 and 5 / 5.5 Standard |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="GEDCOM (Future Direction) Draft" | Old version, not maintained: GEDCOM (Future Direction) Draft | May 1, 1998 | "it used an entirely new data model" |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="5.5.1 Draft" | Old version, not maintained: 5.5.1 Draft | October 2, 1999 | Used by FamilySearch.org UTF-8 added as an approved character encoding. |
| class="templateVersion co swatch-maintained" style="color: var(--color-base, #202122); " title="Old version, still maintained" data-sort-value="5.5.1 Release" | Old version, still maintained: 5.5.1 Release | November 15, 2019 | current standard, minor text modifications to 5.5.1 Draft. |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="5.6 Private Draft" | Old version, not maintained: 5.6 Private Draft | - | "Jed Allen sent those two files to a few people only for sort of "private comments" |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="6.0 XML Draft" | Old version, not maintained: 6.0 XML Draft | December 28, 2001 | Was not a complete specification, and not recommended to begin to software implementations. |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="7.0.0-rc1 Draft" | Old version, not maintained: 7.0.0-rc1 Draft | February 2021 | Release candidate revealed for RootsTech 2021, but then all talks, specifications and the web site were removed on 25 February 2021 |
| class="templateVersion co swatch-unsupported" style="color: var(--color-base, #202122); " title="Old version, not maintained" data-sort-value="7.0" | Old version, not maintained: 7.0 | 27 May 2021 | Modernize character encoding, clarify ambiguities in 5.5.1 specification, introduce semantic versioning, improve multimedia handling |
| class="templateVersion c swatch-latest" style="color: var(--color-base, #202122); " title="Latest version" data-sort-value="7.0.13" | Latest version: 7.0.13 | 4 August 2023 | |
| Legend:Old version, not maintainedOld version, still maintainedLatest versionLatest preview versionFuture version |||

## Limitations
### Support for multi-person events and sources

A GEDCOM file can contain information on events such as births, deaths, census records, ship's records, marriages, etc.; a rule of thumb is that an event is something that took place at a specific time, at a specific place (even if time and place are not known). GEDCOM files can also contain attributes such as physical description, occupation, and total number of children; unlike events, attributes generally cannot be associated with a specific time or place.
The GEDCOM specification requires that each event or attribute is associated with exactly one individual or family. This causes redundancy for events such as census records where the actual census entry often contains information on multiple individuals. In the GEDCOM file, for census records a separate census "CENS" event must be added for each individual referenced. Some genealogy programs, such as Gramps and The Master Genealogist, have elaborate database structures for sources that are used, among other things, to represent multi-person events. When databases are exported from one of these programs to GEDCOM, these database structures cannot be represented in GEDCOM due to this limitation, with the result that the event or source information including all of the relevant citation reference information must be duplicated each place that it is used. This duplication makes it difficult for the user to maintain the information related to sources.
In the GEDCOM specification, events that are associated with a family such as marriage information is only stored in a GEDCOM once, as part of the family (FAM) record, and then both spouses are linked to that single family record.

### Ambiguity in the specification

The GEDCOM specification was made purposefully flexible to support many ways of encoding data, particularly in the area of sources. This flexibility has led to a great deal of ambiguity, and has produced the side effect that some genealogy programs which import GEDCOM do not import all of the data from a file.

### Ordering of events that do not have dates

The GEDCOM specification does not offer explicit support for keeping a known order of events. In particular, the order of relationships (FAMS) for a person and the order of the children within a relationship (FAM) can be lost. In many cases the sequence of events can be derived from the associated dates. But dates are not always known, in particular when dealing with data from centuries ago. For example, in the case that a person has had two relationships, both with unknown dates, but from descriptions it is known that the second one is indeed the second one. The order in which these FAMS are recorded in GEDCOM's INDI record will depend on the exporting program. In Aldfaer for instance, the sequence depends on the ordering of the data by the user (alphabetical, chronological, reference, etc.). The proposed XML GEDCOM standard does not address this issue either.

## Lesser-known features

GEDCOM has many features that are not commonly used. Some software packages do not support all the features that the GEDCOM standard allows.

### Multimedia

The GEDCOM standard supports the inclusion of multimedia objects (for example, photos of individuals). Such multimedia objects can be either included in the GEDCOM file itself (called the "embedded form") or in an external file where the name of the external file is specified in the GEDCOM file (called the "linked form"). Embedding multimedia directly in the GEDCOM file makes transmission of data easier, in that all of the information (including the multimedia data) is in one file, but the resulting file can be enormous. Linking multimedia keeps the size of the GEDCOM file under control, but then when transmitting the file, the multimedia objects must either be transmitted separately or archived together with the GEDCOM into one larger file. Support for embedding media directly was dropped in the draft 5.5.1 standard.

### Conflicting information

The GEDCOM standard allows for the specification of multiple opinions or conflicting data, simply by specifying multiple records of the same type. For example, if an individual's birth date was recorded as 10 January 1800 on the birth certificate, but 11 January 1800 on the death certificate, two BIRT records for that individual would be included, the first with the 10 January 1800 date and giving the birth certificate as the source, and the second with the 11 January 1800 date and giving the death certificate as the source. The preferred record is usually listed first.
This example encoded in GEDCOM might look like this:
Conflicting data may also be the result of user errors. The standard does not specify in any way that the contents must be consistent. A birth date like "10 APR 1819" might mistakenly have been recorded as "10 APR 1918" long after the person's death. The only way to reveal such inconsistencies is by rigorous validation of the content data.

### Internationalization

The GEDCOM standard supports internationalization in several ways. First, newer versions of the standard allow data to be stored in Unicode (or, more recently, UTF-8), so text in any language can be stored. Secondly, in the same way that one can have multiple events on a person, GEDCOM allows one to have multiple names for a person, so names can be stored in multiple languages, although there is no standardized way to indicate which instance is in which language. Finally, in version 5.5.1, the NAME field also supports a phonetic variation (FONE) and a romanized variation (ROMN) of the name.

## GEDCOM X

In February 2012 at the RootsTech 2012 conference, FamilySearch outlined a major new project around genealogical standards called GEDCOM X, and invited collaboration. It includes software developed under the Apache open source license. It includes data formats that facilitate basing family trees on sources and records (both physical artifacts and digital artifacts), support for sharing and linking data online, and an API.
In August 2012 FamilySearch employee and GEDCOM X project leader Ryan Heaton dropped the claim that GEDCOM X is the new industry standard, and repositioned GEDCOM X as another FamilySearch open source project.
After the release of GEDCOM 7, FamilySearch positioned GEDCOM X as useful for interoperation with its FamilySearch Family Tree software.

## Alternatives

Commsoft, the authors of the Roots series of genealogy software and Ultimate Family Tree, defined a version called Event-Oriented GEDCOM (also known as "Event GEDCOM" and originally called InterGED), which included events as first class (zero-level) items. Although it is event based, it is still a model built on assumed reality rather than evidence. Event GEDCOM was more flexible, as it allowed some separation between believed events and the participants. However, Event GEDCOM was not widely adopted by other developers due to its semantic differences. With Roots and Ultimate Family Tree no longer available, very few people today are using Event GEDCOM.
Gramps XML is an XML-based open format created by the open source genealogy project Gramps and used also by PhpGedView.
The Family History Information Standards Organisation was established in 2012 with the aim of developing international standards for family history and genealogical information. One of the standards the organization proposed was Extended Legacy Format (ELF), compatible with GEDCOM 5.5(.1), but including an extensibility mechanism. The organization requested public comment on the proposed standard in 2017. It withdrew the proposal because release 7.0 of GEDCOM addressed many of the organization's concerns.