# Genogram Symbols Explained: A Complete Visual Guide

> Complete visual guide to genogram symbols. Squares, circles, divorce lines, twins, adoption and emotional relationships — every symbol explained simply.

Source: https://genotool.com/en/blog/genogram-symbols-explained-complete-visual-guide · Updated: 2026-05-30

# Genogram Symbols Explained: A Complete Visual Guide

Genograms use a standardized visual language. Whether you are a student studying family therapy, a social worker building a case file, or a researcher mapping generational health patterns, knowing what each shape and line means is essential to reading — and drawing — them correctly.

This guide covers every symbol you will commonly encounter: person shapes, family relationships, parent–child connections, and emotional bonds. Most symbols follow the conventions established by Monica McGoldrick and Randy Gerson, which are the standards used in clinical practice today.

## Person Symbols

<div style="margin:2rem 0;">
<svg viewBox='0 0 800 340' xmlns='http://www.w3.org/2000/svg' style='max-width:100%;height:auto;display:block;margin:0 auto;' role='img'>
  <desc>Genogram person symbols: squares for male, circles for female, diamonds for pets, triangles for pregnancy, X overlays for deceased, and double borders for the index person.</desc>
  <g fill='none' stroke='currentColor' stroke-width='2.5'>
    <rect x='70' y='25' width='60' height='60'/>
    <circle cx='300' cy='55' r='30'/>
    <polygon points='500,25 530,55 500,85 470,55'/>
    <polygon points='700,25 730,85 670,85'/>
    <rect x='103' y='180' width='60' height='60'/>
    <line x1='103' y1='180' x2='163' y2='240'/>
    <line x1='163' y1='180' x2='103' y2='240'/>
    <circle cx='400' cy='210' r='30'/>
    <line x1='375' y1='185' x2='425' y2='235'/>
    <line x1='425' y1='185' x2='375' y2='235'/>
    <rect x='637' y='180' width='60' height='60'/>
    <rect x='645' y='188' width='44' height='44'/>
  </g>
  <g fill='currentColor' font-family='sans-serif' font-size='15' text-anchor='middle'>
    <text x='100' y='115'>Male</text>
    <text x='300' y='115'>Female</text>
    <text x='500' y='115'>Pet</text>
    <text x='700' y='115'>Pregnancy</text>
    <text x='133' y='270'>Deceased male</text>
    <text x='400' y='270'>Deceased female</text>
    <text x='667' y='270'>Index person</text>
  </g>
  <g fill='#888' font-family='sans-serif' font-size='12' text-anchor='middle'>
    <text x='100' y='135'>Square</text>
    <text x='300' y='135'>Circle</text>
    <text x='500' y='135'>Diamond</text>
    <text x='700' y='135'>Triangle</text>
    <text x='133' y='290'>X through square</text>
    <text x='400' y='290'>X through circle</text>
    <text x='667' y='290'>Double border</text>
  </g>
</svg>
</div>

Every individual in a genogram is drawn as a single shape. Squares mean male, circles mean female, diamonds mark pets (a modern convention), and a small triangle indicates a current pregnancy. A few additional rules apply to any person symbol:

- The **name** is written above the symbol.
- The **age** is written inside the symbol.
- The **birth and death years** sit below it, for example *1962 – 2019*.
- The **index person** — the proband, or the individual at the centre of the assessment — is drawn with a double-line border, or marked with a small arrow.
- A **deceased** person has an "X" drawn through the symbol.

### Pregnancy, Loss, and Birth Outcomes

These outcomes hang from the child line like any other child. In GenoTool they are all built on the pregnancy triangle, with different marks layered on top, so they look alike and are easy to mix up at first.

