{"id":89,"date":"2026-09-05T16:34:54","date_gmt":"2026-09-05T16:34:54","guid":{"rendered":"https:\/\/ivfprep.guide\/articles\/?p=89"},"modified":"2026-10-19T08:06:08","modified_gmt":"2026-10-19T08:06:08","slug":"what-implantation-bleeding-looks-like","status":"publish","type":"post","link":"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/","title":{"rendered":"What Implantation Bleeding Looks Like: Colour and Amount"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>What people call implantation bleeding usually looks like a small amount of pink or brown spotting, light enough to mark a liner rather than fill one, lasting anywhere from a few hours to a couple of days. Plenty of other things look exactly the same. Colour and amount cannot tell you whether your transfer worked.<\/strong><\/p>\n\n\n\n<div class=\"msq-audio\" data-article=\"what-implantation-bleeding-looks-like\" data-minutes=\"9\">\n<style>.msq-audio{margin:1.25em 0 1.75em;padding:16px 18px;background:#EEF3F8;border:1px solid #CBD8E6;border-radius:12px}\n.msq-audio-lead{margin:0 0 8px;font-size:.95em}.msq-audio audio{width:100%;margin:0 0 12px;display:block}\n.msq-toc-title{margin:0 0 6px;font-weight:700}.msq-toc ol{margin:0;padding:0;list-style:none}\n.msq-toc li{display:flex;gap:10px;align-items:center;padding:6px 6px;border-bottom:1px solid #CBD8E6;border-radius:8px}\n.msq-toc li:last-child{border-bottom:0}.msq-toc li.is-active{background:#fff}\n.msq-toc-play{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:0;background:#1F4E79;color:#fff;font:inherit;font-size:.72em;line-height:30px;padding:0;cursor:pointer}\n.msq-toc-play.is-playing{background:#B4531A}\n.msq-toc-time{flex:0 0 auto;min-width:3.1em;font-variant-numeric:tabular-nums;color:#4A5560;font-size:.9em}\n.msq-toc a{color:#1B1F24;text-decoration:none;line-height:1.35}.msq-toc li.is-active a{font-weight:700;color:#1F4E79}\n.msq-audio-note{margin:10px 0 0;font-size:.82em;color:#4A5560}\nh2.wp-block-heading[id]{scroll-margin-top:24px}\n.msq-hplay{display:inline-block;vertical-align:middle;width:26px;height:26px;margin:0 0 0 10px;border-radius:50%;border:0;background:#1F4E79;cursor:pointer;padding:0;position:relative;top:-2px}\n.msq-hplay::before{content:'\u25b6\ufe0e';display:block;color:#fff;font-size:11px;line-height:26px;text-align:center}\n.msq-hplay.is-playing{background:#B4531A}.msq-hplay.is-playing::before{content:'\u2016';font-size:13px;font-weight:700}\n.msq-bar{position:fixed;left:0;right:0;bottom:0;z-index:9000;display:flex;align-items:center;gap:10px;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:#FFFFFF;border-top:1px solid #CBD8E6;box-shadow:0 -4px 16px rgba(0,0,0,.08);font-size:.92em;color:#1B1F24;transition:transform .2s ease}\n.msq-bar.is-hidden{transform:translateY(130%)}\n.msq-bar-play{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:#1F4E79;color:#fff;font:inherit;font-weight:700;padding:8px 14px 8px 12px;cursor:pointer;white-space:nowrap}\n.msq-bar-play.is-playing{background:#B4531A}\n.msq-bar-icon::before{content:'\u25b6\ufe0e';font-size:12px}.msq-bar-play.is-playing .msq-bar-icon::before{content:'\u2016';font-size:14px;font-weight:700}\n.msq-bar-chapter{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.msq-bar-time{flex:0 0 auto;font-variant-numeric:tabular-nums;color:#4A5560;font-size:.9em}\n.msq-bar-rate,.msq-bar-close{flex:0 0 auto;border:1px solid #CBD8E6;background:#fff;color:#1B1F24;font:inherit;font-size:.85em;line-height:1;border-radius:8px;padding:7px 9px;cursor:pointer}\n.msq-bar-close::before{content:'\u2715'}\n.msq-bar.msq-bar-pill{left:auto;right:14px;bottom:14px;padding:6px;padding-bottom:6px;border:1px solid #CBD8E6;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.15)}\n.msq-bar.msq-bar-pill .msq-bar-chapter,.msq-bar.msq-bar-pill .msq-bar-time,.msq-bar.msq-bar-pill .msq-bar-rate{display:none}\nbody.msq-has-bar{padding-bottom:76px}\n@media (max-width:600px){.msq-bar-time{display:none}.msq-bar{gap:8px;padding-left:10px;padding-right:10px}}\n.msq-s.msq-now{background:#EEF3F8;box-shadow:0 2px 0 #1F4E79;border-radius:2px}\ntr.msq-now td,tr.msq-now th{background:#EEF3F8;box-shadow:inset 0 -2px 0 #1F4E79}\n@media (hover:hover){.msq-s,tr[data-i]{cursor:pointer}.msq-s:hover{background:#EEF3F8}}<\/style>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"AudioObject\",\"@id\":\"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/#audio\",\"name\":\"What Implantation Bleeding Looks Like: Colour and Amount, read aloud\",\"description\":\"Synthetic voice reading of the article, recorded 19 October 2026.\",\"contentUrl\":\"https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/10\/what-implantation-bleeding-looks-like-audio-202610191335.mp3\",\"encodingFormat\":\"audio\/mpeg\",\"duration\":\"PT9M8S\",\"uploadDate\":\"2026-10-19\",\"inLanguage\":\"en-GB\",\"isAccessibleForFree\":true,\"mainEntityOfPage\":\"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/\",\"hasPart\":[{\"@type\":\"Clip\",\"name\":\"What Implantation Bleeding Looks Like: Colour and Amount\",\"startOffset\":0,\"endOffset\":57},{\"@type\":\"Clip\",\"name\":\"What does implantation bleeding actually look like?\",\"startOffset\":57,\"endOffset\":115,\"url\":\"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/#what-does-implantation-bleeding-actually-look-like\"},{\"@type\":\"Clip\",\"name\":\"Why does the colour not settle anything?\",\"startOffset\":115,\"endOffset\":164,\"url\":\"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/#why-does-the-colour-not-settle-anything\"},{\"@type\":\"Clip\",\"name\":\"How much counts as spotting, and how much is bleeding?\",\"startOffset\":164,\"endOffset\":247,\"url\":\"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/#how-much-counts-as-spotting-and-how-much-is-bleeding\"},{\"@type\":\"Clip\",\"name\":\"When does it happen, and does the timing narrow it down?\",\"startOffset\":247,\"endOffset\":309,\"url\":\"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/#when-does-it-happen-and-does-the-timing-narrow-it-down\"},{\"@type\":\"Clip\",\"name\":\"What else makes people bleed after an embryo transfer?\",\"startOffset\":309,\"endOffset\":381,\"url\":\"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/#what-else-makes-people-bleed-after-an-embryo-transfer\"},{\"@type\":\"Clip\",\"name\":\"What are you actually comparing it against?\",\"startOffset\":381,\"endOffset\":433,\"url\":\"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/#what-are-you-actually-comparing-it-against\"},{\"@type\":\"Clip\",\"name\":\"What is worth telling the clinic, and when?\",\"startOffset\":433,\"endOffset\":482,\"url\":\"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/#what-is-worth-telling-the-clinic-and-when\"},{\"@type\":\"Clip\",\"name\":\"What can the colour and the amount never tell you?\",\"startOffset\":482,\"endOffset\":548,\"url\":\"https:\/\/ivfprep.guide\/articles\/what-implantation-bleeding-looks-like\/#what-can-the-colour-and-the-amount-never-tell-you\"}],\"contentSize\":\"3.8 MB\"}<\/script>\n<p class=\"msq-audio-lead\"><strong>Listen to this article<\/strong>, about 9 minutes. A synthetic voice reads the article and announces each section title as it begins; tables are read row by row and the questions at the end are left out.<\/p>\n<audio class=\"msq-audio-player\" controls preload=\"metadata\" src=\"https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/10\/what-implantation-bleeding-looks-like-audio-202610191335.mp3\"><\/audio>\n<nav class=\"msq-toc\" aria-label=\"In this article\"><p class=\"msq-toc-title\">In this article<\/p>\n<ol>\n<li data-start=\"0.0\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"0.0\" aria-label=\"Play from: What Implantation Bleeding Looks Like: Colour and Amount\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:00<\/span><a href=\"#top\">What Implantation Bleeding Looks Like: Colour and Amount<\/a><\/li>\n<li data-start=\"57.38\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"57.38\" aria-label=\"Play from: What does implantation bleeding actually look like?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:57<\/span><a href=\"#what-does-implantation-bleeding-actually-look-like\">What does implantation bleeding actually look like?<\/a><\/li>\n<li data-start=\"115.2\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"115.2\" aria-label=\"Play from: Why does the colour not settle anything?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">1:55<\/span><a href=\"#why-does-the-colour-not-settle-anything\">Why does the colour not settle anything?<\/a><\/li>\n<li data-start=\"164.1\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"164.1\" aria-label=\"Play from: How much counts as spotting, and how much is bleeding?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">2:44<\/span><a href=\"#how-much-counts-as-spotting-and-how-much-is-bleeding\">How much counts as spotting, and how much is bleeding?<\/a><\/li>\n<li data-start=\"246.76\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"246.76\" aria-label=\"Play from: When does it happen, and does the timing narrow it down?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">4:07<\/span><a href=\"#when-does-it-happen-and-does-the-timing-narrow-it-down\">When does it happen, and does the timing narrow it down?<\/a><\/li>\n<li data-start=\"309.06\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"309.06\" aria-label=\"Play from: What else makes people bleed after an embryo transfer?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">5:09<\/span><a href=\"#what-else-makes-people-bleed-after-an-embryo-transfer\">What else makes people bleed after an embryo transfer?<\/a><\/li>\n<li data-start=\"381.04\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"381.04\" aria-label=\"Play from: What are you actually comparing it against?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">6:21<\/span><a href=\"#what-are-you-actually-comparing-it-against\">What are you actually comparing it against?<\/a><\/li>\n<li data-start=\"432.54\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"432.54\" aria-label=\"Play from: What is worth telling the clinic, and when?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">7:13<\/span><a href=\"#what-is-worth-telling-the-clinic-and-when\">What is worth telling the clinic, and when?<\/a><\/li>\n<li data-start=\"482.48\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"482.48\" aria-label=\"Play from: What can the colour and the amount never tell you?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">8:02<\/span><a href=\"#what-can-the-colour-and-the-amount-never-tell-you\">What can the colour and the amount never tell you?<\/a><\/li>\n<\/ol><\/nav>\n<p class=\"msq-audio-note\">Recorded 19 October 2026 from the article as published that day. Press a chapter to jump there; the highlighted line is what is playing. A play button sits beside every section heading, and once you scroll past this player a bar at the bottom of the screen keeps the controls in reach. Tap or click any sentence to hear the reading start from there.<\/p>\n<script>var MSQ_SENT = [[0.0,\"h\",\"whatimplantationbleeding\",48],[3.32,\"p\",\"whatpeoplecallimplantati\",166],[13.92,\"p\",\"plentyofotherthingslooke\",37],[15.92,\"p\",\"colourandamountcannottel\",53],[18.84,\"p\",\"onthispagewhatthespottin\",228],[34.88,\"p\",\"youarealmostcertainlyrea\",127],[42.8,\"p\",\"thispageisaboutwhatthats\",99],[49.08,\"p\",\"itstaysonthevisualquesti\",26],[50.6,\"p\",\"thewiderquestionofwhethe\",103],[57.38,\"h\",\"whatdoesimplantationblee\",44],[59.7,\"p\",\"thedescriptionpeopleconv\",50],[63.58,\"p\",\"apinkorbrownishmarknotic\",66],[68.7,\"p\",\"notaflownotapadthatneeds\",70],[74.26,\"p\",\"publishedsourcesgivewild\",127],[82.22,\"p\",\"thenhspageonvaginalbleed\",208],[95.7,\"p\",\"somewhereontheinternetth\",93],[100.86,\"p\",\"itisworthknowingwheretho\",46],[103.34,\"p\",\"almostallofthemarewritte\",124],[110.58,\"p\",\"nobodywritesacarefulcolo\",69],[115.2,\"h\",\"whydoesthecolournotsettl\",33],[117.72,\"p\",\"colourtellsyouabouttheag\",87],[122.36,\"p\",\"brownmeansolderbloodthat\",43],[125.4,\"p\",\"pinkusuallymeansaverysma\",66],[129.56,\"p\",\"redmeansrecentandmovingf\",29],[131.6,\"p\",\"noneofthosethreefactside\",87],[136.84,\"p\",\"browninparticulariscover\",86],[142.16,\"p\",\"soareadercanarriveataper\",105],[149.4,\"p\",\"thatgapbetweenananswerab\",96],[155.28,\"p\",\"smellrunsintothesamewall\",117],[164.1,\"h\",\"howmuchcountsasspottinga\",43],[167.02,\"p\",\"volumeistheonepartofthis\",72],[171.42,\"p\",\"thelinethatmattersisnotp\",39],[173.66,\"p\",\"itiswhetheryouaremarking\",92],[179.94,\"t\",\"apinkorbrownmarkonlywhen\",144],[190.5,\"t\",\"afewspotsonalineracrossa\",128],[201.34,\"t\",\"enoughtoneedapadorapadso\",171],[214.02,\"t\",\"heavybleedingseverepaino\",155],[226.18,\"p\",\"readthatlastrowstraight\",23],[228.1,\"p\",\"heavybleedingseverepaino\",105],[235.94,\"p\",\"thatisnotaboutyourresult\",24],[237.34,\"p\",\"itisaboutyou\",12],[238.22,\"p\",\"thesamethresholdlogicapp\",122],[246.76,\"h\",\"whendoesithappenanddoest\",44],[249.76,\"p\",\"ablastocysttransferredon\",155],[259.72,\"p\",\"sothehonestversionofthet\",146],[268.4,\"p\",\"ifthevocabularyoftransfe\",141],[278.24,\"p\",\"thereisalsoevidencethatt\",57],[281.72,\"p\",\"ina2003studyof151clinica\",142],[293.52,\"p\",\"thebleedingwasgenerallyl\",136],[301.48,\"p\",\"aclusterofspottingnearth\",123],[309.06,\"h\",\"whatelsemakespeoplebleed\",45],[311.86,\"p\",\"thisisthepartthatrarelym\",49],[314.58,\"p\",\"amedicatedcyclegivesyous\",103],[320.78,\"p\",\"vaginalprogesteroneisthe\",36],[323.1,\"p\",\"applicatorsandpessariess\",208],[336.7,\"p\",\"addtheresidueitselfwhich\",112],[344.06,\"p\",\"whatthatresiduelookslike\",68],[348.54,\"p\",\"spottingisonlyoneentryon\",163],[359.54,\"p\",\"thetransferitselfisanoth\",26],[361.14,\"p\",\"aspeculumandacatheterpas\",164],[370.74,\"p\",\"andbleedinginearlypregna\",157],[381.04,\"h\",\"whatareyouactuallycompar\",36],[382.88,\"p\",\"everydescriptionofimplan\",92],[388.68,\"p\",\"thefirstisyourownperiodw\",113],[395.88,\"p\",\"thesecondisaphotographpo\",179],[406.96,\"p\",\"thestrangersarenotbeingc\",28],[408.64,\"p\",\"theyaredoingwhatpeopledo\",71],[413.12,\"p\",\"butthesampletheyaredrawn\",44],[415.96,\"p\",\"peoplepostwhensomethingh\",93],[421.64,\"p\",\"neitherdothepeopleforwho\",69],[426.0,\"p\",\"thatsilenceisthesubjecto\",71],[432.54,\"h\",\"whatisworthtellingthecli\",34],[434.86,\"p\",\"clinicsarenotaskingabout\",44],[437.58,\"p\",\"theyaresortingforvolumep\",54],[441.7,\"p\",\"writingdownfourthingswhi\",172],[453.42,\"p\",\"callthesamedayforbleedin\",124],[460.82,\"p\",\"donotstopchangeoraddmedi\",56],[464.62,\"p\",\"yourclinicprescribedyour\",86],[470.02,\"p\",\"thehfeaguidanceonivfalso\",188],[482.48,\"h\",\"whatcanthecolourandtheam\",40],[484.64,\"p\",\"whetheritworked\",15],[486.24,\"p\",\"thatisthewholeofit\",18],[487.76,\"p\",\"lightpinkspottinghappens\",74],[492.6,\"p\",\"nothingatallhappensinbot\",63],[496.88,\"p\",\"nordoesaheavierbleedmean\",123],[505.32,\"p\",\"thereisnoshadenovolumean\",131],[513.88,\"p\",\"andifthattestcomesbackpo\",175],[523.92,\"p\",\"ifyouhavebeenstandingint\",69],[527.92,\"p\",\"ithasalreadytoldyouevery\",53],[531.56,\"p\",\"thenwritethefourthingsdo\",107],[539.08,\"p\",\"thisarticleisgeneralinfo\",109],[545.44,\"p\",\"speaktoyourdoctoraboutyo\",38]];\n(function(){\n  function init(){\n  var root = document.querySelector('.msq-audio'); if (!root) { return; }\n  var audio = root.querySelector('audio'), items = Array.prototype.slice.call(root.querySelectorAll('.msq-toc li'));\n  var starts = items.map(function(li){ return parseFloat(li.getAttribute('data-start')) || 0; });\n  var names = items.map(function(li){ return li.querySelector('a').textContent; });\n  var anchors = items.map(function(li){ var h = li.querySelector('a').getAttribute('href') || ''; return (h.charAt(0) === '#' && h !== '#top') ? document.getElementById(h.slice(1)) : null; });\n  var article = root.getAttribute('data-article') || location.pathname, minutes = root.getAttribute('data-minutes') || '';\n  var marks = {}, started = false, pausedAt = -1, closed = false, ended = false;\n  var RATES = [1, 1.25, 1.5], rate = 1;\n  try { var saved = parseFloat(localStorage.getItem('msq-audio-rate')); if (RATES.indexOf(saved) >= 0) { rate = saved; } } catch (e) {}\n  audio.playbackRate = rate;\n  function track(name, extra){ try { if (typeof gtag === 'function') { var p = { article: article }; for (var k in extra) { p[k] = extra[k]; } gtag('event', name, p); } } catch (e) {} }\n  function current(){ var t = audio.currentTime, idx = 0; for (var i = 0; starts.length > i; i += 1) { if (t + 0.25 >= starts[i]) { idx = i; } } return idx; }\n  function onScreen(){\n    var line = window.innerHeight \/ 3, idx = 0;\n    for (var i = 0; anchors.length > i; i += 1) { var el = anchors[i]; if (el && line >= el.getBoundingClientRect().top) { idx = i; } }\n    return idx;\n  }\n  function fmt(s){ s = Math.max(0, Math.round(s || 0)); var m = Math.floor(s \/ 60), r = s % 60; return m + ':' + (10 > r ? '0' : '') + r; }\n  function play(from, source){\n    if (from !== null) { audio.currentTime = from; }\n    var p = audio.play(); if (p && p.catch) { p.catch(function(){}); }\n    track(from === null ? 'audio_resume' : 'audio_chapter', { chapter: names[current()], start: Math.round(audio.currentTime), source: source });\n  }\n  var hbtns = anchors.map(function(el, i){\n    if (!el) { return null; }\n    var b = document.createElement('button'); b.type = 'button'; b.className = 'msq-hplay'; b.setAttribute('aria-label', 'Play this section: ' + names[i]);\n    b.addEventListener('click', function(){\n      if (!audio.paused && current() === i) { audio.pause(); track('audio_pause', { source: 'heading' }); return; }\n      play(starts[i], 'heading');\n    });\n    el.appendChild(b); return b;\n  });\n  var bar = document.createElement('div'); bar.className = 'msq-bar msq-bar-pill is-hidden'; bar.setAttribute('role', 'region'); bar.setAttribute('aria-label', 'Audio player');\n  var playBtn = document.createElement('button'); playBtn.type = 'button'; playBtn.className = 'msq-bar-play';\n  var icon = document.createElement('span'); icon.className = 'msq-bar-icon'; icon.setAttribute('aria-hidden', 'true');\n  var label = document.createElement('span'); label.className = 'msq-bar-label';\n  playBtn.appendChild(icon); playBtn.appendChild(label);\n  var chap = document.createElement('span'); chap.className = 'msq-bar-chapter';\n  var clock = document.createElement('span'); clock.className = 'msq-bar-time';\n  var rateBtn = document.createElement('button'); rateBtn.type = 'button'; rateBtn.className = 'msq-bar-rate'; rateBtn.setAttribute('aria-label', 'Playback speed');\n  var closeBtn = document.createElement('button'); closeBtn.type = 'button'; closeBtn.className = 'msq-bar-close'; closeBtn.setAttribute('aria-label', 'Close the audio bar');\n  bar.appendChild(playBtn); bar.appendChild(chap); bar.appendChild(clock); bar.appendChild(rateBtn); bar.appendChild(closeBtn);\n  document.body.appendChild(bar);\n  function showRate(){ rateBtn.textContent = (rate === 1 ? '1' : String(rate)) + 'x'; }\n  showRate();\n  rateBtn.addEventListener('click', function(){\n    rate = RATES[(RATES.indexOf(rate) + 1) % RATES.length]; audio.playbackRate = rate; showRate();\n    try { localStorage.setItem('msq-audio-rate', String(rate)); } catch (e) {}\n    track('audio_rate', { rate: rate });\n  });\n  closeBtn.addEventListener('click', function(){\n    closed = true; if (!audio.paused) { audio.pause(); } paint(); track('audio_bar_close', {});\n  });\n  function mode(){\n    if (!audio.paused) { return 'pause'; }\n    if (ended) { return 'again'; }\n    if (!started) { return 'listen'; }\n    return (pausedAt === onScreen()) ? 'resume' : 'section';\n  }\n  playBtn.addEventListener('click', function(){\n    var m = mode();\n    if (m === 'pause') { audio.pause(); track('audio_pause', { source: 'bar' }); return; }\n    if (m === 'again') { ended = false; play(0, 'bar'); return; }\n    if (m === 'resume') { play(null, 'bar'); return; }\n    play(starts[onScreen()], 'bar');\n  });\n  function paint(){\n    var idx = current(), playing = !audio.paused, m = mode();\n    items.forEach(function(li, i){\n      var on = (i === idx) && playing, b = li.querySelector('.msq-toc-play'), a = li.querySelector('a');\n      li.classList.toggle('is-active', on); b.classList.toggle('is-playing', on);\n      b.textContent = on ? '\u2016' : '\u25b6\ufe0e';\n      b.setAttribute('aria-label', (on ? 'Pause: ' : 'Play from: ') + a.textContent);\n    });\n    hbtns.forEach(function(b, i){ if (b) { var on = (i === idx) && playing; b.classList.toggle('is-playing', on); b.setAttribute('aria-label', (on ? 'Pause this section: ' : 'Play this section: ') + names[i]); } });\n    playBtn.classList.toggle('is-playing', playing);\n    label.textContent = m === 'pause' ? 'Pause' : m === 'again' ? 'Play again' : m === 'resume' ? 'Resume' : m === 'section' ? 'Play this section' : 'Listen, ' + minutes + ' min';\n    playBtn.setAttribute('aria-label', label.textContent);\n    chap.textContent = started ? names[(playing || m === 'resume') ? idx : onScreen()] : '';\n    clock.textContent = started ? fmt(audio.currentTime) + ' \/ ' + fmt(audio.duration) : '';\n    bar.classList.toggle('msq-bar-pill', !started);\n    var show = !closed && (started || 0 > root.getBoundingClientRect().bottom);\n    bar.classList.toggle('is-hidden', !show);\n    document.body.classList.toggle('msq-has-bar', show);\n  }\n  root.addEventListener('click', function(e){\n    var b = e.target.closest ? e.target.closest('.msq-toc-play') : null; if (!b) { return; }\n    var li = b.parentNode, s = parseFloat(b.getAttribute('data-start')) || 0;\n    if (!audio.paused && current() === items.indexOf(li)) { audio.pause(); track('audio_pause', { source: 'index' }); return; }\n    play(s, 'index');\n  });\n  audio.addEventListener('play', function(){ ended = false; closed = false; if (!started) { started = true; track('audio_play', { minutes: Math.round((audio.duration || 0) \/ 60) }); } paint(); });\n  audio.addEventListener('pause', function(){ pausedAt = current(); paint(); });\n  audio.addEventListener('timeupdate', function(){\n    paint();\n    if (audio.duration > 0) {\n      var pct = Math.floor(audio.currentTime \/ audio.duration * 100);\n      [25, 50, 75].forEach(function(m){ if (pct >= m && !marks[m]) { marks[m] = true; track('audio_progress', { percent: m }); } });\n    }\n  });\n  audio.addEventListener('ended', function(){ ended = true; track('audio_complete', {}); paint(); });\n  var ticking = false;\n  function onScroll(){ if (ticking) { return; } ticking = true; setTimeout(function(){ ticking = false; paint(); }, 80); }\n  window.addEventListener('scroll', onScroll, { passive: true }); window.addEventListener('resize', onScroll);\n  paint();\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n\n(function(){\n  function start(){\n    var root = document.querySelector('.msq-audio'), audio = root ? root.querySelector('audio') : null;\n    var map = (typeof MSQ_SENT !== 'undefined') ? MSQ_SENT : [];\n    if (!root || !audio || !map.length) { return; }\n    var scope = root.closest('main') || root.closest('article') || root.closest('.entry-content') || document.body;\n    var SKIP = '.msq-audio,.msq,.msq-tool,.msq-end,.msq-bar,script,style,noscript,figcaption,#rank-math-faq,.rank-math-block,nav,header,footer';\n    function norm(s){ return s.toLowerCase().replace(\/[^a-z0-9]+\/g, ''); }\n    var nodes = [], stream = '', walker = document.createTreeWalker(scope, NodeFilter.SHOW_TEXT, null), n;\n    while ((n = walker.nextNode())) {\n      var el = n.parentElement; if (!el || el.closest(SKIP)) { continue; }\n      var raw = n.nodeValue, keep = [], norms = '';\n      for (var i = 0; raw.length > i; i += 1) { var c = raw.charAt(i).toLowerCase(); if (\/[a-z0-9]\/.test(c)) { keep.push(i); norms += c; } }\n      if (!norms) { continue; }\n      nodes.push({ node: n, a: stream.length, b: stream.length + norms.length, keep: keep });\n      stream += norms;\n    }\n    var segs = [], cursor = 0, lastRow = null;\n    map.forEach(function(m, idx){\n      var kind = m[1], f = m[2], len = m[3];\n      if (kind === 't') {\n        var rows = scope.querySelectorAll('tr'), after = !lastRow;\n        for (var r = 0; rows.length > r; r += 1) {\n          var tr = rows[r];\n          if (!after) { if (tr === lastRow) { after = true; } continue; }\n          var cell = tr.querySelector('td,th');\n          if (cell && norm(cell.textContent).indexOf(f) === 0) { tr.setAttribute('data-i', idx); lastRow = tr; break; }\n        }\n        return;\n      }\n      var p = stream.indexOf(f, cursor); if (0 > p) { return; }\n      segs.push({ i: idx, a: p, b: Math.min(p + len, stream.length) }); cursor = p + len;\n    });\n    var si = 0;\n    nodes.forEach(function(nd){\n      var frag = document.createDocumentFragment(), raw = nd.node.nodeValue, rawPos = 0, any = false;\n      for (var k = si; segs.length > k; k += 1) {\n        var sg = segs[k]; if (sg.a >= nd.b) { break; } if (nd.a >= sg.b) { continue; }\n        var s = Math.max(sg.a, nd.a), e = Math.min(sg.b, nd.b);\n        var rs = nd.keep[s - nd.a], re2 = nd.keep[e - nd.a - 1] + 1;\n        if (rs > rawPos) { frag.appendChild(document.createTextNode(raw.slice(rawPos, rs))); }\n        var span = document.createElement('span'); span.className = 'msq-s'; span.setAttribute('data-i', sg.i); span.textContent = raw.slice(rs, re2);\n        frag.appendChild(span); rawPos = re2; any = true;\n        if (sg.b > nd.b) { break; }\n      }\n      while (segs.length > si && nd.b >= segs[si].b) { si += 1; }\n      if (!any) { return; }\n      if (raw.length > rawPos) { frag.appendChild(document.createTextNode(raw.slice(rawPos))); }\n      nd.node.parentNode.replaceChild(frag, nd.node);\n    });\n    var starts = map.map(function(m){ return m[0]; }), curIdx = -1, lastUser = 0, timer = null, autoUntil = 0, dragging = false;\n    function idxAt(t){ var lo = 0, hi = starts.length; while (hi > lo + 1) { var mid = (lo + hi) >> 1; if (t + 0.15 >= starts[mid]) { lo = mid; } else { hi = mid; } } return (t + 0.15 >= starts[0]) ? lo : -1; }\n    function setNow(i){\n      if (i === curIdx) { return; }\n      Array.prototype.forEach.call(scope.querySelectorAll('.msq-now'), function(el){ el.classList.remove('msq-now'); });\n      curIdx = i; if (0 > i) { return; }\n      var els = scope.querySelectorAll('[data-i=\"' + i + '\"]'); if (!els.length) { return; }\n      Array.prototype.forEach.call(els, function(el){ el.classList.add('msq-now'); });\n      var r = els[0].getBoundingClientRect(), now = Date.now();\n      if (!dragging && now > lastUser + 2500 && (80 > r.top || r.bottom > window.innerHeight - 140)) {\n        var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n        autoUntil = now + (reduce ? 400 : 1600);\n        els[0].scrollIntoView({ block: 'center', behavior: reduce ? 'auto' : 'smooth' });\n      }\n    }\n    function tick(){ if (!audio.paused) { setNow(idxAt(audio.currentTime)); } }\n    function userScrolled(){ lastUser = Date.now(); }\n    ['wheel', 'touchmove', 'keydown'].forEach(function(ev){ window.addEventListener(ev, userScrolled, { passive: true }); });\n    window.addEventListener('scroll', function(){ if (Date.now() > autoUntil) { userScrolled(); } }, { passive: true });\n    window.addEventListener('mousedown', function(e){ if (e.clientX >= document.documentElement.clientWidth) { dragging = true; userScrolled(); } }, { passive: true });\n    window.addEventListener('mouseup', function(){ if (dragging) { dragging = false; userScrolled(); } }, { passive: true });\n    audio.addEventListener('play', function(){ if (timer) { clearInterval(timer); } timer = setInterval(tick, 150); tick(); });\n    audio.addEventListener('pause', function(){ if (timer) { clearInterval(timer); timer = null; } });\n    scope.addEventListener('click', function(e){\n      if (e.target.closest('a, button, input, select, textarea, label, summary, .msq, .msq-tool, .msq-end, .msq-audio, .msq-bar')) { return; }\n      var sel = window.getSelection ? String(window.getSelection()) : '';\n      if (sel && sel.trim()) { return; }\n      var el = e.target.closest('[data-i]'); if (!el) { return; }\n      var i = parseInt(el.getAttribute('data-i'), 10); if (isNaN(i)) { return; }\n      if (!audio.paused && i === curIdx) { return; }\n      lastUser = Date.now();\n      audio.currentTime = starts[i];\n      var p = audio.play(); if (p && p.catch) { p.catch(function(){}); }\n      try { if (typeof gtag === 'function') { gtag('event', 'audio_chapter', { article: location.pathname, source: 'sentence', start: Math.round(starts[i]) }); } } catch (err) {}\n    });\n    audio.addEventListener('seeked', tick);\n    audio.addEventListener('ended', function(){ setNow(-1); });\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', start); } else { start(); }\n})();<\/script>\n<\/div>\n\n\n\n<p class=\"msq-hook wp-block-paragraph\">On this page: what the spotting is usually described as and why the description is worth so little, the volume line that actually changes what you do, the ordinary causes a medicated cycle adds, what the timing evidence shows, and the four things worth writing down before you call.<\/p>\n\n\n\n<div class=\"msq\" id=\"ms-quiz\" data-slug=\"what-implantation-bleeding-looks-like\" data-category=\"the two week wait\" data-list=\"1\">\n<style>.msq,.msq-hook,.msq-box,.msq-end,.msq-tool{--msq-accent:#1F4E79;--msq-accent-text:#FFFFFF;--msq-line:#CBD8E6;--msq-warn:#B4531A;--msq-muted:#4A5560;--msq-tint:#EEF3F8;--msq-base:#FFFFFF}\n.msq{margin:1.25em 0 1.75em}\n.msq-hook{border-left:3px solid var(--msq-accent);padding:6px 14px;color:var(--msq-muted);font-size:.97em}\n.msq-box{background:var(--msq-tint);border:1px solid var(--msq-line);border-radius:12px;padding:0}\n.msq-box>summary{cursor:pointer;list-style:none;padding:14px 18px;font-weight:700;color:var(--msq-accent)}\n.msq-box>summary::-webkit-details-marker{display:none}\n.msq-box>summary::before{content:\"+\";display:inline-block;width:1.1em;font-weight:800}\n.msq-box[open]>summary::before{content:\"\\00d7\"}\n.msq-body{padding:2px 18px 18px}\n.msq-intro{margin:0 0 12px;font-size:.95em;color:var(--msq-muted)}\n.msq-list{margin:0;padding:0;list-style:none}\n.msq-q{margin:0 0 18px;padding:0}\n.msq-question{font-weight:700;margin:0 0 8px}\n.msq-options{display:flex;flex-direction:column;gap:8px}\n.msq-opt{text-align:left;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:8px;padding:10px 12px;font:inherit;font-size:.95em;color:inherit;cursor:pointer;line-height:1.35}\n.msq-opt:hover{border-color:var(--msq-accent)}\n.msq-opt[disabled]{cursor:default}\n.msq-opt.is-right{border-color:var(--msq-accent);background:var(--msq-line);font-weight:700}\n.msq-opt.is-wrong{border-color:var(--msq-warn);color:var(--msq-warn)}\n.msq-explain{margin:8px 0 0;font-size:.92em;padding:10px 12px;border-left:3px solid var(--msq-accent);background:var(--msq-base);border-radius:0 8px 8px 0}\n.msq-explain[hidden]{display:none}\n.msq-verdict{font-weight:700}\n.msq-result{margin-top:14px;padding:14px 16px;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:10px}\n.msq-result[hidden]{display:none}\n.msq-result h3{margin:0 0 6px;font-size:1.1em}\n.msq-result p{margin:0 0 8px}\n.msq-jump{margin:0 0 8px;padding-left:1.2em}\n.msq-form{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}\n.msq-form input[type=email]{flex:1 1 220px;padding:10px 12px;border:1px solid var(--msq-muted);border-radius:8px;font:inherit;background:#fff}\n.msq-btn{background:var(--msq-accent);color:var(--msq-accent-text);border:0;border-radius:8px;padding:11px 18px;font:inherit;font-weight:700;cursor:pointer}\n.msq-btn:hover{filter:brightness(.92)}\n.msq-btn[disabled]{opacity:.7;cursor:default}\n.msq-no{font-size:.9em;color:var(--msq-muted);margin-left:4px}\n.msq-privacy{margin:6px 0 0;font-size:.82em;color:var(--msq-muted);flex-basis:100%}\n.msq-hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}\n.msq-msg{margin:8px 0 0;font-size:.92em}\n.msq-end{margin:1.5em 0;padding:18px;border:1px solid var(--msq-accent);border-radius:12px;text-align:center;background:var(--msq-tint)}\n.msq-end p{margin:0 0 12px}\n.msq-end .msq-body{text-align:left;padding:16px 0 0}\n.msq-end .msq-start-test[hidden]{display:none}\n.msq-tool{margin:1.5em 0;padding:18px 20px;background:var(--msq-tint);border:1px solid var(--msq-line);border-radius:12px}\n.msq-tool h3{margin:0 0 6px;font-size:1.15em}\n.msq-tool p{margin:0 0 10px}\n.msq-tool .msq-note{font-size:.85em;color:var(--msq-muted);margin:10px 0 0}\n.msq-check label{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--msq-line);cursor:pointer;line-height:1.4}\n.msq-check label:last-of-type{border-bottom:0}\n.msq-check input{margin-top:5px;flex:0 0 auto;width:18px;height:18px;accent-color:var(--msq-accent)}\n.msq-check-count{font-weight:700;margin:10px 0 0}\n.msq-verdict-box{margin:12px 0 0;padding:10px 14px;border-radius:8px;background:var(--msq-base);border-left:3px solid var(--msq-warn)}\n.msq-verdict-box[hidden]{display:none}\n.msq-calc{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}\n.msq-calc label{display:flex;flex-direction:column;gap:4px;font-size:.92em}\n.msq-calc input,.msq-calc select{padding:8px 10px;border:1px solid var(--msq-muted);border-radius:8px;font:inherit;background:#fff}\n.msq-calc-out{grid-column:1 \/ -1;margin-top:6px;padding:12px 14px;background:var(--msq-base);border-radius:8px;border:1px solid var(--msq-line)}\n.msq-calc-out strong{font-size:1.15em}\n.msq-choose label{display:block;padding:9px 12px;margin:0 0 8px;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:8px;cursor:pointer}\n.msq-choose input{margin-right:8px;accent-color:var(--msq-accent)}\n.msq-choice-result{margin-top:10px;padding:12px 14px;background:var(--msq-base);border-left:3px solid var(--msq-accent);border-radius:0 8px 8px 0}\n.msq-choice-result[hidden]{display:none}\n@media (max-width:600px){.msq-calc{grid-template-columns:1fr}}\nh2.wp-block-heading[id]{scroll-margin-top:24px}<\/style>\n<noscript><style>.msq-explain{display:block !important}<\/style><\/noscript>\n<details class=\"msq-box\">\n<summary>Think you already know this? Five questions, one minute.<\/summary>\n<div class=\"msq-body\">\n<p class=\"msq-intro\">Five questions about what this page says. Answer from what you know now; none of them are about what you saw.<\/p>\n<ol class=\"msq-list\">\n<li class=\"msq-q\" data-q=\"1\" data-answer=\"b\" data-title=\"Why does the colour not settle anything?\" data-section=\"#why-does-the-colour-not-settle-anything\">\n<p class=\"msq-question\">1. What does the colour of spotting actually tell you?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 1 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Where the blood came from<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Roughly how old the blood is and how long it took to travel<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Whether the transfer worked<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Brown is older blood that oxidised, pink is a little fresh blood diluted by fluid, red is recent and moving faster. None of that identifies the source, and the source is the only thing anyone wants to know. <a class=\"msq-section\" href=\"#why-does-the-colour-not-settle-anything\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"2\" data-answer=\"b\" data-title=\"How much counts as spotting, and how much is bleeding?\" data-section=\"#how-much-counts-as-spotting-and-how-much-is-bleeding\">\n<p class=\"msq-question\">2. According to the table, which line changes what you do?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 2 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Pink against brown<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Marking a liner against filling a pad<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Morning against evening<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Volume is the line the clinic asks about on the phone. Enough to need a pad means calling the same day; heavy bleeding, severe pain or feeling faint means emergency care now, per <a href=\"https:\/\/www.nhs.uk\/pregnancy\/related-conditions\/common-symptoms\/vaginal-bleeding\/\" target=\"_blank\" rel=\"noopener\">the NHS page on bleeding in pregnancy<\/a>. That row is about you, not the result. <a class=\"msq-section\" href=\"#how-much-counts-as-spotting-and-how-much-is-bleeding\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"3\" data-answer=\"b\" data-title=\"When does it happen, and does the timing narrow it down?\" data-section=\"#when-does-it-happen-and-does-the-timing-narrow-it-down\">\n<p class=\"msq-question\">3. In the 2003 Human Reproduction study of 151 clinical pregnancies, when did light bleeding tend to fall?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 3 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">On the day implantation was measured<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Around the time a period would have been due<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Only in the pregnancies that ended<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span><a href=\"https:\/\/academic.oup.com\/humrep\/article-abstract\/18\/9\/1944\/708284\" target=\"_blank\" rel=\"noopener\">The study<\/a> recorded bleeding in 14 women, about 9 percent, in the first eight weeks, generally light and clustered near the expected period rather than on the implantation day, which is what makes telling it from a period so unreliable. <a class=\"msq-section\" href=\"#when-does-it-happen-and-does-the-timing-narrow-it-down\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"4\" data-answer=\"a\" data-title=\"What else makes people bleed after an embryo transfer?\" data-section=\"#what-else-makes-people-bleed-after-an-embryo-transfer\">\n<p class=\"msq-question\">4. Which of these is a documented cause of a mark on a liner in a medicated cycle?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 4 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Vaginal progesterone against fragile tissue, and its waxy residue<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Drinking water<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Sleeping on one side<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span><a href=\"https:\/\/www.gatesheadhealth.nhs.uk\/resources\/frozen-embryo-transfer-medication\/\" target=\"_blank\" rel=\"noopener\">The NHS trust leaflet on frozen transfer medication<\/a> lists local reaction and discharge among expected effects, the transfer catheter can leave a day or two of spotting, and bleeding in early pregnancy generally runs at about one in four women. <a class=\"msq-section\" href=\"#what-else-makes-people-bleed-after-an-embryo-transfer\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"5\" data-answer=\"b\" data-title=\"What is worth telling the clinic, and when?\" data-section=\"#what-is-worth-telling-the-clinic-and-when\">\n<p class=\"msq-question\">5. What does the HFEA say about testing before the date your clinic gave you?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 5 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">It is fine after day seven<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">It risks a false result<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">It is required<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span><a href=\"https:\/\/www.hfea.gov.uk\/treatments\/explore-all-treatments\/in-vitro-fertilisation-ivf\/\" target=\"_blank\" rel=\"noopener\">The HFEA guidance on IVF<\/a> says you will be given a date for your pregnancy test and that testing before it risks a false result. Call the same day for bleeding that needs a pad or for severe or one sided pain, and never change medication on your own reading of spotting. <a class=\"msq-section\" href=\"#what-is-worth-telling-the-clinic-and-when\">Read the section<\/a><\/p>\n<\/li>\n<\/ol>\n<div class=\"msq-result\" hidden><\/div>\n<\/div>\n<\/details>\n<script>(function(){\n  if (window.__msqInit) { return; }\n  window.__msqInit = true;\n  var root = document.getElementById('ms-quiz');\n  if (!root) { return; }\n  var meta = { slug: root.getAttribute('data-slug'), category: root.getAttribute('data-category'),\n               list: root.getAttribute('data-list') || '1' };\n  function qs(el, s){ return el.querySelector(s); }\n  function qsa(el, s){ return Array.prototype.slice.call(el.querySelectorAll(s)); }\n  function track(name, params){\n    try { if (typeof gtag === 'function') { var p = params || {}; p.article = meta.slug; gtag('event', name, p); } } catch (e) {}\n  }\n  function jumpList(missed){\n    if (!missed.length) { return ''; }\n    return '<ul class=\"msq-jump\">' + missed.map(function(q){\n      return '<li><a href=\"' + q.getAttribute('data-section') + '\">' + q.getAttribute('data-title') + '<\/a><\/li>';\n    }).join('') + '<\/ul>';\n  }\n  function emailForm(){\n    return '<div class=\"msq-sub\"><p><strong>Get the next one.<\/strong> We publish new articles on ' + meta.category\n      + ' most weeks and recheck this page on Sundays. Email me when a new article goes up or this page changes.<\/p>'\n      + '<form class=\"msq-form\" method=\"post\" action=\"\/mail\/form.php\" novalidate>'\n      + '<input type=\"hidden\" name=\"list\" value=\"' + meta.list + '\">'\n      + '<input type=\"hidden\" name=\"name\" value=\"\">'\n      + '<label class=\"msq-hp\" aria-hidden=\"true\">Leave this empty<input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label>'\n      + '<input type=\"email\" name=\"email\" placeholder=\"you@example.com\" required aria-label=\"Email address\" autocomplete=\"email\">'\n      + '<button type=\"submit\" class=\"msq-btn\">Email me the updates<\/button>'\n      + '<a href=\"#\" class=\"msq-no\">No thanks<\/a>'\n      + '<p class=\"msq-privacy\">We store your email and this page\\'s topic, nothing else. Unsubscribe any time.<\/p>'\n      + '<\/form><p class=\"msq-msg\" aria-live=\"polite\"><\/p><\/div>';\n  }\n  \/* The autoresponder always answers 200 with its own page. A \".msg.err\" box means the\n     address was rejected, \"You're subscribed\" means accepted, and a redirect only happens\n     after a successful subscribe. Same reading as the landing pages on the other sites. *\/\n  function sendForm(form){\n    return fetch(form.getAttribute('action'), { method: 'POST', body: new FormData(form), credentials: 'same-origin', redirect: 'manual' })\n      .then(function(res){\n        if (res.type === 'opaqueredirect') { return { status: 'ok' }; }\n        if (res.status === 404) { return { status: 'notlive' }; }\n        if (!res.ok) { throw new Error('HTTP ' + res.status); }\n        return res.text().then(function(t){\n          var doc = new DOMParser().parseFromString(t, 'text\/html');\n          var err = doc.querySelector('.msg.err');\n          if (err) {\n            var m = err.textContent.trim();\n            if (\/something went wrong\/i.test(m)) { throw new Error(m); }\n            return { status: 'rejected', message: m };\n          }\n          if (\/you.re subscribed\/i.test(doc.body.textContent)) { return { status: 'ok' }; }\n          return { status: 'unknown' };\n        });\n      });\n  }\n  function wireForm(sub){\n    var form = qs(sub, '.msq-form'), msg = qs(sub, '.msq-msg');\n    qs(form, '.msq-no').addEventListener('click', function(e){\n      e.preventDefault();\n      sub.innerHTML = '<p class=\"msq-msg\">No problem. The Sunday refresh keeps this page current either way.<\/p>';\n      track('quiz_email', { result: 'declined' });\n    });\n    form.addEventListener('submit', function(e){\n      e.preventDefault();\n      var input = qs(form, 'input[name=email]'), btn = qs(form, '.msq-btn');\n      var email = input.value.trim(); input.value = email;\n      if (!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email)) { msg.textContent = 'That email does not look right.'; return; }\n      btn.disabled = true; btn.textContent = 'Sending';\n      function reset(){ btn.disabled = false; btn.textContent = 'Email me the updates'; }\n      sendForm(form).then(function(r){\n        if (r.status === 'ok' || r.status === 'unknown') {\n          sub.innerHTML = '<p class=\"msq-msg\"><strong>Done.<\/strong> We will email you when the next article on ' + meta.category\n            + ' goes up and when this page changes. If a confirmation email arrives, click it.<\/p>';\n          track('quiz_email', { result: r.status });\n          if (r.status === 'ok') { track('generate_lead', { method: 'quiz' }); }\n        } else if (r.status === 'notlive') {\n          msg.textContent = 'Sign up is not switched on yet for this site. Nothing was stored.'; reset();\n          track('quiz_email', { result: 'notlive' });\n        } else {\n          msg.textContent = r.message || 'Please check the email address and try again.'; reset();\n          track('quiz_email', { result: 'rejected' });\n        }\n      }).catch(function(){\n        msg.textContent = 'Could not reach the sign up service just now. Nothing was stored.'; reset();\n        track('quiz_email', { result: 'error' });\n      });\n    });\n  }\n  function finish(container, mode, score, total, missed){\n    var result = qs(container, '.msq-result');\n    track('quiz_complete', { mode: mode, score: score, total: total });\n    var h;\n    if (mode === 'pre') {\n      h = '<h3>You knew ' + score + ' of ' + total + ' before reading.<\/h3>';\n      h += (score === total) ? '<p>All of them. Read on anyway; the sections below carry the detail behind each answer.<\/p>'\n                             : '<p>The rest is below. Jump straight to what you missed:<\/p>' + jumpList(missed);\n      try { sessionStorage.setItem('msq-pre-' + meta.slug, String(score)); } catch (e) {}\n    } else {\n      var pre = null;\n      try { pre = sessionStorage.getItem('msq-pre-' + meta.slug); } catch (e) {}\n      h = '<h3>You got ' + score + ' of ' + total + '.<\/h3>';\n      if (pre !== null) { h += '<p>Before reading you had ' + pre + ' of ' + total + '.<\/p>'; }\n      if (missed.length) { h += '<p>Worth a second look:<\/p>' + jumpList(missed); }\n      h += emailForm();\n    }\n    result.innerHTML = h; result.hidden = false;\n    if (mode !== 'pre') { wireForm(qs(result, '.msq-sub')); }\n    result.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n  }\n  function setup(container, mode){\n    var qEls = qsa(container, '.msq-q'), answered = 0, score = 0, missed = [];\n    qEls.forEach(function(q){\n      var answer = q.getAttribute('data-answer'), opts = qsa(q, '.msq-opt'), explain = qs(q, '.msq-explain');\n      q.removeAttribute('data-done'); explain.hidden = true; qs(explain, '.msq-verdict').textContent = '';\n      opts.forEach(function(b){ b.disabled = false; b.classList.remove('is-right', 'is-wrong'); });\n      opts.forEach(function(b){\n        b.addEventListener('click', function(){\n          if (q.getAttribute('data-done')) { return; }\n          q.setAttribute('data-done', '1');\n          var ok = b.getAttribute('data-opt') === answer;\n          opts.forEach(function(o){ o.disabled = true; if (o.getAttribute('data-opt') === answer) { o.classList.add('is-right'); } });\n          if (ok) { score += 1; } else { b.classList.add('is-wrong'); missed.push(q); }\n          qs(explain, '.msq-verdict').textContent = ok ? 'Right. ' : 'Not quite. ';\n          explain.hidden = false;\n          answered += 1;\n          track('quiz_answer', { mode: mode, question: q.getAttribute('data-q'), correct: ok ? 1 : 0 });\n          if (answered === qEls.length) { finish(container, mode, score, qEls.length, missed); }\n        });\n      });\n    });\n  }\n  var box = qs(root, '.msq-box');\n  setup(root, 'pre');\n  if (box) { box.addEventListener('toggle', function(){ if (box.open) { track('quiz_open', { mode: 'pre' }); } }); }\n  \/* The end block sits far below this script, so it does not exist yet while this runs\n     during parsing. A delegated listener finds it at click time. *\/\n  document.addEventListener('click', function(e){\n    var startBtn = (e.target && e.target.closest) ? e.target.closest('.msq-start-test') : null;\n    if (!startBtn) { return; }\n    var end = startBtn.closest('.msq-end');\n    if (!end) { return; }\n    var mount = qs(end, '.msq-mount');\n    var clone = qs(root, '.msq-body').cloneNode(true);\n    var intro = qs(clone, '.msq-intro');\n    if (intro) { intro.textContent = 'The same five questions, now that you have read the page.'; }\n    var res = qs(clone, '.msq-result'); if (res) { res.hidden = true; res.innerHTML = ''; }\n    mount.innerHTML = ''; mount.appendChild(clone);\n    setup(mount, 'test');\n    startBtn.hidden = true;\n    track('quiz_open', { mode: 'test' });\n    mount.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    var first = qs(mount, '.msq-opt'); if (first) { first.focus({ preventScroll: true }); }\n  });\n  \/* Shared tool behaviour: checklists remember their ticks on this device, and a chooser\n     shows the result for the option picked. Calculators carry their own small script. *\/\n  function initTools(){\n    qsa(document, '.msq-check').forEach(function(box){\n      var key = 'msq-check-' + meta.slug + '-' + (box.getAttribute('data-id') || 'x');\n      var boxes = qsa(box, 'input[type=checkbox]'), count = qs(box, '.msq-check-count');\n      var yes = qs(box, '.msq-verdict-yes'), no = qs(box, '.msq-verdict-no');\n      var saved = {};\n      try { saved = JSON.parse(localStorage.getItem(key) || '{}'); } catch (e) {}\n      boxes.forEach(function(cb, i){ if (saved[i]) { cb.checked = true; } });\n      function refresh(){\n        var n = boxes.filter(function(cb){ return cb.checked; }).length, state = {};\n        boxes.forEach(function(cb, i){ if (cb.checked) { state[i] = 1; } });\n        try { localStorage.setItem(key, JSON.stringify(state)); } catch (e) {}\n        if (count) { count.textContent = n + ' of ' + boxes.length + (box.getAttribute('data-verb') || ' done'); }\n        if (yes && no) { yes.hidden = n === 0; no.hidden = n !== 0; }\n      }\n      boxes.forEach(function(cb){ cb.addEventListener('change', function(){ refresh(); track('tool_check', { tool: box.getAttribute('data-id') }); }); });\n      refresh();\n    });\n    qsa(document, '.msq-choose').forEach(function(box){\n      var results = qsa(box, '.msq-choice-result');\n      qsa(box, 'input[type=radio]').forEach(function(r){\n        r.addEventListener('change', function(){\n          results.forEach(function(el){ el.hidden = el.getAttribute('data-for') !== r.value; });\n          track('tool_choose', { tool: box.getAttribute('data-id'), choice: r.value });\n        });\n      });\n    });\n  }\n  \/\/ read progress: how far down the article the reader has scrolled, fired once per quarter\n  (function(){\n    var art = root.closest('article') || root.parentNode, fired = {};\n    function check(){\n      var top = art.getBoundingClientRect().top + window.pageYOffset, h = art.offsetHeight || 1;\n      var seen = (window.pageYOffset + window.innerHeight - top) \/ h * 100;\n      [25, 50, 75, 100].forEach(function(m){ if (seen >= m && !fired[m]) { fired[m] = true; track('read_progress', { percent: m }); } });\n    }\n    window.addEventListener('scroll', check, { passive: true }); window.addEventListener('load', check);\n  })();\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initTools); } else { initTools(); }\n})();<\/script>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">You are almost certainly reading this in a bathroom, holding a piece of tissue at an angle to the light, trying to decide whether what is on it is pink or beige. This page is about what that spotting is usually described as, what the description is worth, and what it can never settle. It stays on the visual question. The wider question of whether any symptom means anything is answered in <a href=\"https:\/\/ivfprep.guide\/articles\/implantation-bleeding-symptoms\/\">why implantation bleeding symptoms prove nothing<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-does-implantation-bleeding-actually-look-like\">What does implantation bleeding actually look like?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The description people converge on is small, light and short. A pink or brownish mark noticed when wiping, or a few spots on underwear or a liner. Not a flow, not a pad that needs changing for volume, and usually over within a day or two. Published sources give wildly different day counts for that, which is why <a href=\"https:\/\/ivfprep.guide\/articles\/implantation-bleeding-how-many-days\/\">how many days implantation bleeding lasts<\/a> looks at where each figure came from. The <a href=\"https:\/\/www.nhs.uk\/pregnancy\/related-conditions\/common-symptoms\/vaginal-bleeding\/\" target=\"_blank\" rel=\"noopener\">NHS page on vaginal bleeding in pregnancy<\/a> describes light spotting in the same plain terms, as spots of pink, red or brown blood on your underwear, and lists implantation among several possible causes rather than as a diagnosis you can make yourself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Somewhere on the internet there is a numbered shade card for this, as though the body were choosing a paint finish. It is worth knowing where those descriptions come from. Almost all of them are written by people who already knew how their cycle ended, and who are describing the spotting backwards through that knowledge. Nobody writes a careful colour note about spotting that turned out to mean nothing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"627\" src=\"https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-2.jpg\" alt=\"Two women talking across a bright table about spotting and what implantation bleeding looks like\" class=\"wp-image-87\" srcset=\"https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-2.jpg 1200w, https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-2-300x157.jpg 300w, https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-2-1024x535.jpg 1024w, https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-2-768x401.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-block-image__caption\">Saying it out loud to one person beats asking forty strangers at two in the morning.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-does-the-colour-not-settle-anything\">Why does the colour not settle anything?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Colour tells you about the age of blood and how long it took to travel, and that is genuinely all it tells you. Brown means older blood that oxidised on the way out. Pink usually means a very small amount of fresh blood diluted by cervical fluid. Red means recent and moving faster. None of those three facts identifies the source, and the source is the only thing you actually want to know. Brown in particular is covered at length in <a href=\"https:\/\/ivfprep.guide\/articles\/brown-spotting-implantation\/\">what brown spotting after an embryo transfer usually means<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So a reader can arrive at a perfectly accurate answer, brown means old blood, and still be no closer to the question they came with. That gap between an answerable question and the one being asked is most of what makes the two week wait so exhausting. Smell runs into the same wall: <a href=\"https:\/\/ivfprep.guide\/articles\/implantation-bleeding-smell\/\">what an implantation bleeding smell can and cannot tell you<\/a> found no clinical source that gives it a smell at all.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-much-counts-as-spotting-and-how-much-is-bleeding\">How much counts as spotting, and how much is bleeding?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Volume is the one part of this that changes what you do, so it is worth being precise about. The line that matters is not pink against brown. It is whether you are marking a liner or filling a pad, because that is the line your clinic asks about on the phone.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>What you are seeing<\/th><th>What that means about volume<\/th><th>What it tells you about the transfer<\/th><\/tr><\/thead><tbody><tr><td>A pink or brown mark only when you wipe<\/td><td>Very small, often mixed with cervical fluid or pessary residue<\/td><td>Nothing<\/td><\/tr><tr><td>A few spots on a liner across a day<\/td><td>Light. The liner is a convenience, not a necessity<\/td><td>Nothing<\/td><\/tr><tr><td>Enough to need a pad, or a pad soaking through<\/td><td>This is bleeding rather than spotting<\/td><td>Nothing about the outcome, but call your clinic the same day<\/td><\/tr><tr><td>Heavy bleeding, severe pain, or feeling faint<\/td><td>Urgent, whatever the cause<\/td><td>Nothing about the outcome. Seek emergency care now<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Read that last row straight. Heavy bleeding, severe pain or fainting needs urgent assessment on the day it happens, and the NHS advice is to call 999 for those. That is not about your result. It is about you. The same threshold logic applies to cramps, and our page on <a href=\"https:\/\/ivfprep.guide\/articles\/implantation-cramp-location\/\">cramp location in the two week wait<\/a> lists which pain patterns are worth a phone call today.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"when-does-it-happen-and-does-the-timing-narrow-it-down\">When does it happen, and does the timing narrow it down?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A blastocyst transferred on day five is usually expected to implant within roughly one to five days, and clinics differ on the window they quote because embryos differ and linings differ. So the honest version of the timing argument is that any spotting in the first week after transfer falls inside a wide window where several explanations sit on top of each other. If the vocabulary of transfers, fresh against frozen, is still new, our plain language guide to the <a href=\"https:\/\/ivfprep.guide\/articles\/types-of-assisted-reproductive-technology\/\">types of assisted reproductive technology<\/a> explains what each one is for.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is also evidence that the timing story is weaker than it sounds. In <a href=\"https:\/\/academic.oup.com\/humrep\/article-abstract\/18\/9\/1944\/708284\" target=\"_blank\" rel=\"noopener\">a 2003 study of 151 clinical pregnancies published in Human Reproduction<\/a>, 14 women, about 9 percent, recorded at least one day of vaginal bleeding in the first eight weeks. The bleeding was generally light, and it tended to fall around the time a period would have been due rather than on the day implantation was measured to have happened. A cluster of spotting near the date your period would have arrived is exactly what makes <a href=\"https:\/\/ivfprep.guide\/articles\/implantation-bleeding-vs-period\/\">telling implantation bleeding from a period<\/a> so unreliable.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"627\" src=\"https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-3.jpg\" alt=\"Empty clinic waiting area with seats, where bleeding after an embryo transfer is assessed\" class=\"wp-image-88\" srcset=\"https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-3.jpg 1200w, https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-3-300x157.jpg 300w, https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-3-1024x535.jpg 1024w, https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-3-768x401.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-block-image__caption\">Volume and pain decide whether you ring today. Colour does not.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-chart.png\" alt=\"Timeline for what implantation bleeding looks like: transfer day, the implantation window, the period due cluster, the test date.\" class=\"wp-image-237\" srcset=\"https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-chart.png 1600w, https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-chart-300x169.png 300w, https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-chart-1024x576.png 1024w, https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-chart-768x432.png 768w, https:\/\/ivfprep.guide\/articles\/wp-content\/uploads\/2026\/09\/what-implantation-bleeding-looks-like-chart-1536x864.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-block-image__caption\">The windows this page describes, in order. Several explanations sit on top of each other in every one of them, which is why the last step is the only reading that counts.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-else-makes-people-bleed-after-an-embryo-transfer\">What else makes people bleed after an embryo transfer?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the part that rarely makes it into the colour charts. A medicated cycle gives you several plausible sources of a small amount of blood that have nothing to do with an embryo at all.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vaginal progesterone is the usual suspect. Applicators and pessaries sit against tissue that is already more fragile and better supplied with blood than usual, and <a href=\"https:\/\/www.gatesheadhealth.nhs.uk\/resources\/frozen-embryo-transfer-medication\/\" target=\"_blank\" rel=\"noopener\">this NHS trust leaflet on frozen transfer medication<\/a> lists local skin reaction and white discharge among the expected effects. Add the residue itself, which is waxy and can carry a streak of blood out with it, and you have a very common explanation for a mark on a liner. What that residue looks like day to day is covered in <a href=\"https:\/\/ivfprep.guide\/articles\/discharge-during-implantation\/\">discharge in the two week wait<\/a>. Spotting is only one entry on that leaflet, and our page on <a href=\"https:\/\/ivfprep.guide\/articles\/signs-of-implantation\/\">the signs of implantation people watch for<\/a> shows that eight of the twelve NHS early pregnancy signs appear on it under their clinical names.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The transfer itself is another. A speculum and a catheter passed through a cervix that bleeds more readily than usual can leave a day or two of light spotting afterwards, which is why some clinics mention it before you leave the room. And bleeding in early pregnancy is simply common: NHS trust patient information puts it at <a href=\"https:\/\/www.uhsussex.nhs.uk\/resources\/bleeding-in-early-pregnancy\/\" target=\"_blank\" rel=\"noopener\">around one in four women<\/a>, which is far too broad a group for any of them to read their own result from it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-are-you-actually-comparing-it-against\">What are you actually comparing it against?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every description of implantation bleeding is a comparison, and both of the usual reference points are broken. The first is your own period, which is not a fair comparison after a medicated cycle that changed your lining and your hormones on purpose. The second is a photograph posted on a forum at two in the morning under a caption asking whether this looks like implantation bleeding, answered within minutes by strangers with total confidence and no information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The strangers are not being cruel. They are doing what people do with an unanswerable question, which is answer it anyway. But the sample they are drawn from is bent out of shape. People post when something happens, and the ones who bled and got a negative rarely come back to update the thread. Neither do the people for whom nothing happened at all, because nothing is not a post. That silence is the subject of <a href=\"https:\/\/ivfprep.guide\/articles\/successful-implantation-without-bleeding\/\">no bleeding, no symptoms, and why absence is not evidence<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-worth-telling-the-clinic-and-when\">What is worth telling the clinic, and when?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Clinics are not asking about colour out of curiosity. They are sorting for volume, pain and how fast things are changing. Writing down four things while it is happening makes that call much faster: when it started, roughly how much, whether there is pain and where, and whether anything else changed such as temperature or dizziness.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Call the same day for bleeding heavy enough to need a pad, for pain that is severe or one sided, or for anything that worries you enough to have looked it up. Do not stop, change or add medication on your own because of spotting. Your clinic prescribed your protocol, knows your cycle and your history, and this page knows none of that. The <a href=\"https:\/\/www.hfea.gov.uk\/treatments\/explore-all-treatments\/in-vitro-fertilisation-ivf\/\" target=\"_blank\" rel=\"noopener\">HFEA guidance on IVF<\/a> also says plainly that you will be given a date for your pregnancy test and that testing before it risks a false result, which matters most on exactly the night when spotting makes waiting feel impossible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-can-the-colour-and-the-amount-never-tell-you\">What can the colour and the amount never tell you?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Whether it worked. That is the whole of it. Light pink spotting happens in cycles that end in a positive test and in cycles that do not. Nothing at all happens in both too, and more often than the internet suggests. Nor does a heavier bleed mean two embryos, a belief that <a href=\"https:\/\/ivfprep.guide\/articles\/twins-implantation-bleeding\/\">why heavier bleeding proves nothing about twins<\/a> traces back to pages that cite no study at all. There is no shade, no volume and no timing that separates those groups, which is why your clinic books a blood test rather than asking you to describe what you saw. And if that test comes back positive while the spotting carries on, the question changes shape again, because you are still on luteal support: <a href=\"https:\/\/ivfprep.guide\/articles\/early-pregnancy-light-bleeding\/\">light bleeding in early pregnancy on progesterone<\/a> takes it from there.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have been standing in the bathroom for ten minutes with the tissue, put it down. It has already told you everything it contains, which is not much. Then write the four things down, ring the clinic if the volume or the pain says to, and let the test date do the job it was scheduled for.<\/p>\n\n\n\n<div class=\"msq-tool\" id=\"ms-test-countdown\">\n<h3>The only date that answers the question<\/h3>\n<p>Enter the test date your clinic gave you. The tool counts the days, and nothing else, because nothing else on this page can.<\/p>\n<div class=\"msq-calc\">\n<label>Clinic test date<input type=\"date\" id=\"tc-date\"><\/label>\n<label>Transfer date, optional<input type=\"date\" id=\"tc-transfer\"><\/label>\n<div class=\"msq-calc-out\" id=\"tc-out\">Enter the date on your clinic paperwork.<\/div>\n<\/div>\n<p class=\"msq-note\">Saved on this device only. The HFEA says testing before the date you were given risks a false result, and this tool will not pretend to know anything sooner.<\/p>\n<\/div>\n<script>\n(function(){\n  var d = document.getElementById('tc-date'), t = document.getElementById('tc-transfer'), out = document.getElementById('tc-out');\n  if (!d || !out) { return; }\n  var key = 'msq-testdate-what-implantation-bleeding-looks-like';\n  try { var s = JSON.parse(localStorage.getItem(key) || '{}'); if (s.d) { d.value = s.d; } if (s.t) { t.value = s.t; } } catch (e) {}\n  function day(v){ return new Date(v + 'T00:00:00'); }\n  function run(){\n    try { localStorage.setItem(key, JSON.stringify({ d: d.value, t: t.value })); } catch (e) {}\n    if (!d.value) { out.textContent = 'Enter the date on your clinic paperwork.'; return; }\n    var now = new Date(); now.setHours(0, 0, 0, 0);\n    var left = Math.round((day(d.value) - now) \/ 86400000), msg;\n    if (left > 0) { msg = '<strong>' + left + (left === 1 ? ' day' : ' days') + ' until your test date.<\/strong>'; }\n    else if (left === 0) { msg = '<strong>Test day.<\/strong> The result belongs to your clinic, not to anything you saw this fortnight.'; }\n    else { msg = '<strong>Your test date has passed.<\/strong> The result is with your clinic.'; }\n    if (t.value) {\n      var since = Math.round((now - day(t.value)) \/ 86400000);\n      if (since >= 0) { msg += ' Day ' + since + ' since transfer.'; }\n    }\n    out.innerHTML = msg;\n    try { if (typeof gtag === 'function') { gtag('event', 'tool_calc', { tool: 'test-countdown', article: 'what-implantation-bleeding-looks-like' }); } } catch (e) {}\n  }\n  d.addEventListener('change', run); t.addEventListener('change', run);\n  run();\n})();\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">Frequently asked questions<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-q-1\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">What colour is implantation bleeding usually described as?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Most descriptions say light pink or brown, sometimes with a little fresh red. Those colours indicate how old the blood is and how quickly it travelled, not where it came from, so the colour cannot identify the cause.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">How long does implantation bleeding last?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Descriptions usually run from a few hours to about two days, and lighter than a period throughout. Bleeding that gets heavier over time, or that lasts longer than that, is worth reporting to your clinic rather than matching against a description online.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-3\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Can implantation bleeding be heavy or contain clots?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>What is described as implantation bleeding is light by definition, so heavier bleeding or clots is a different question and one for your clinic the same day. There is more in our article on <a href=\"https:\/\/ivfprep.guide\/articles\/implantation-bleeding-clots\/\">clots in the two week wait<\/a>.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-4\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Does bleeding after an embryo transfer mean the cycle has failed?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No, and it does not mean it has succeeded either. Bleeding happens in cycles that end in a positive test and in cycles that do not, and a medicated cycle adds causes such as progesterone pessaries and the transfer itself.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-5\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Is it normal to have no bleeding or spotting at all?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. Many people go through the entire two week wait with nothing to report, in cycles with every kind of outcome. Absence of spotting is not evidence in either direction, it is simply the most common experience.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-6\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">When should I contact the clinic about bleeding?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Call the same day for bleeding that needs a pad, for severe or one sided pain, or for anything that worries you. Heavy bleeding, severe pain or feeling faint needs urgent assessment immediately.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"msq-end\" id=\"ms-quiz-end\">\n<p><strong>Finished the page?<\/strong> The same five questions from the top, to see what stuck.<\/p>\n<button type=\"button\" class=\"msq-btn msq-start-test\">Test Your Understanding of This Article<\/button>\n<div class=\"msq-mount\"><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>This article is general information, not medical advice, and is not a substitute for care from a qualified healthcare professional. Speak to your doctor about your own situation.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pink, brown, a mark on a liner: what implantation bleeding is usually described as, why the description cannot identify the cause, and when the volume means you call the clinic.<\/p>\n","protected":false},"author":1,"featured_media":86,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","rank_math_title":"What Implantation Bleeding Looks Like: Colour and Amount","rank_math_description":"Implantation bleeding is usually described as light pink or brown spotting, not a flow, but no colour or amount can tell you whether a transfer worked.","rank_math_focus_keyword":"what implantation bleeding looks like","rank_math_canonical_url":"","rank_math_breadcrumb_title":"","rank_math_facebook_title":"","rank_math_facebook_description":"","rank_math_facebook_image":"","rank_math_twitter_title":"","rank_math_twitter_description":"","rank_math_twitter_image":"","rank_math_pillar_content":"","rank_math_robots":[],"rank_math_advanced_robots":[]},"categories":[3],"tags":[],"class_list":["post-89","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-signs-and-symptoms"],"_links":{"self":[{"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/posts\/89","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/comments?post=89"}],"version-history":[{"count":14,"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/posts\/89\/revisions"}],"predecessor-version":[{"id":681,"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/posts\/89\/revisions\/681"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/media\/86"}],"wp:attachment":[{"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/media?parent=89"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/categories?post=89"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ivfprep.guide\/articles\/wp-json\/wp\/v2\/tags?post=89"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}