How to measure demo ROI
Learn how to measure demo ROI with a spreadsheet-ready formula, attribution rules, and a worked example that includes build cost, maintenance, and revenue lift.

Open your last demo in one tab and your CRM opportunity list in the other. Look at both. When you measure demo ROI, don't stop at build cost versus revenue. Include software cost, maintenance cost, and a revenue lift number you can defend when finance asks how you got there.
Most teams skip two of those four. They count what they paid to build the first version, subtract it from a loose pipeline number, and call it ROI. That math falls apart the first time the product ships a UI change and someone has to re-record six screens.
Here is the full model, with a formula you can paste into Sheets and attribution rules that should survive a RevOps review.
What counts in a demo ROI model
Build cost, software cost, maintenance cost, revenue lift
A demo ROI calculator needs four inputs, and only one of them, revenue lift, belongs on the benefit side. The other three are costs.
Build cost is the time to create the first version: design, capture, copy, QA. Convert hours to dollars using fully loaded labor rates, not salary alone.
Software cost is what you pay the demo tool each month. This is the line most teams do include, but often at the wrong tier. If HTML capture unlocks at a higher plan, like Supademo gating it to Growth ($350–450/mo) or Storylane to their Growth tier ($500–625/mo), the model should use the tier you actually need, not the entry price on the homepage.
Maintenance cost is the one that breaks the spreadsheet. Every product release that touches the UI is a potential demo update. On screenshot based tools, that means re-capturing every affected screen. Track this separately from build cost. It is recurring, not one time.
Revenue lift is the business outcome: pipeline influenced, win rate improvement, or sales cycle compression. Assign a dollar value to each. Keep the assumptions visible.
The costs buyers usually leave out
Beyond the four main inputs, a few line items disappear into vague overhead:
- Redesign time when the demo needs a structural overhaul, not just a screen swap
- Handoff time for briefing sales on what changed and why
- Tooling overlap when you pay for a demo tool, a screen recorder, and a personalization layer
- CRM cleanup when demo engagement data does not sync cleanly and someone has to fix opportunity records
One product team that tracked demo upkeep separately from initial build found that maintenance hours exceeded build hours within two quarters of launch. Not because the tool was bad. Because the product shipped every two weeks and nobody had budgeted for that cadence.
Use a demo ROI formula you can paste into Sheets
The spreadsheet formula that holds the whole model together
To measure demo return on investment, you need one formula that holds all four variables. Here it is:
In Sheets, keep each variable in its own named cell. Something like:
Maintenance cost belongs in its own cell, `B4`, not folded into build cost or left out entirely. That one habit is what separates a model that survives a quarterly review from one that falls apart the first time someone asks how you calculated it.
How to keep the formula honest
Two places people cheat the math:
Inflated revenue lift. If the demo touched every deal in the quarter, it is tempting to claim credit for all of them. Don't. Use only the pipeline where demo engagement is logged in the CRM and where the demo appeared before a stage advance or a close.
Hidden upkeep. Maintenance hours buried in "general marketing ops" or "content updates" make the model look better than it is. PostHog's product intelligence handbook makes a useful point about measuring the full cycle. The same idea applies here: measure behavior, then measure the cost of keeping the measurement honest.
Keep every assumption in a visible cell with a comment. If you change the maintenance estimate, the formula updates. If someone challenges the revenue lift, you can show your work.
Assign revenue lift without pretending demos close deals alone
Credit demos for influence, not sole ownership
Demo ROI attribution works best as a partial credit model. The demo influenced the deal. It did not close it alone. A clean rule: give demos credit for pipeline where a demo view or engagement event is logged before a stage advance, and weight that credit by where the demo appeared in the funnel.
A demo viewed before a discovery call is worth less credit than a demo viewed between proposal and close. The model should reflect that, not flatten everything into a single attribution percentage.
Where last-touch attribution goes wrong
Last-touch attribution makes demo ROI look fake in two directions. In a short PLG deal, a demo might genuinely be the last touch before conversion, and last-touch overstates its role by ignoring the content, ads, and word of mouth that got the buyer there. In a longer enterprise deal with multiple stakeholders, the demo might be one of fifteen touches, and assigning it 100% of the credit is indefensible.
The CRM fields that matter are sourced pipeline, influenced pipeline, and closed-won with demo engagement logged. Track all three. Report influenced pipeline as the primary ROI metric, with sourced and closed-won as supporting signals. That framing holds up in a RevOps review because it names what the demo actually did: moved the deal forward.
Track the metrics that actually move demo ROI
Completion rate, time spent, clicks, and drop-off
Four engagement signals belong in the model:
- Completion rate — what percentage of viewers reach the last step. Low completion on a short demo is a friction signal.
- Time spent — average time per session. Unusually short means they bounced; unusually long can mean confusion.
- Click-through on CTAs — the demo's job is to generate a next action. Track whether it does.
- Drop-off by step — where viewers leave tells you which part of the story is not landing.
When multiple stakeholders view the same demo link, track by account, not just by individual. A champion who watched three times and a decision-maker who watched once are different signals.
Demo-to-opportunity conversion and sales-cycle length
Two business outcome metrics connect engagement to ROI:
Demo-to-opportunity conversion — of the accounts that engaged with a demo, what percentage became opportunities? This is the clearest pipeline attribution signal you have.
Sales-cycle length — do deals where a demo was viewed early close faster than deals where it appeared late or not at all? Even a modest compression in cycle length changes the ROI math significantly when you annualize it.
HubSpot's CRM defines opportunity conversion and sales-cycle metrics in a standard way that maps cleanly to this model. Use their field definitions as a baseline so your numbers are comparable across quarters.
Connect demo engagement to CRM opportunity records
The event schema your engineer needs
The minimum event schema for piping demo activity into pipeline records:
`opportunity_id` is the field that makes the CRM integration useful. Without it, you have engagement data floating in analytics with no path to revenue. With it, every demo event is joinable to a deal record.
The sync path from product events to revenue data
The plumbing at a high level: demo events fire into your analytics layer (PostHog, Mixpanel, Segment), where they are enriched with account data. From there, a sync, either a native CRM integration or a warehouse-to-CRM write, pushes the events onto the opportunity record as activity or a custom field. RevOps queries that field to build the attribution view.
Vercel's agent-on-every-desk framework describes a similar measure-then-act loop for AI workflows. The principle transfers: the ROI model is only as good as the data path that feeds it.
Work through a demo ROI example with real numbers
A sample calculation for pipeline, win rate, and cycle impact
This is a hypothetical model. Label it that way in your own spreadsheet.
Assumptions:
- Build cost: $4,000 (40 hours at $100/hr fully loaded)
- Software cost: $4,800/yr ($400/mo)
- Maintenance cost: $2,400/yr (2 hours/month at $100/hr)
- Total annual cost: $11,200
Revenue lift:
- 120 demo-influenced opportunities per year
- Average deal size: $8,000
- Win rate lift from 18% to 22% (4 points) = ~5 additional closed deals
- Revenue lift: 5 × $8,000 = $40,000
- Sales-cycle compression of 8 days on 120 deals = not directly monetized in this model, but reduces carrying cost
ROI = (($40,000 - $11,200) / $11,200) × 100 = 257%
What the break-even point looks like
Break-even is when revenue lift equals total cost. In this example, that happens at $11,200 in attributable revenue, roughly 1.4 additional closed deals at the average deal size. If the demo closes two extra deals in the first quarter, it has paid for itself for the year.
That break-even framing is usually more useful in a budget conversation than a percentage ROI, because it answers the question finance actually asks: when does this start paying?
Separate acquisition ROI from maintenance ROI
The demo that wins leads versus the demo that stays current
Demo maintenance ROI measures something different from acquisition ROI. Acquisition ROI asks whether having a demo generates more pipeline than not having one. Maintenance ROI asks what it costs to keep the demo accurate, and whether that cost is sustainable at your release cadence.
Run both calculations. A demo with strong acquisition ROI and runaway maintenance cost is a net negative once you account for the full model.
Why the next release changes the math
Every UI change is a maintenance event. On screenshot based tools, a nav restructure means re-capturing every affected screen. The effort grows with the number of screens touched. On code owned demos, a UI change means re-prompting the existing demo code. The agent makes the change without a full re-record.
That difference is a real line item in the maintenance column. If your product ships every two weeks and the demo touches ten screens, the maintenance cost on a screenshot tool is not the same as the maintenance cost on a tool where the demo lives as code your agent can update. Build that into `B4` in your spreadsheet, not into a vague "content ops" budget.
Where Inkly comes in
The maintenance problem in this model, the recurring cost that most teams hide in overhead, exists because the demo is a recording locked inside someone else's SaaS. Every product update that touches the UI means going back into the editor, re-capturing screens, and re-QAing the flow. That cost is real. It compounds with release cadence. It belongs in the model.
Inkly is built on a different premise: the demo is code you own, not a recording in a vendor's cloud. When the product ships a UI change, you re-prompt the existing demo code. Your agent (Cursor, Claude, Codex) makes the update without a full re-record. The maintenance line in the ROI model shrinks because the update path is a prompt, not a re-capture pass.
Inkly is free, so the software cost line is different too, with HTML demos and no tier gate or per-seat pricing before you get the capture mode you actually need. If you want to keep your demo current without re-recording it after every release, that is the structural difference worth putting in the model.
FAQ
Q: How do you calculate demo ROI step by step, including both costs and revenue impact?
Start with total annual cost: build cost + software cost + maintenance cost. Then calculate revenue lift, whether that is pipeline influenced, win rate improvement, or sales cycle savings, converted to dollars. Apply the formula: `((Revenue Lift - Total Cost) / Total Cost) × 100`. Keep maintenance as its own variable, not folded into build cost, or the model understates the real expense.
Q: Which metrics actually belong in a demo ROI model for pipeline attribution?
Four matter: demo-to-opportunity conversion rate, win rate on deals with demo engagement logged, sales-cycle length for demo-touched deals versus the baseline, and completion rate as a proxy for engagement quality. Everything else, like raw views, session count, or time on page, is diagnostic. Use it to debug a weak stage, not to report ROI.
Q: How do you connect demo engagement data to CRM opportunity records?
Fire demo events (user, account, demo id, step, timestamp, opportunity id) into your analytics layer. Enrich with account data, then sync to CRM opportunity records via a native integration or a warehouse write. The `opportunity_id` field is what makes the join possible. Without it, engagement data and pipeline data stay in separate systems and attribution is guesswork.
Q: How do you avoid over-crediting demos with last-touch attribution?
Use a partial credit model: give demos credit for pipeline where a demo engagement event is logged before a stage advance, and weight the credit by funnel position. Report influenced pipeline as the primary metric, with sourced and closed-won as supporting signals. Last-touch works in short PLG cycles where the demo genuinely is the deciding touch. It overstates ROI in enterprise deals with multiple stakeholders and a long buying committee.
Q: How do you measure ROI differently for marketing demos, sales demos, and post-sale demos?
Marketing demos are demand creation. Measure them on demo-to-opportunity conversion and pipeline sourced. Sales demos are deal support. Measure them on win rate and sales-cycle compression for deals where the demo appeared. Post-sale demos, like onboarding or expansion, are retention and expansion tools. Measure them on activation rate, time-to-value, and expansion ARR in accounts where the demo was used. Each has a different revenue lift calculation and a different maintenance cost profile.
Conclusion
Go back to the two tabs you opened at the start: the demo and the CRM. The model is not there to prove demos are magical. It is there to show what they cost, all of it, including the maintenance you have been hiding in overhead, what they move in pipeline, and what breaks the math when the product ships next week. Build the first version of the spreadsheet this week. Put maintenance in its own cell. Run the break-even calculation before you decide whether to re-record or re-prompt.
Ship your next demo before the meeting starts
Interactive demos built from your real product and kept current as you ship, done for you.