<div style="margin:2rem 0;">
<svg viewBox='0 0 800 180' xmlns='http://www.w3.org/2000/svg' style='max-width:100%;height:auto;display:block;margin:0 auto;' role='img'>
  <desc>How GenoTool draws pregnancy, miscarriage, induced abortion and stillbirth: pregnancy is a plain triangle, miscarriage a triangle with an X, induced abortion a triangle with an X and a horizontal bar, and stillbirth the gender symbol with an X.</desc>
  <g fill='none' stroke='currentColor' stroke-width='2.5'>
    <polygon points='100,30 120,70 80,70'/>
    <polygon points='300,30 320,70 280,70'/>
    <line x1='282' y1='38' x2='318' y2='72'/>
    <line x1='318' y1='38' x2='282' y2='72'/>
    <polygon points='500,30 520,70 480,70'/>
    <line x1='482' y1='38' x2='518' y2='72'/>
    <line x1='518' y1='38' x2='482' y2='72'/>
    <line x1='476' y1='54' x2='524' y2='54'/>
    <circle cx='700' cy='52' r='22'/>
    <line x1='682' y1='34' x2='718' y2='70'/>
    <line x1='718' y1='34' x2='682' y2='70'/>
  </g>
  <g fill='currentColor' font-family='sans-serif' font-size='15' text-anchor='middle'>
    <text x='100' y='110'>Pregnancy</text>
    <text x='300' y='110'>Miscarriage</text>
    <text x='500' y='110'>Induced abortion</text>
    <text x='700' y='110'>Stillbirth</text>
  </g>
  <g fill='#888' font-family='sans-serif' font-size='12' text-anchor='middle'>
    <text x='100' y='130'>Triangle</text>
    <text x='300' y='130'>Triangle with X</text>
    <text x='500' y='130'>Triangle, X and bar</text>
    <text x='700' y='130'>Gender symbol with X</text>
  </g>
</svg>
</div>

A current pregnancy is a plain triangle. A miscarriage adds an "X" through that triangle. An induced abortion adds both an "X" and a short horizontal bar across the triangle, which sets a deliberate termination apart from a spontaneous loss. A stillbirth keeps the child's gender symbol — a square or a circle — with an "X" through it.

## Family Relationship Lines

Horizontal lines connect partners. The exact style of the line tells you what kind of relationship it is.

<div style="margin:2rem 0;">
<svg viewBox='0 0 800 420' xmlns='http://www.w3.org/2000/svg' style='max-width:100%;height:auto;display:block;margin:0 auto;' role='img'>
  <desc>Partner relationship lines: solid for marriage, dashed for cohabitation, solid with a single slash for separation, solid with a double slash for divorce.</desc>
  <g fill='none' stroke='currentColor' stroke-width='2.5'>
    <rect x='160' y='25' width='40' height='40'/>
    <line x1='200' y1='45' x2='450' y2='45'/>
    <circle cx='470' cy='45' r='20'/>
    <rect x='160' y='125' width='40' height='40'/>
    <line x1='200' y1='145' x2='450' y2='145' stroke-dasharray='8 6'/>
    <circle cx='470' cy='145' r='20'/>
    <rect x='160' y='225' width='40' height='40'/>
    <line x1='200' y1='245' x2='450' y2='245'/>
    <line x1='310' y1='225' x2='335' y2='265'/>
    <circle cx='470' cy='245' r='20'/>
    <rect x='160' y='325' width='40' height='40'/>
    <line x1='200' y1='345' x2='450' y2='345'/>
    <line x1='300' y1='325' x2='325' y2='365'/>
    <line x1='320' y1='325' x2='345' y2='365'/>
    <circle cx='470' cy='345' r='20'/>
  </g>
  <g fill='currentColor' font-family='sans-serif' font-size='15'>
    <text x='530' y='50'>Marriage</text>
    <text x='530' y='150'>Cohabitation</text>
    <text x='530' y='250'>Separation</text>
    <text x='530' y='350'>Divorce</text>
  </g>
  <g fill='#888' font-family='sans-serif' font-size='12'>
    <text x='530' y='68'>Solid horizontal line</text>
    <text x='530' y='168'>Dashed horizontal line</text>
    <text x='530' y='268'>Solid line + single slash</text>
    <text x='530' y='368'>Solid line + double slash</text>
  </g>
</svg>
</div>

The marriage date usually sits above the line — for example, *m. 2010*. Separation and divorce dates are written above their respective slashes. When one partner has had previous relationships, multiple horizontal lines are stacked vertically, with the oldest relationship drawn on the outside and the most recent closest to the children.

### The Divorce Line, Specifically

This is one of the most-searched genogram questions, so it deserves its own note. A divorce is shown by **two slashes through the marriage line**, both leaning to the right. The marriage date typically appears on the left of the line, and the divorce date appears next to the slashes.

If the same couple later remarries each other, a new horizontal line is added below — and yes, some practitioners do end up drawing three or four marriage lines for the same pair.

## Parent–Child Lines

