TwinsAI
twinsai.com/journal

From 8 Weeks to 8 Days: How AI Is Transforming Sales Onboarding

New data from TwinsAI’s Conversation Cards beta shows new inside sales hires reaching full quota in under 2 weeks — and the implications go far beyond onboarding. Every sales leader has felt the tax of a slow ramp. You hire a promising…

DL
Daniel Lizio-Katzen
Mar 20, 202614 min read
From 8 Weeks to 8 Days: How AI Is Transforming Sales Onboarding
FIG. 01 · FROM 8 WEEKS TO 8 DAYS: HOW AI IS TRANSFORMING S

New data from TwinsAI’s Conversation Cards beta shows new inside sales hires reaching full quota in under 2 weeks — and the implications go far beyond onboarding.

Every sales leader has felt the tax of a slow ramp. You hire a promising SDR/BDR/ISR, spend weeks on product training, shadowing, and script reviews, and then wait; hoping they hit quota before the window closes. Across the industry, that ramp period typically runs six to eight weeks. For fast-growing companies, that’s six to eight weeks of salary, management bandwidth, and opportunity cost with little to show for it.

One of the reasons we built Conversation Cards at TwinsAI is because we believed this problem was solvable. After running a closed beta with a group of enterprise sales teams, the numbers are in — and they’re better than we expected.

New inside sales hires using Conversation Cards are reaching full quota in under two weeks; down from a typical six-to-eight-week ramp.

What TwinsAI’s Conversation Cards Actually Do

Conversation Cards are embedded directly in the live call transcript. As a conversation unfolds, the system surfaces concise, color-coded guidance to the rep in real time; questions to ask that move the deal forward, positive reinforcement, nudges to shift focus, and stop signals when a conversation is heading in the wrong direction.

The system draws on multiple self learning knowledge layers containing information about the company, employee roles, the specific user and product information. TwinsAI then combines these with dynamic context pulled directly from the CRM, data providers, and the public web about a deal’s stage, prospects’ profiles, and account intelligence. The result is guidance that is both relevant to the moment and grounded around the rep’s specific deal and guided by the sales methodology used by the organization.

For a new hire, this changes everything.

The Real Cost of a Six-Week Ramp

The six-to-eight-week ramp timeline is so normalized in inside sales that most organizations have stopped questioning it. They shouldn’t. Slow onboarding creates four distinct and compounding problems:

  • You can’t identify high-potential reps quickly. When everyone takes six to eight weeks to ramp, it’s nearly impossible to distinguish genuinely strong performers from those who are just slow starters. Meaningful signal gets buried in noise.
  • Revenue output is delayed. A rep not at full quota is a rep not generating full output. Multiply that across a cohort of new hires and the impact on pipeline becomes significant, fast.
  • Low performers stay too long. Without fast, reliable performance data, it’s hard to act on underperformance before probationary periods end. That means months of misallocated cost.
  • CRM hygiene suffers. New reps are cognitively overloaded in early calls. Important next steps get missed, deal data goes unlogged, and the CRM becomes less reliable exactly when you need it most.

Conversation Cards addresses all four issues; not by replacing the rep, but by providing them a real-time cognitive partner that ensures they’re asking the right questions, capturing the right data, and navigating objections correctly from day one.

What the Beta Data Shows

The headline metric is the ramp time reduction: from six-to-eight weeks to under two weeks. But it’s worth understanding why this happens. New hires using Conversation Cards don’t need to have every product detail, every objection handler, and every deal stage question memorized before they get on a call. TwinsAI surfaces that knowledge in context, at the moment it’s needed. Training shifts from rote memorization to active, real-world application — which is also how adults actually learn.

Beyond onboarding, the beta produced two additional data points worth noting:

  • Close rates increased 14% across the beta group. Sales cycles vary significantly across our client base, so we’re being careful not to over-index on early data; but a 14% improvement in close rate is a meaningful signal, and we expect the number to grow as we accumulate more data.
  • Average sales cycle length decreased 11%. Again, we’re early in the data collection process, but the directional trend is consistent with what Conversation Cards is designed to do: surface the right question at the right moment, so deals don’t stall.

