How to Create Interactive ROI Calculators in Webflow
Build an ROI calculator in Webflow: design the inputs, add JavaScript for instant results, visualize the output and capture leads from it.

Is your Webflow site slow, costly or hard to find?
Send me your siteDesign the calculator in Webflow
Create a form with fields such as:
- Investment amount
- Monthly savings or additional revenue
- Time period (months or years)
- Optional implementation cost
- A "Calculate" button
- Result fields for:
- ROI percentage
- Total savings
- Payback period
- Net profit
Assign IDs to each input so JavaScript can reference them.
Investment Amount
ID: investment
Monthly Savings
ID: savings
Calculate Button
ID: calculate
ROI Result
ID: roi-result
ID: investment
Monthly Savings
ID: savings
Calculate Button
ID: calculate
ROI Result
ID: roi-result
Add custom JavaScript
In Page Settings → Before </body> or via an Embed component, add JavaScript like this:
<script>
document.getElementById("calculate").addEventListener("click", function(e) {
e.preventDefault();
const investment = parseFloat(document.getElementById("investment").value) || 0;
const savings = parseFloat(document.getElementById("savings").value) || 0;
const annualSavings = savings * 12;
const roi = ((annualSavings - investment) / investment) * 100;
document.getElementById("roi-result").textContent =
roi.toFixed(1) + "%";
});
</script>
document.getElementById("calculate").addEventListener("click", function(e) {
e.preventDefault();
const investment = parseFloat(document.getElementById("investment").value) || 0;
const savings = parseFloat(document.getElementById("savings").value) || 0;
const annualSavings = savings * 12;
const roi = ((annualSavings - investment) / investment) * 100;
document.getElementById("roi-result").textContent =
roi.toFixed(1) + "%";
});
</script>
Make it update instantly
Instead of requiring a button click, you can recalculate whenever the user types:
document.querySelectorAll("input").forEach(input => {
input.addEventListener("input", calculateROI);
});
input.addEventListener("input", calculateROI);
});
Improve the user experience
Consider adding:
- Currency formatting
- Percentage formatting
- Animated number counting
- Sliders instead of text inputs
- Validation for invalid values
- Error messages
- Mobile-friendly layout
Visualize the results
You can make the calculator more engaging by displaying:
- ROI percentage
- Monthly savings
- Annual savings
- Payback period
- Bar or line charts using libraries like Chart.js
Capture leads
Many B2B companies place a lead form after the results:
- User enters values
- Calculator displays results
- User can enter their email to receive a detailed ROI report
This can integrate with tools like HubSpot, Mailchimp, or other CRM platforms.
Optional enhancements
You can make the calculator more advanced with features like:
- Multiple pricing plans
- Toggle between monthly and yearly calculations
- Different currencies
- Scenario comparisons ("Current" vs. "With our product")
- PDF report generation
- URL parameters to pre-fill inputs
- Saving calculations in local storage
Example ROI formula
A common formula is:
ROI = ((Gain from Investment − Cost of Investment)
÷ Cost of Investment) × 100
÷ Cost of Investment) × 100
For example:
- Investment: $5,000
- Monthly savings: $800
- Annual savings: $9,600
ROI = ((9600 − 5000) ÷ 5000) × 100
= 92%
= 92%
This approach keeps Webflow responsible for the visual design while JavaScript powers the interactive calculations, making it easy to customize and expand as your needs evolve.

.webp)