Vertical lines drop from the parental marriage line down to each child. The style of the vertical line tells you whether the child is biological, adopted, or in foster care. Twins branch from a single point, and identical twins get an extra horizontal bar between them.

<div style="margin:2rem 0;">
<svg viewBox='0 0 800 245' xmlns='http://www.w3.org/2000/svg' style='max-width:100%;height:auto;display:block;margin:0 auto;' role='img'>
  <desc>How GenoTool draws the line down to each child, all hanging from the parents' line: a solid line for a biological child, a blue dashed line for an adopted child, a green dotted line for a foster child, a plain V for fraternal twins, and a V with a horizontal bar for identical twins.</desc>
  <g fill='none' stroke='currentColor' stroke-width='2.5'>
    <rect x='30' y='15' width='44' height='44'/>
    <circle cx='758' cy='37' r='22'/>
    <line x1='52' y1='59' x2='52' y2='110'/>
    <line x1='52' y1='110' x2='758' y2='110'/>
    <line x1='758' y1='59' x2='758' y2='110'/>
    <line x1='150' y1='110' x2='150' y2='160' stroke='#16a34a' stroke-dasharray='2 5'/>
    <rect x='130' y='160' width='40' height='40'/>
    <line x1='250' y1='110' x2='250' y2='160' stroke='#4f46e5' stroke-dasharray='7 5'/>
    <circle cx='250' cy='180' r='20'/>
    <line x1='350' y1='110' x2='350' y2='160'/>
    <rect x='330' y='160' width='40' height='40'/>
    <line x1='495' y1='110' x2='450' y2='160'/>
    <line x1='495' y1='110' x2='540' y2='160'/>
    <rect x='430' y='160' width='40' height='40'/>
    <circle cx='540' cy='180' r='20'/>
    <line x1='685' y1='110' x2='640' y2='160'/>
    <line x1='685' y1='110' x2='730' y2='160'/>
    <rect x='620' y='160' width='40' height='40'/>
    <rect x='710' y='160' width='40' height='40'/>
    <line x1='660' y1='180' x2='710' y2='180'/>
  </g>
  <g fill='currentColor' font-family='sans-serif' font-size='13' text-anchor='middle'>
    <text x='52' y='80'></text>
    <text x='758' y='80'></text>
    <text x='150' y='225'>foster</text>
    <text x='250' y='225'>Adopted</text>
    <text x='350' y='225'>Biological</text>
    <text x='450' y='225'>twin1</text>
    <text x='540' y='225'>twin2</text>
    <text x='640' y='225'>identical</text>
    <text x='730' y='225'>twins</text>
  </g>
</svg>
</div>

Children are always drawn left to right by age, with the oldest on the left. For triplets, quadruplets and so on, three or more lines diverge from the same point on the parent line. In GenoTool the adopted line is drawn in blue and the foster line in green, so the connection type stands out at a glance.

## Emotional Relationship Lines

These are drawn as separate lines between individuals — independent of biological or marital connections. They show the emotional quality of a relationship, and unlike biological lines, they can change over time as the family evolves.