The mechanism connecting all three outcomes is the same: reducing cognitive overload. When reps — new or experienced — aren’t burning cycles trying to remember what to ask next, they can focus on what actually closes deals: listening, building rapport, and understanding the buyer’s real motivations.

Faster Data, Better Decisions

One underappreciated benefit of faster ramp time is what it does for performance management. When a new rep reaches full quota in two weeks instead of eight, you have meaningful performance data in a fraction of the time. That means you can identify your top performers early; and invest in them accordingly. While also making faster, more defensible decisions about reps who aren’t hitting the mark.

Conversation Cards also helps with the chronic CRM problem. Because the system tracks deal context in real time and prompts reps to capture next steps during the call, data hygiene improves automatically. Sales ops teams in the beta reported cleaner pipeline data without adding any process overhead.

Who This Is Built For

If your company is scaling its sales team quickly, adding headcount faster than your enablement function can absorb, Conversation Cards was built for you. The product is designed for account executives running new deals, account managers handling renewals and QBRs, and the sales operations leaders who need consistent execution across all of them.

We’re currently running a limited proof of value program with new customers. If you’d like to see what a two-week ramp looks like on your own team, sign up here.

#tai-calc * { box-sizing: border-box; margin: 0; padding: 0; } #tai-calc { font-family: 'Lato', sans-serif; background: linear-gradient(160deg, #0D1F3C 0%, #1a3a6b 100%); padding: 0 0 60px; border-radius: 12px; overflow: hidden; } /* Header */ #tai-calc .tai-header { background: #0D1F3C; padding: 32px 40px 28px; border-bottom: 3px solid #1A6BB5; } #tai-calc .tai-header-inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; } #tai-calc .tai-logo { flex-shrink: 0; width: 160px; opacity: 0.95; margin-top: 4px; } #tai-calc .tai-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #1A6BB5; margin-bottom: 8px; } #tai-calc .tai-title { font-size: 26px; font-weight: 900; color: #fff; letter-spacing: -0.01em; line-height: 1.15; margin-bottom: 8px; } #tai-calc .tai-subtitle { font-size: 14px; color: rgba(255,255,255,0.6); max-width: 540px; } /* Inner wrapper */ #tai-calc .tai-inner { max-width: 860px; margin: 0 auto; padding: 0 32px; } /* Cards */ #tai-calc .tai-card { background: #fff; border-radius: 12px; padding: 28px 32px; margin-top: 20px; box-shadow: 0 4px 24px rgba(0,0,0,0.18); } #tai-calc .tai-section-label { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #1A6BB5; margin-bottom: 18px; } /* Inputs grid */ #tai-calc .tai-inputs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; } @media (max-width: 600px) { #tai-calc .tai-inputs-grid { grid-template-columns: 1fr; } #tai-calc .tai-inner { padding: 0 16px; } #tai-calc .tai-header { padding: 24px 20px; } } #tai-calc .tai-field { margin-bottom: 20px; } #tai-calc .tai-label { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: #0D1F3C; margin-bottom: 6px; } #tai-calc .tai-input-wrap { display: flex; align-items: center; border: 1.5px solid #D1E8FF; border-radius: 8px; overflow: hidden; background: #fff; transition: border-color 0.2s; } #tai-calc .tai-input-wrap:focus-within { border-color: #1A6BB5; } #tai-calc .tai-affix { padding: 10px 12px; background: #EBF4FD; color: #1A6BB5; font-size: 14px; font-weight: 700; } #tai-calc .tai-affix-left { border-right: 1.5px solid #D1E8FF; } #tai-calc .tai-affix-right { border-left: 1.5px solid #D1E8FF; } #tai-calc input[type=number] { flex: 1; border: none; outline: none; padding: 10px 12px; font-family: 'Lato', sans-serif; font-size: 15px; color: #0D1F3C; background: transparent; -moz-appearance: textfield; } #tai-calc input[type=number]::-webkit-inner-spin-button, #tai-calc input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; } /* Derived row */ #tai-calc .tai-derived { margin-top: 12px; padding: 12px 16px; background: #EBF4FD; border-radius: 8px; display: flex; gap: 24px; flex-wrap: wrap; } #tai-calc .tai-derived-label { font-size: 11px; color: #6B7280; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; } #tai-calc .tai-derived-val { font-size: 15px; font-weight: 900; color: #0D1F3C; } /* Metric cards */ #tai-calc .tai-metrics { display: flex; gap: 12px; flex-wrap: wrap; } #tai-calc .tai-metric { flex: 1; min-width: 140px; border-radius: 10px; padding: 14px 18px; border: 1.5px solid #D1E8FF; background: #EBF4FD; } #tai-calc .tai-metric.highlight { background: #E6F9F0; border-color: #A7DFC4; } #tai-calc .tai-metric-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #1A6BB5; margin-bottom: 4px; } #tai-calc .tai-metric.highlight .tai-metric-label { color: #0D7A45; } #tai-calc .tai-metric-val { font-size: 20px; font-weight: 900; color: #0D1F3C; line-height: 1.1; } #tai-calc .tai-metric.highlight .tai-metric-val { font-size: 26px; color: #0D7A45; } #tai-calc .tai-metric-sub { font-size: 12px; color: #6B7280; margin-top: 4px; } /* Table */ #tai-calc .tai-table-wrap { border-radius: 12px; overflow: hidden; margin-top: 20px; box-shadow: 0 4px 24px rgba(0,0,0,0.18); } #tai-calc .tai-table-head { padding: 20px 28px 12px; background: #fff; border-bottom: 1px solid #D1E8FF; } #tai-calc .tai-row { display: grid; grid-template-columns: 2.2fr 1fr 1fr 1fr; border-bottom: 1px solid #D1E8FF; } #tai-calc .tai-row.header-row { background: #0D1F3C; } #tai-calc .tai-row.alt-row { background: #F7FBFF; } #tai-calc .tai-row.highlight-row { background: #EBF4FD; } #tai-calc .tai-row.savings-row { background: #E6F9F0; } #tai-calc .tai-row.plain-row { background: #fff; } #tai-calc .tai-cell { padding: 10px 14px; font-size: 13px; color: #0D1F3C; border-right: 1px solid #D1E8FF; } #tai-calc .tai-cell:last-child { border-right: none; } #tai-calc .tai-cell.label-cell { text-align: left; } #tai-calc .tai-cell.val-cell { text-align: right; font-weight: 700; } #tai-calc .tai-row.header-row .tai-cell { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #fff; border-right-color: rgba(255,255,255,0.15); } #tai-calc .tai-row.savings-row .tai-cell { color: #0D7A45; font-weight: 700; } #tai-calc .tai-cell.diff-cell { color: #1A6BB5; font-weight: 700; } #tai-calc .tai-row.highlight-row .tai-cell { font-weight: 700; } /* Scaled grid */ #tai-calc .tai-scaled-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-top: 16px; } @media (max-width: 600px) { #tai-calc .tai-scaled-grid { grid-template-columns: 1fr; } } #tai-calc .tai-scaled-item { background: #EBF4FD; border: 1.5px solid #D1E8FF; border-radius: 8px; padding: 14px 16px; } #tai-calc .tai-scaled-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: #1A6BB5; margin-bottom: 4px; } #tai-calc .tai-scaled-val { font-size: 18px; font-weight: 900; color: #0D1F3C; } #tai-calc .tai-scaled-sub { font-size: 11px; color: #6B7280; margin-top: 2px; } /* Footer note */ #tai-calc .tai-note { margin-top: 16px; padding: 14px 20px; background: rgba(255,255,255,0.08); border-radius: 8px; border-left: 3px solid #1A6BB5; font-size: 12px; color: rgba(255,255,255,0.55); line-height: 1.6; } #tai-calc .tai-note strong { color: rgba(255,255,255,0.8); } /* CTAs */ #tai-calc .tai-cta { text-align: center; margin-top: 28px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; } #tai-calc .tai-cta a, #tai-calc .tai-btn-pdf { display: inline-block; padding: 14px 32px; border-radius: 8px; font-family: 'Lato', sans-serif; font-weight: 700; font-size: 15px; letter-spacing: 0.02em; cursor: pointer; text-decoration: none; border: none; transition: background 0.2s, opacity 0.2s; } #tai-calc .tai-cta a { background: #1A6BB5; color: #fff; box-shadow: 0 4px 16px rgba(26,107,181,0.4); } #tai-calc .tai-cta a:hover { background: #155a9a; } #tai-calc .tai-btn-pdf { background: #fff; color: #0D1F3C; box-shadow: 0 4px 16px rgba(0,0,0,0.15); } #tai-calc .tai-btn-pdf:hover { opacity: 0.88; }

