{"product_id":"direct-mail-roi-calculator","title":"Direct Mail ROI Calculator","description":"\u003cstyle\u003e\n  :root {\n    --ink: #1b2432; --ink-soft: #4a5568; --ink-faint: #8494a7; --paper: #f7f8f6; --card: #ffffff; --line: #dde3e0;\n    --cold: #5b7a99; --warm: #c98a1b; --hot: #c7401e; --fire: #a01f10; --good: #2e7d4f;\n    --chip-bg: #eef1ee; --meter-track: #e6eae7; --shadow: 0 1px 3px rgba(27,36,50,.08), 0 8px 24px rgba(27,36,50,.06);\n  }\n  @media (prefers-color-scheme: dark) {\n    :root { --ink:#e8ecf1; --ink-soft:#a8b4c2; --ink-faint:#6b7a8c; --paper:#141b26; --card:#1c2534; --line:#2c3848; --cold:#7fa3c4; --warm:#e0a53f; --hot:#e85c36; --fire:#ff7a52; --good:#4caf7d; --chip-bg:#263143; --meter-track:#263143; --shadow:0 1px 3px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.3); }\n  }\n  #dmroi-root { background: var(--paper); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif; line-height: 1.5; }\n  #dmroi-root .mono { font-family: ui-monospace, \"SF Mono\", \"Cascadia Mono\", Consolas, Menlo, monospace; font-variant-numeric: tabular-nums; }\n  #dmroi-root .wrap { max-width: 1060px; margin: 0 auto; padding: 32px 20px 64px; }\n  #dmroi-root header.top { display: flex; flex-direction: column; gap: 8px; padding-bottom: 24px; border-bottom: 2px solid var(--ink); margin-bottom: 28px; }\n  #dmroi-root .eyebrow { font-family: ui-monospace, \"SF Mono\", \"Cascadia Mono\", Consolas, Menlo, monospace; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-faint); }\n  #dmroi-root h1 { margin: 0; font-size: clamp(30px,5vw,44px); font-weight: 800; letter-spacing: -.02em; line-height: 1.05; }\n  #dmroi-root .sub { margin: 4px 0 0; max-width: 62ch; color: var(--ink-soft); font-size: 15px; }\n  #dmroi-root .layout { display: grid; grid-template-columns: 1fr 360px; gap: 28px; align-items: start; }\n  @media (max-width: 860px) { #dmroi-root .layout { grid-template-columns: 1fr; } #dmroi-root .results { position: static !important; order: -1; } }\n  #dmroi-root .presets { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }\n  #dmroi-root .presets button { font: inherit; font-size: 13px; font-weight: 600; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); color: var(--ink-soft); cursor: pointer; }\n  #dmroi-root .presets button.active { background: var(--ink); color: var(--paper); border-color: var(--ink); }\n  #dmroi-root .inputs { display: flex; flex-direction: column; gap: 14px; }\n  #dmroi-root .field { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; }\n  #dmroi-root .field-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }\n  #dmroi-root .field-head label { font-weight: 600; font-size: 15px; }\n  #dmroi-root .field-val { font-family: ui-monospace, \"SF Mono\", \"Cascadia Mono\", Consolas, Menlo, monospace; font-variant-numeric: tabular-nums; font-size: 15px; font-weight: 700; color: var(--hot); }\n  #dmroi-root .field-why { font-size: 13px; color: var(--ink-soft); margin: 2px 0 10px; }\n  #dmroi-root input[type=\"range\"] { width: 100%; accent-color: var(--hot); cursor: pointer; margin: 0; }\n  #dmroi-root .range-ends { display: flex; justify-content: space-between; font-family: ui-monospace, \"SF Mono\", \"Cascadia Mono\", Consolas, Menlo, monospace; font-size: 11px; color: var(--ink-faint); margin-top: 4px; }\n  #dmroi-root .results { position: sticky; top: 20px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 22px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 18px; }\n  #dmroi-root .r-label { font-family: ui-monospace, \"SF Mono\", \"Cascadia Mono\", Consolas, Menlo, monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-faint); }\n  #dmroi-root .roi-row { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }\n  #dmroi-root .roi-num { font-family: ui-monospace, \"SF Mono\", \"Cascadia Mono\", Consolas, Menlo, monospace; font-variant-numeric: tabular-nums; font-size: 50px; font-weight: 700; line-height: 1; letter-spacing: -.03em; }\n  #dmroi-root .roi-pill { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; color: #fff; background: var(--ink-faint); }\n  #dmroi-root .funnel { display: flex; flex-direction: column; gap: 8px; }\n  #dmroi-root .f-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 14px; color: var(--ink-soft); border-bottom: 1px dashed var(--line); padding-bottom: 6px; }\n  #dmroi-root .f-row:last-child { border-bottom: 0; }\n  #dmroi-root .f-row b { font-family: ui-monospace, \"SF Mono\", \"Cascadia Mono\", Consolas, Menlo, monospace; font-variant-numeric: tabular-nums; font-size: 15px; color: var(--ink); font-weight: 700; }\n  #dmroi-root .breakeven { font-size: 13px; color: var(--ink-soft); background: var(--chip-bg); border-radius: 8px; padding: 10px 12px; }\n  #dmroi-root .breakeven b { color: var(--ink); }\n  #dmroi-root .verdict { font-size: 14px; color: var(--ink-soft); border-left: 3px solid var(--line); padding-left: 12px; min-height: 44px; }\n  #dmroi-root .verdict strong { color: var(--ink); }\n  #dmroi-root .btns { display: flex; gap: 10px; }\n  #dmroi-root .btns button { font: inherit; font-weight: 600; font-size: 14px; border-radius: 8px; padding: 10px 16px; cursor: pointer; border: 1px solid var(--line); background: var(--card); color: var(--ink); }\n  #dmroi-root .btns button.primary { background: var(--ink); color: var(--paper); border-color: var(--ink); flex: 1; }\n  #dmroi-root footer.brand { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: baseline; justify-content: space-between; font-size: 13px; color: var(--ink-soft); }\n  #dmroi-root footer.brand .brandname { font-weight: 700; color: var(--ink); }\n  #dmroi-root footer.brand a { color: var(--hot); text-decoration: none; font-weight: 600; }\n  #dmroi-root .disclaimer { margin-top: 10px; font-size: 12px; color: var(--ink-faint); max-width: 70ch; }\n\u003c\/style\u003e\n\n\u003cdiv id=\"dmroi-root\"\u003e\u003cdiv class=\"wrap\"\u003e\n  \u003cheader class=\"top\"\u003e\n    \u003cspan class=\"eyebrow\"\u003eFree tool for wholesalers \u0026amp; investors\u003c\/span\u003e\n    \u003ch1\u003eDirect Mail ROI Calculator\u003c\/h1\u003e\n    \u003cp class=\"sub\"\u003eKnow before you mail. Set your list size, cost, and realistic rates — see cost per deal, total return, and the exact response rate where your campaign breaks even.\u003c\/p\u003e\n  \u003c\/header\u003e\n  \u003cdiv class=\"presets\"\u003e\n    \u003cbutton type=\"button\" data-preset=\"conservative\"\u003eConservative\u003c\/button\u003e\n    \u003cbutton type=\"button\" data-preset=\"typical\" class=\"active\"\u003eTypical\u003c\/button\u003e\n    \u003cbutton type=\"button\" data-preset=\"dialed\"\u003eDialed-in list\u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"layout\"\u003e\n    \u003cdiv class=\"inputs\"\u003e\n      \u003cdiv class=\"field\"\u003e\n\u003cdiv class=\"field-head\"\u003e\n\u003clabel for=\"dmroi-listSize\"\u003eList size\u003c\/label\u003e\u003cspan class=\"field-val mono\" id=\"dmroi-v-listSize\"\u003e2,000\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"field-why\"\u003eUnique owner records you're mailing.\u003c\/p\u003e\n\u003cinput type=\"range\" id=\"dmroi-listSize\" min=\"250\" max=\"20000\" step=\"250\" value=\"2000\"\u003e\u003cdiv class=\"range-ends\"\u003e\n\u003cspan\u003e250\u003c\/span\u003e\u003cspan\u003e20,000\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"field\"\u003e\n\u003cdiv class=\"field-head\"\u003e\n\u003clabel for=\"dmroi-touches\"\u003eTouches per record\u003c\/label\u003e\u003cspan class=\"field-val mono\" id=\"dmroi-v-touches\"\u003e4\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"field-why\"\u003eHow many times each record gets mailed. Deals show up on touch 3–6, not touch 1.\u003c\/p\u003e\n\u003cinput type=\"range\" id=\"dmroi-touches\" min=\"1\" max=\"8\" step=\"1\" value=\"4\"\u003e\u003cdiv class=\"range-ends\"\u003e\n\u003cspan\u003e1\u003c\/span\u003e\u003cspan\u003e8\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"field\"\u003e\n\u003cdiv class=\"field-head\"\u003e\n\u003clabel for=\"dmroi-cpp\"\u003eCost per piece\u003c\/label\u003e\u003cspan class=\"field-val mono\" id=\"dmroi-v-cpp\"\u003e$0.55\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"field-why\"\u003ePrint + postage + fulfillment. Postcards run $0.45–$0.70, letters $0.80–$1.50.\u003c\/p\u003e\n\u003cinput type=\"range\" id=\"dmroi-cpp\" min=\"0.30\" max=\"2.00\" step=\"0.05\" value=\"0.55\"\u003e\u003cdiv class=\"range-ends\"\u003e\n\u003cspan\u003e$0.30\u003c\/span\u003e\u003cspan\u003e$2.00\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"field\"\u003e\n\u003cdiv class=\"field-head\"\u003e\n\u003clabel for=\"dmroi-resp\"\u003eResponse rate\u003c\/label\u003e\u003cspan class=\"field-val mono\" id=\"dmroi-v-resp\"\u003e0.75%\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"field-why\"\u003eCalls\/texts per piece mailed. Flat lists pull 0.2–0.5%. Stacked, skip-traced lists pull 1%+.\u003c\/p\u003e\n\u003cinput type=\"range\" id=\"dmroi-resp\" min=\"0.05\" max=\"3\" step=\"0.05\" value=\"0.75\"\u003e\u003cdiv class=\"range-ends\"\u003e\n\u003cspan\u003e0.05%\u003c\/span\u003e\u003cspan\u003e3%\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"field\"\u003e\n\u003cdiv class=\"field-head\"\u003e\n\u003clabel for=\"dmroi-close\"\u003eResponse-to-deal rate\u003c\/label\u003e\u003cspan class=\"field-val mono\" id=\"dmroi-v-close\"\u003e5%\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"field-why\"\u003eOf the sellers who respond, how many you contract. New operators: 2–4%. Experienced: 5–10%.\u003c\/p\u003e\n\u003cinput type=\"range\" id=\"dmroi-close\" min=\"1\" max=\"15\" step=\"0.5\" value=\"5\"\u003e\u003cdiv class=\"range-ends\"\u003e\n\u003cspan\u003e1%\u003c\/span\u003e\u003cspan\u003e15%\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"field\"\u003e\n\u003cdiv class=\"field-head\"\u003e\n\u003clabel for=\"dmroi-profit\"\u003eAverage profit per deal\u003c\/label\u003e\u003cspan class=\"field-val mono\" id=\"dmroi-v-profit\"\u003e$12,000\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"field-why\"\u003eAssignment fee or net flip profit. US wholesale average runs $10k–$15k.\u003c\/p\u003e\n\u003cinput type=\"range\" id=\"dmroi-profit\" min=\"2000\" max=\"50000\" step=\"1000\" value=\"12000\"\u003e\u003cdiv class=\"range-ends\"\u003e\n\u003cspan\u003e$2k\u003c\/span\u003e\u003cspan\u003e$50k\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003caside class=\"results\"\u003e\n      \u003cdiv\u003e\n\u003cdiv class=\"r-label\"\u003eReturn on mail spend\u003c\/div\u003e\n\u003cdiv class=\"roi-row\"\u003e\n\u003cspan class=\"roi-num mono\" id=\"dmroi-roiNum\"\u003e0%\u003c\/span\u003e\u003cspan class=\"roi-pill\" id=\"dmroi-roiPill\"\u003e—\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"funnel\"\u003e\n        \u003cdiv class=\"f-row\"\u003e\n\u003cspan\u003ePieces mailed\u003c\/span\u003e\u003cb id=\"dmroi-fPieces\"\u003e0\u003c\/b\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"f-row\"\u003e\n\u003cspan\u003eTotal mail cost\u003c\/span\u003e\u003cb id=\"dmroi-fCost\"\u003e$0\u003c\/b\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"f-row\"\u003e\n\u003cspan\u003eSeller responses\u003c\/span\u003e\u003cb id=\"dmroi-fResp\"\u003e0\u003c\/b\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"f-row\"\u003e\n\u003cspan\u003eCost per response\u003c\/span\u003e\u003cb id=\"dmroi-fCpr\"\u003e$0\u003c\/b\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"f-row\"\u003e\n\u003cspan\u003eDeals closed\u003c\/span\u003e\u003cb id=\"dmroi-fDeals\"\u003e0\u003c\/b\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"f-row\"\u003e\n\u003cspan\u003eCost per deal\u003c\/span\u003e\u003cb id=\"dmroi-fCpd\"\u003e$0\u003c\/b\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"f-row total\"\u003e\n\u003cspan\u003eProjected profit\u003c\/span\u003e\u003cb id=\"dmroi-fProfit\"\u003e$0\u003c\/b\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"breakeven\" id=\"dmroi-breakeven\"\u003e\u003c\/div\u003e\n      \u003cp class=\"verdict\" id=\"dmroi-verdict\"\u003e\u003c\/p\u003e\n      \u003cdiv class=\"btns\"\u003e\n\u003cbutton class=\"primary\" id=\"dmroi-copyBtn\" type=\"button\"\u003eCopy summary\u003c\/button\u003e\u003cbutton id=\"dmroi-resetBtn\" type=\"button\"\u003eReset\u003c\/button\u003e\n\u003c\/div\u003e\n    \u003c\/aside\u003e\n  \u003c\/div\u003e\n  \u003cfooter class=\"brand\"\u003e\n    \u003cspan\u003eBuilt free for the investor community by \u003cspan class=\"brandname\"\u003eRealSupermarket.com\u003c\/span\u003e \u0026amp; \u003cspan class=\"brandname\"\u003eListCentral.US\u003c\/span\u003e\u003c\/span\u003e\n    \u003cspan\u003eResponse rate starts with the list. \u003ca href=\"https:\/\/realsupermarket.com\"\u003eGet stacked lists that pull →\u003c\/a\u003e\u003c\/span\u003e\n  \u003c\/footer\u003e\n  \u003cp class=\"disclaimer\"\u003eProjections only — actual results depend on list quality, market, offer, and follow-up. Benchmarks reflect common industry experience. Always follow DNC and local marketing regulations.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  var $ = function (id) { return document.getElementById(id); };\n  var inputs = ['dmroi-listSize','dmroi-touches','dmroi-cpp','dmroi-resp','dmroi-close','dmroi-profit'];\n  var PRESETS = {\n    conservative: { 'dmroi-listSize':2000,'dmroi-touches':4,'dmroi-cpp':0.55,'dmroi-resp':0.3,'dmroi-close':3,'dmroi-profit':10000 },\n    typical: { 'dmroi-listSize':2000,'dmroi-touches':4,'dmroi-cpp':0.55,'dmroi-resp':0.75,'dmroi-close':5,'dmroi-profit':12000 },\n    dialed: { 'dmroi-listSize':2000,'dmroi-touches':5,'dmroi-cpp':0.55,'dmroi-resp':1.25,'dmroi-close':7,'dmroi-profit':14000 }\n  };\n  function fmtN(n) { return Math.round(n).toLocaleString('en-US'); }\n  function fmtC(n) { if (n \u003e= 1000) return '$' + fmtN(n); return '$' + n.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 }); }\n  function calc() {\n    var listSize = +$('dmroi-listSize').value, touches = +$('dmroi-touches').value, cpp = +$('dmroi-cpp').value;\n    var resp = +$('dmroi-resp').value \/ 100, close = +$('dmroi-close').value \/ 100, profit = +$('dmroi-profit').value;\n    $('dmroi-v-listSize').textContent = fmtN(listSize);\n    $('dmroi-v-touches').textContent = touches;\n    $('dmroi-v-cpp').textContent = fmtC(cpp);\n    $('dmroi-v-resp').textContent = (+$('dmroi-resp').value) + '%';\n    $('dmroi-v-close').textContent = (+$('dmroi-close').value) + '%';\n    $('dmroi-v-profit').textContent = '$' + fmtN(profit);\n    var pieces = listSize * touches, cost = pieces * cpp, responses = pieces * resp, deals = responses * close;\n    var revenue = deals * profit, net = revenue - cost, roi = cost \u003e 0 ? (net \/ cost) * 100 : 0;\n    var cpr = responses \u003e 0 ? cost \/ responses : 0, cpd = deals \u003e 0 ? cost \/ deals : 0;\n    $('dmroi-fPieces').textContent = fmtN(pieces);\n    $('dmroi-fCost').textContent = '$' + fmtN(cost);\n    $('dmroi-fResp').textContent = responses \u003c 10 ? responses.toFixed(1) : fmtN(responses);\n    $('dmroi-fCpr').textContent = responses \u003e 0 ? fmtC(cpr) : '—';\n    $('dmroi-fDeals').textContent = deals \u003c 10 ? deals.toFixed(1) : fmtN(deals);\n    $('dmroi-fCpd').textContent = deals \u003e 0 ? '$' + fmtN(cpd) : '—';\n    $('dmroi-fProfit').textContent = (net \u003c 0 ? '−$' : '$') + fmtN(Math.abs(net));\n    $('dmroi-fProfit').style.color = net \u003e= 0 ? 'var(--good)' : 'var(--fire)';\n    var beResp = (close \u003e 0 \u0026\u0026 profit \u003e 0) ? (cost \/ (pieces * close * profit)) * 100 : 0;\n    $('dmroi-breakeven').innerHTML = '\u003cb\u003eBreakeven response rate: ' + beResp.toFixed(2) + '%\u003c\/b\u003e — below this, the campaign loses money. Your current rate: ' + (+$('dmroi-resp').value).toFixed(2) + '%.';\n    var pill = $('dmroi-roiPill'), verdict = $('dmroi-verdict'), roiNum = $('dmroi-roiNum');\n    roiNum.textContent = (roi \u003c 0 ? '−' : '') + fmtN(Math.abs(roi)) + '%';\n    var color, name, text;\n    if (net \u003c 0) { color = 'var(--fire)'; name = 'Losing money'; text = '\u003cstrong\u003eDon’t mail this list at these numbers.\u003c\/strong\u003e Fix the biggest lever first: response rate. A tighter, stacked list beats mailing more of a flat one.'; }\n    else if (roi \u003c 100) { color = 'var(--warm)'; name = 'Thin'; text = '\u003cstrong\u003eProfitable but fragile.\u003c\/strong\u003e One slow month erases this margin. Raise response rate with better data or cut list size to only the highest-motivation records.'; }\n    else if (roi \u003c 400) { color = 'var(--good)'; name = 'Solid'; text = '\u003cstrong\u003eHealthy campaign.\u003c\/strong\u003e This is sustainable economics — protect it with consistent touches and fast follow-up on every response.'; }\n    else { color = 'var(--good)'; name = 'Excellent'; text = '\u003cstrong\u003eScale it.\u003c\/strong\u003e At this return, your constraint is deal flow capacity, not mail budget. Add records at the same quality bar before raising touches.'; }\n    if (deals \u003c 1 \u0026\u0026 net \u003e= 0) { text += ' \u003cstrong\u003eNote:\u003c\/strong\u003e projected deals under 1 — this budget is below the reliable minimum. Expect zero-deal months at this volume.'; }\n    pill.textContent = name; pill.style.background = color; roiNum.style.color = color;\n    verdict.innerHTML = text; verdict.style.borderLeftColor = color;\n  }\n  inputs.forEach(function (id) { $(id).addEventListener('input', function () { document.querySelectorAll('#dmroi-root .presets button').forEach(function (b) { b.classList.remove('active'); }); calc(); }); });\n  document.querySelectorAll('#dmroi-root .presets button').forEach(function (btn) {\n    btn.addEventListener('click', function () {\n      var p = PRESETS[btn.dataset.preset];\n      Object.keys(p).forEach(function (k) { $(k).value = p[k]; });\n      document.querySelectorAll('#dmroi-root .presets button').forEach(function (b) { b.classList.remove('active'); });\n      btn.classList.add('active'); calc();\n    });\n  });\n  $('dmroi-resetBtn').addEventListener('click', function () {\n    var p = PRESETS.typical;\n    Object.keys(p).forEach(function (k) { $(k).value = p[k]; });\n    document.querySelectorAll('#dmroi-root .presets button').forEach(function (b) { b.classList.toggle('active', b.dataset.preset === 'typical'); });\n    calc();\n  });\n  $('dmroi-copyBtn').addEventListener('click', function () {\n    var text = 'DIRECT MAIL ROI PROJECTION\\n' + 'List: ' + $('dmroi-v-listSize').textContent + ' records x ' + $('dmroi-v-touches').textContent + ' touches @ ' + $('dmroi-v-cpp').textContent + '\/piece\\n' + 'Pieces mailed: ' + $('dmroi-fPieces').textContent + ' | Mail cost: ' + $('dmroi-fCost').textContent + '\\n' + 'Response rate: ' + $('dmroi-v-resp').textContent + ' -\u003e ' + $('dmroi-fResp').textContent + ' responses (' + $('dmroi-fCpr').textContent + ' each)\\n' + 'Deals: ' + $('dmroi-fDeals').textContent + ' @ ' + $('dmroi-v-profit').textContent + ' avg -\u003e cost per deal ' + $('dmroi-fCpd').textContent + '\\n' + 'Projected profit: ' + $('dmroi-fProfit').textContent + ' | ROI: ' + $('dmroi-roiNum').textContent + '\\n' + $('dmroi-breakeven').textContent + '\\n\\nRun your own numbers — free Direct Mail ROI Calculator by RealSupermarket.com \u0026 ListCentral.US';\n    var btn = this;\n    function done() { btn.textContent = 'Copied ✓'; setTimeout(function () { btn.textContent = 'Copy summary'; }, 1600); }\n    function fb() { var ta = document.createElement('textarea'); ta.value = text; document.body.appendChild(ta); ta.select(); try { document.execCommand('copy'); done(); } catch (e) {} document.body.removeChild(ta); }\n    if (navigator.clipboard \u0026\u0026 navigator.clipboard.writeText) { navigator.clipboard.writeText(text).then(done, fb); } else { fb(); }\n  });\n  calc();\n})();\n\u003c\/script\u003e","brand":"ListCentral.US","offers":[{"title":"Default","offer_id":50164109115632,"sku":"TOOL-MAIL-ROI","price":0.0,"currency_code":"USD","in_stock":false}],"url":"https:\/\/listcentral.us\/products\/direct-mail-roi-calculator","provider":"ListCentral.US","version":"1.0","type":"link"}