DNA Cousinship Calculator

ANALife Services AuthorityNational Calculator Authority›DNA Cousinship Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

DNA Cousinship Calculator

Estimate the probable relationship between two individuals based on the amount of shared DNA (percentage or centiMorgans). Results show the most likely relationships and the degree of cousinship.

Input Type

Shared DNA (%) Shared DNA (centiMorgans)

Shared DNA Percentage (%)

Enter a value between 0 and 100

Shared DNA (centiMorgans)

Enter a value between 0 and 7,400 cM (total human genome ≈ 7,400 cM)

Calculate Relationship

function dnaToggleInput() { var type = document.getElementById('dna-input-type').value; document.getElementById('dna-percent-group').style.display = (type === 'percent') ? '' : 'none'; document.getElementById('dna-cm-group').style.display = (type === 'cm') ? '' : 'none'; document.getElementById('dna-result').style.display = 'none'; }

// Relationship table based on ISOGG / Blaine Bettinger's Shared cM Project (2020 update) // Each entry: [label, minCM, maxCM, typicalPercent, description] var DNA_RELATIONSHIPS = [ ["Identical Twin", 6800, 7400, 100, "Monozygotic twins share ~100% of DNA."], ["Self / Parent / Child", 3300, 3900, 50, "Parent-child relationships share ~50% DNA."], ["Full Sibling", 2300, 3900, 50, "Full siblings share ~50% DNA on average (range 38–61%)."], ["Grandparent / Grandchild", 1200, 2300, 25, "Grandparent-grandchild share ~25% DNA."], ["Half Sibling", 1160, 2300, 25, "Half siblings share ~25% DNA on average."], ["Aunt/Uncle / Niece/Nephew",1160, 2300, 25, "Aunt/uncle and niece/nephew share ~25% DNA."], ["1st Cousin", 553, 1225, 12.5, "First cousins share ~12.5% DNA (one set of great-grandparents in common)."], ["Half Aunt/Uncle / Half Niece/Nephew", 500, 1215, 12.5, "Half aunt/uncle relationships share ~12.5% DNA."], ["Great-Grandparent / Great-Grandchild", 485, 1486, 12.5, "Great-grandparent shares ~12.5% DNA."], ["1st Cousin Once Removed", 173, 531, 6.25, "First cousins once removed share ~6.25% DNA."], ["Half 1st Cousin", 137, 856, 6.25, "Half first cousins share ~6.25% DNA."], ["2nd Cousin", 41, 515, 3.125,"Second cousins share ~3.125% DNA (two sets of great-great-grandparents in common)."], ["1st Cousin Twice Removed", 43, 173, 3.125,"First cousins twice removed share ~3.125% DNA."], ["Half 1st Cousin Once Removed", 37, 360, 3.125,"Half first cousins once removed share ~3.125% DNA."], ["2nd Cousin Once Removed", 14, 173, 1.563,"Second cousins once removed share ~1.563% DNA."], ["3rd Cousin", 0, 173, 0.781,"Third cousins share ~0.781% DNA."], ["2nd Cousin Twice Removed", 0, 71, 0.781,"Second cousins twice removed share ~0.781% DNA."], ["3rd Cousin Once Removed", 0, 71, 0.391,"Third cousins once removed share ~0.391% DNA."], ["4th Cousin", 0, 71, 0.195,"Fourth cousins share ~0.195% DNA."], ["Distant Cousin (5th+)", 0, 35, 0.098,"Fifth cousins and beyond share very small amounts of DNA."] ];

var TOTAL_GENOME_CM = 7400;

function dnaCalc() { var type = document.getElementById('dna-input-type').value; var sharedCM, sharedPct;

if (type === 'percent') { var pctVal = document.getElementById('dna-percent').value.trim(); if (pctVal === '' || isNaN(pctVal)) { dnaShowError('Please enter a valid shared DNA percentage.'); return; } sharedPct = parseFloat(pctVal); if (sharedPct 100) { dnaShowError('Shared DNA percentage must be between 0 and 100.'); return; } sharedCM = (sharedPct / 100) * TOTAL_GENOME_CM; } else { var cmVal = document.getElementById('dna-cm').value.trim(); if (cmVal === '' || isNaN(cmVal)) { dnaShowError('Please enter a valid centiMorgan value.'); return; } sharedCM = parseFloat(cmVal); if (sharedCM TOTAL_GENOME_CM) { dnaShowError('Shared DNA (cM) must be between 0 and 7,400 cM.'); return; } sharedPct = (sharedCM / TOTAL_GENOME_CM) * 100; }

// Find matching relationships var matches = []; for (var i = 0; i = minCM && sharedCM '; html += '' + 'Relationship' + 'Typical %' + 'Range (cM)' + '';

for (var j = 0; j Most Likely' : ''; html += '' + '' + m.label + badge + '' + m.desc + '' + '' + m.typPct + '%' + '' + m.minCM + '–' + m.maxCM + ' cM' + ''; } html += '';

// Coefficient of relationship var coeff = sharedPct / 100; html += 'Coefficient of Relationship (r): ' + coeff.toFixed(5) + '  |  Degrees of Separation: ' + dnaDegreesOfSeparation(sharedPct) + '

';

resultDiv.innerHTML = html; }

function dnaEstimateCousinDegree(pct) { // Cousin degree n: expected shared DNA = (1/2)^(2n+2) * 100 for first cousins n=1 // More precisely: 1st cousin = 12.5%, 2nd = 3.125%, 3rd = 0.781%, 4th = 0.195% if (pct >= 50) return 'Parent/Child or Sibling (not a cousin relationship)'; if (pct >= 25) return 'Grandparent/Grandchild, Half-Sibling, or Aunt/Uncle level'; if (pct >= 12.5) return '1st Cousin level (~12.5%)'; if (pct >= 6.25) return '1st Cousin Once Removed or 2nd Cousin level (~6.25%)'; if (pct >= 3.125) return '2nd Cousin or 1st Cousin Twice Removed level (~3.125%)'; if (pct >= 1.563) return '2nd Cousin Once Removed or 3rd Cousin level (~1.563%)'; if (pct >= 0.781) return '3rd Cousin level (~0.781%)'; if (pct >= 0.391) return '3rd Cousin Once Removed or 4th Cousin level (~0.391%)'; if (pct >= 0.195) return '4th Cousin level (~0.195%)'; return '5th Cousin or more distant'; }

function dnaDegreesOfSeparation(pct) { // Degrees of separation = -log2(pct/100) if (pct

#### Formulas & Methods

Shared DNA Conversion: Shared cM = (Shared % / 100) × 7,400 cM The human autosomal genome is approximately 7,400 centiMorgans (cM) in total.

Expected Shared DNA by Relationship: Expected % = (1/2)n × 100 where n is the number of meioses (generational steps) separating the two individuals through their most recent common ancestor(s).

Coefficient of Relationship (r): r = Shared % / 100 This represents the probability that any given allele is identical by descent.

Degrees of Separation: Degrees = −log₂(Shared % / 100) Provides a continuous estimate of genetic distance.

Cousin Degree Formula: For nth cousins: Expected Shared % = (1/2)2(n+1) × 100 1st cousin (n=1): (1/2)⁴ × 100 = 6.25% per side × 2 sides = 12.5%

#### Assumptions & References

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References