TwinsAI · Conversation Cards

TwinsAI BDR/SDR Ramp ROI Calculator

Model the additional pipeline and revenue generated when new reps reach full quota in 2 weeks instead of 8.

.st0, .st1 { fill: #fff; } .st1 { fill-rule: evenodd; }

Your SDR Inputs

SDR Goal (Meetings / Week)

mtgs

SDR Quota Attainment

%

Meeting → Contract Conversion

%

Average Annual Contract Value (ACV)

$

Meetings/week at attainment

3.3

Extra productive weeks / rep

+6 weeks

Extra meetings / rep

20

Extra contracts / rep

4.0

Value Per Rep — First 12 Weeks

Additional Pipeline

$97,500

3.9 contracts × $25,000 ACV

Ramp Cost Savings

$11,137

Salary + TwinsAI fee delta

Total Value / Rep

$108,637

Full Comparison — Single SDR, 12-Week Window

Metric

Traditional

With Cards

Difference

Ramp period

8 weeks

2 weeks

−6 weeks

Full quota starts

Week 9

Week 3

6 weeks earlier

Productive weeks (of 12)

4 weeks

10 weeks

+6 weeks

Meetings booked

13

33

+20

Contracts closed

2.6

6.5

+3.9

Revenue generated

$65,000

$162,500

+$97,500

Unproductive salary cost

$15,769

$3,942

−$11,827

TwinsAI platform cost (12 wks)

$0

$897

+$897

Total value vs. traditional

$108,637

$108,637

Scaled Impact — 20 Reps, 4 Quarterly Batches of 5

Additional Pipeline (20 reps)

$1.95M

78 additional contracts

Ramp Cost Savings (20 reps)

$164,778

Full-year model

Total Annual Value

$2.13M

Per batch of 5

$532K

Revenue + savings

ROI on TwinsAI ($71,760)

3,261%

Total value ÷ platform cost

Payback period

< 2 weeks

Time to recover TwinsAI cost

Note:

This model isolates the impact of 6 additional productive weeks per rep. It does not include lift from Conversation Cards' 14% close rate improvement or 11% reduction in average sales cycle length observed in beta — both of which would increase the total value figure significantly.

⬇ Download PDF Summary

Start Your Proof of Value →

(function() { var EXTRA_WEEKS = 6, WEEKLY_SDR_COST = 1971, TWINS_ANNUAL = 3588; var TWINS_12WK = 897; // $299/month 00d7 3 months var COST_SAVINGS = 164778, TRAD_PROD_WKS = 4, CARDS_PROD_WKS = 10; window.taiState = {}; function fmtShort(n) { if (n >= 1000000) return '$' + (n / 1000000).toFixed(2) + 'M'; if (n >= 1000) return '$' + (n / 1000).toFixed(0) + 'K'; return '$' + Math.round(n).toLocaleString('en-US'); } function fmtFull(n) { return '$' + Math.round(n).toLocaleString('en-US'); } function set(id, val) { var el = document.getElementById(id); if (el) el.textContent = val; } function calculate() { var goal = parseFloat(document.getElementById('tai-goal').value) || 0; var attainment = parseFloat(document.getElementById('tai-attainment').value) || 0; var conversion = parseFloat(document.getElementById('tai-conversion').value) || 0; var acv = parseFloat(document.getElementById('tai-acv').value) || 0; var mtgsPerWk = goal * (attainment / 100); var extraMtgs = mtgsPerWk * EXTRA_WEEKS; var extraContracts = extraMtgs * (conversion / 100); var revenuePerRep = extraContracts * acv; var tradMtgs = mtgsPerWk * TRAD_PROD_WKS; var cardsMtgs = mtgsPerWk * CARDS_PROD_WKS; var tradContracts = tradMtgs * (conversion / 100); var cardsContracts = cardsMtgs * (conversion / 100); var tradRev = tradContracts * acv; var cardsRev = cardsContracts * acv; var costSavingsPerRep = (WEEKLY_SDR_COST * 6) - TWINS_12WK; var totalValuePerRep = revenuePerRep + costSavingsPerRep; var revenueTotal = revenuePerRep * 20; var totalValueAnnual = revenueTotal + COST_SAVINGS; var revenuePerBatch = revenuePerRep * 5; var totalPerBatch = revenuePerBatch + (COST_SAVINGS / 4); var roiPct = Math.round((totalValueAnnual / (TWINS_ANNUAL * 20)) * 100); var paybackWks = Math.ceil((TWINS_ANNUAL * 20) / (totalValueAnnual / 52)); window.taiState = { goal: goal, attainment: attainment, conversion: conversion, acv: acv, mtgsPerWk: mtgsPerWk, extraMtgs: extraMtgs, extraContracts: extraContracts, revenuePerRep: revenuePerRep, costSavingsPerRep: costSavingsPerRep, totalValuePerRep: totalValuePerRep, tradMtgs: tradMtgs, cardsMtgs: cardsMtgs, tradContracts: tradContracts, cardsContracts: cardsContracts, tradRev: tradRev, cardsRev: cardsRev, revenueTotal: revenueTotal, totalValueAnnual: totalValueAnnual, totalPerBatch: totalPerBatch, roiPct: roiPct, paybackWks: paybackWks, fmtFull: fmtFull, fmtShort: fmtShort }; set('d-mtgs-wk', mtgsPerWk.toFixed(1)); set('d-extra-mtgs', Math.round(extraMtgs)); set('d-extra-contracts', extraContracts.toFixed(1)); set('m-pipeline', fmtFull(revenuePerRep)); set('m-pipeline-sub', extraContracts.toFixed(1) + ' contracts \u00d7 ' + fmtFull(acv) + ' ACV'); set('m-cost-savings', fmtFull(costSavingsPerRep)); set('m-total-rep', fmtShort(totalValuePerRep)); set('row-mtgs-label', 'Meetings booked (' + mtgsPerWk.toFixed(1) + '/wk \u00d7 productive weeks)'); set('row-mtgs-trad', Math.round(tradMtgs).toString()); set('row-mtgs-cards', Math.round(cardsMtgs).toString()); set('row-mtgs-diff', '+' + Math.round(extraMtgs)); set('row-contracts-label', 'Contracts closed (' + conversion + '% conversion)'); set('row-contracts-trad', tradContracts.toFixed(1)); set('row-contracts-cards', cardsContracts.toFixed(1)); set('row-contracts-diff', '+' + extraContracts.toFixed(1)); set('row-rev-label', 'Revenue generated (\u00d7 ' + fmtFull(acv) + ' ACV)'); set('row-rev-trad', fmtFull(tradRev)); set('row-rev-cards', fmtFull(cardsRev)); set('row-rev-diff', '+' + fmtFull(revenuePerRep)); set('row-total-cards', fmtShort(totalValuePerRep)); set('row-total-diff', fmtShort(totalValuePerRep)); set('m-rev-total', fmtShort(revenueTotal)); set('m-rev-total-sub', Math.round(extraContracts * 20) + ' additional contracts'); set('m-total-annual', fmtShort(totalValueAnnual)); set('s-per-batch', fmtShort(totalPerBatch)); set('s-roi', roiPct.toLocaleString('en-US') + '%'); set('s-payback', paybackWks <= 1 ? '< 1 week' : '< ' + paybackWks + ' weeks'); } ['tai-goal','tai-attainment','tai-conversion','tai-acv'].forEach(function(id) { document.getElementById(id).addEventListener('input', calculate); }); calculate(); })(); function taiDownloadPDF() { if (!window.jspdf) { alert('PDF library not loaded yet \u2014 please try again in a moment.'); return; } var s = window.taiState; var doc = new window.jspdf.jsPDF({ orientation: 'portrait', unit: 'pt', format: 'letter' }); var W = 612, H = 792, L = 40, R = 572, CW = 532; var NAVY = [13,31,60], BLUE = [26,107,181], GREEN = [13,122,69]; var LB = [235,244,253], GB = [230,249,240], WHITE = [255,255,255]; var DARK = [17,17,17], GREY = [107,114,128]; function sf(a) { doc.setFillColor(a[0],a[1],a[2]); } function st(a) { doc.setTextColor(a[0],a[1],a[2]); } function sd(a) { doc.setDrawColor(a[0],a[1],a[2]); } var y = 0; // Header sf(NAVY); doc.rect(0,0,W,72,'F'); sf(BLUE); doc.rect(0,72,W,3,'F'); st(BLUE); doc.setFont('helvetica','bold'); doc.setFontSize(8); doc.text('TWINSAI \u00b7 CONVERSATION CARDS', L, 22); st(WHITE); doc.setFontSize(18); doc.text('SDR Ramp ROI Summary', L, 46); doc.setFontSize(9); doc.setFont('helvetica','normal'); doc.text('Generated at twinsai.com', L, 62); y = 90; // Inputs bar sf(LB); doc.rect(L,y,CW,38,'F'); var inp = [['Weekly Goal', s.goal+' mtgs/wk'],['Attainment',s.attainment+'%'],['Conversion',s.conversion+'%'],['ACV',s.fmtFull(s.acv)]]; var cw4 = CW/4; inp.forEach(function(item,i) { var x = L + i*cw4 + 8; st(BLUE); doc.setFont('helvetica','bold'); doc.setFontSize(7); doc.text(item[0].toUpperCase(), x, y+13); st(NAVY); doc.setFontSize(11); doc.text(item[1], x, y+28); }); y += 50; // Per-rep heading st(BLUE); doc.setFont('helvetica','bold'); doc.setFontSize(8); doc.text('VALUE PER REP \u2014 FIRST 12 WEEKS', L, y); y += 10; var bxs = [ {l:'Additional Pipeline', v:s.fmtFull(s.revenuePerRep), s:s.extraContracts.toFixed(1)+' contracts \u00d7 '+s.fmtFull(s.acv), bg:LB, vc:NAVY}, {l:'Ramp Cost Savings', v:s.fmtFull(s.costSavingsPerRep), s:'Salary + TwinsAI fee delta', bg:LB, vc:NAVY}, {l:'Total Value / Rep', v:s.fmtShort(s.totalValuePerRep), s:'Pipeline + cost savings', bg:GB, vc:GREEN}, ]; var bw = (CW-16)/3; bxs.forEach(function(b,i) { var bx = L + i*(bw+8); sf(b.bg); doc.rect(bx,y,bw,50,'F'); st(b.vc===GREEN?GREEN:BLUE); doc.setFont('helvetica','bold'); doc.setFontSize(7); doc.text(b.l.toUpperCase(), bx+8, y+14); st(b.vc); doc.setFontSize(14); doc.setFont('helvetica','bold'); doc.text(b.v, bx+8, y+30); st(GREY); doc.setFont('helvetica','normal'); doc.setFontSize(7.5); doc.text(b.s, bx+8, y+43); }); y += 62; // Comparison table heading st(BLUE); doc.setFont('helvetica','bold'); doc.setFontSize(8); doc.text('FULL COMPARISON \u2014 SINGLE SDR, 12-WEEK WINDOW', L, y); y += 8; var tc = [CW*0.44, CW*0.18, CW*0.18, CW*0.20]; var rows = [ {l:'Metric', c1:'Traditional', c2:'With Cards', c3:'Difference', hdr:true}, {l:'Ramp period', c1:'8 weeks', c2:'2 weeks', c3:'\u22126 weeks'}, {l:'Full quota starts', c1:'Week 9', c2:'Week 3', c3:'6 wks earlier'}, {l:'Productive weeks (of 12)', c1:'4 weeks', c2:'10 weeks', c3:'+6 weeks'}, {l:'Meetings booked', c1:Math.round(s.tradMtgs)+'', c2:Math.round(s.cardsMtgs)+'', c3:'+'+Math.round(s.extraMtgs)}, {l:'Contracts closed', c1:s.tradContracts.toFixed(1), c2:s.cardsContracts.toFixed(1), c3:'+'+s.extraContracts.toFixed(1)}, {l:'Revenue generated', c1:s.fmtFull(s.tradRev), c2:s.fmtFull(s.cardsRev), c3:'+'+s.fmtFull(s.revenuePerRep), hi:true}, {l:'Unproductive salary', c1:'$15,769', c2:'$3,942', c3:'\u2212$11,827'}, {l:'TwinsAI platform (12 wks)', c1:'$0', c2:'$897', c3:'+$897'}, {l:'Total value vs. traditional',c1:'\u2014', c2:s.fmtShort(s.totalValuePerRep), c3:s.fmtShort(s.totalValuePerRep), sv:true}, ]; var rh = 17; rows.forEach(function(r,i) { var bg = r.hdr ? NAVY : r.sv ? GB : r.hi ? LB : i%2===0 ? [247,251,255] : WHITE; sf(bg); doc.rect(L,y,CW,rh,'F'); var tc2 = r.hdr ? WHITE : r.sv ? GREEN : DARK; st(tc2); doc.setFont('helvetica', r.hdr||r.sv||r.hi?'bold':'normal'); doc.setFontSize(r.hdr ? 7 : 8); var vals = [r.l, r.c1, r.c2, r.c3], cx = L; vals.forEach(function(v,vi) { if (vi===3 && !r.hdr && !r.sv) st(BLUE); else st(tc2); var px = vi===0 ? cx+5 : cx+tc[vi]-5; doc.text(r.hdr ? v.toUpperCase() : v, px, y+11, {align: vi===0?'left':'right'}); cx += tc[vi]; }); y += rh; }); y += 14; // Scaled heading st(BLUE); doc.setFont('helvetica','bold'); doc.setFontSize(8); doc.text('SCALED IMPACT \u2014 20 REPS, 4 QUARTERLY BATCHES OF 5', L, y); y += 10; var sbs = [ {l:'Additional Pipeline (20 reps)', v:s.fmtShort(s.revenueTotal), s:Math.round(s.extraContracts*20)+' additional contracts'}, {l:'Ramp Cost Savings (20 reps)', v:'$164,778', s:'Full-year model'}, {l:'Total Annual Value', v:s.fmtShort(s.totalValueAnnual), s:'Pipeline + cost savings', g:true}, {l:'Per Batch of 5', v:s.fmtShort(s.totalPerBatch), s:'Revenue + savings'}, {l:'ROI on TwinsAI ($71,760)', v:s.roiPct.toLocaleString('en-US')+'%', s:'Total value \u00f7 platform cost'}, {l:'Payback Period', v:s.paybackWks<=1?'< 1 week':'< '+s.paybackWks+' wks', s:'Time to recover TwinsAI cost'}, ]; var sbw = (CW-20)/3; [0,3].forEach(function(rs) { sbs.slice(rs,rs+3).forEach(function(b,i) { var bx = L + i*(sbw+10); sf(b.g ? GB : LB); doc.rect(bx,y,sbw,42,'F'); st(b.g ? GREEN : BLUE); doc.setFont('helvetica','bold'); doc.setFontSize(7); doc.text(b.l.toUpperCase(), bx+7, y+12); st(b.g ? GREEN : NAVY); doc.setFontSize(12); doc.text(b.v, bx+7, y+27); st(GREY); doc.setFont('helvetica','normal'); doc.setFontSize(7.5); doc.text(b.s, bx+7, y+38); }); y += 52; }); // Disclaimer sf([240,247,255]); doc.rect(L,y,CW,28,'F'); sd(BLUE); doc.setLineWidth(2); doc.line(L,y,L,y+28); st(GREY); doc.setFont('helvetica','italic'); doc.setFontSize(7.5); doc.text('Note: This model isolates the impact of 6 additional productive weeks per rep and does not include', L+10, y+10); doc.text("lift from Conversation Cards' 14% close rate improvement or 11% sales cycle reduction seen in beta.", L+10, y+20); y += 40; // Footer sf(NAVY); doc.rect(0,H-34,W,34,'F'); st(WHITE); doc.setFont('helvetica','bold'); doc.setFontSize(9); doc.text('TwinsAI \u2014 Conversation Cards', L, H-14); st(BLUE); doc.setFont('helvetica','normal'); doc.text('twinsai.com/features/conversation-cards', R, H-14, {align:'right'}); doc.save('TwinsAI-Conversation-Cards-ROI.pdf'); }

Tagged#voice#engineering#twinsai

Read next

Browse all posts →