<div style="margin:2rem 0;">
<svg viewBox='0 0 800 400' xmlns='http://www.w3.org/2000/svg' style='max-width:100%;height:auto;display:block;margin:0 auto;' role='img'>
  <desc>Emotional relationship lines: thin for distant, two parallel for close, three parallel for very close or fused, dashed for cut-off, zigzag for conflictual, zigzag with arrowhead for hostile.</desc>
  <g fill='none' stroke='currentColor' stroke-width='2.5'>
    <rect x='80' y='20' width='30' height='30'/>
    <line x1='110' y1='35' x2='385' y2='35' stroke-width='1.5'/>
    <circle cx='400' cy='35' r='15'/>
    <rect x='80' y='80' width='30' height='30'/>
    <line x1='110' y1='91' x2='385' y2='91'/>
    <line x1='110' y1='99' x2='385' y2='99'/>
    <circle cx='400' cy='95' r='15'/>
    <rect x='80' y='140' width='30' height='30'/>
    <line x1='110' y1='149' x2='385' y2='149'/>
    <line x1='110' y1='155' x2='385' y2='155'/>
    <line x1='110' y1='161' x2='385' y2='161'/>
    <circle cx='400' cy='155' r='15'/>
    <rect x='80' y='200' width='30' height='30'/>
    <line x1='110' y1='215' x2='385' y2='215' stroke-dasharray='8 7'/>
    <circle cx='400' cy='215' r='15'/>
    <rect x='80' y='260' width='30' height='30'/>
    <polyline points='110,275 140,260 170,290 200,260 230,290 260,260 290,290 320,260 350,290 380,275'/>
    <circle cx='400' cy='275' r='15'/>
    <rect x='80' y='320' width='30' height='30'/>
    <polyline points='110,335 140,320 170,350 200,320 230,350 260,320 290,350 320,320 350,350 380,335'/>
    <polyline points='370,326 386,335 370,344'/>
    <circle cx='400' cy='335' r='15'/>
  </g>
  <g fill='currentColor' font-family='sans-serif' font-size='14'>
    <text x='440' y='40'>Distant</text>
    <text x='440' y='100'>Close</text>
    <text x='440' y='160'>Very close / Fused</text>
    <text x='440' y='220'>Estranged / Cut-off</text>
    <text x='440' y='280'>Conflictual</text>
    <text x='440' y='340'>Hostile</text>
  </g>
  <g fill='#888' font-family='sans-serif' font-size='11'>
    <text x='440' y='55'>Single thin line</text>
    <text x='440' y='115'>Two parallel lines</text>
    <text x='440' y='175'>Three parallel lines</text>
    <text x='440' y='235'>Dashed line</text>
    <text x='440' y='295'>Zigzag line</text>
    <text x='440' y='355'>Zigzag + arrowhead</text>
  </g>
</svg>
</div>

This overlay is where a genogram becomes more than a family tree. A single chart can show that a son has a fused–conflictual relationship with his father and a cut-off with his mother — context that no plain pedigree chart could convey. For hostile or abusive relationships, the arrowhead points to the recipient.

## Layout Conventions

A few quiet rules shape every well-drawn genogram:

- **Generations stack vertically**, with the oldest generation at the top.
- **Within a generation, the oldest individual is drawn on the left.**
- **The proband** — the person being assessed — is usually centred in the bottom or middle generation.
- **Households** can be enclosed in a dashed circle or rectangle to show who currently lives together. This is useful when family structure and household structure no longer match.

## Medical and Behavioural Annotations

Many practitioners use shading or colour to indicate conditions:

- **A filled (shaded) symbol** indicates the person is affected by the condition being tracked — for example depression, alcoholism, or heart disease.
- **A half-filled symbol** can indicate partial affliction, or carrier status in genetic charts.
- **A small letter inside the symbol** is sometimes used as an abbreviation for the condition — *A* for alcoholism, *D* for depression, and so on.

In genetic counselling specifically, the pedigree-chart convention uses a half-filled symbol for carriers of an autosomal recessive trait. This is a slightly different rule from the McGoldrick standard, so always check which one your context is using.

## Quick Reference Cheat Sheet

If you remember only the four categories of lines you will meet most often, you can read almost any genogram:

1. **The horizontal line between partners** — solid for married, dashed for unmarried partners, with slashes for separation or divorce.
2. **The vertical line down to children** — solid for biological, dashed for adopted, dotted for foster.
3. **The "X" through a symbol** — deceased.
4. **The emotional overlay lines** — close, distant, conflictual, cut-off, hostile.

Master those four and you will read about ninety percent of the genograms you encounter in practice.

## Where Standards Diverge

A few warnings worth knowing before you take a genogram at face value:

- **Triangle** is sometimes used for pet, and sometimes for unknown sex. Always check the legend.
- **Non-binary and transgender symbols** are still being formalised. Some practitioners use a triangle, others use the McGoldrick & Hardy proposal of a different inner shape, others rely on written annotations.
- **Pets** are increasingly drawn as diamonds rather than triangles, especially in modern software.

If you are working in a clinical setting, check which standard your supervisor or institution follows before submitting your work.

## Drawing Genograms Without Memorising Every Symbol

Genotool handles all of this for you. When you add a partner, the right kind of line appears. When you mark someone as deceased, the X is drawn automatically. When you change a relationship from *married* to *divorced*, the slashes appear in the right place. You select the relationship type from a menu and the application takes care of the rest — including the emotional overlay lines.

Try the [demo](/en/blog/demo-of-basic-functions) to see how it works, or start a free genogram and skip the symbol drill altogether.
