import React, { useState } from 'react'; const AIBusinessROICalculator = () => { // State for managing the active tab const [activeTab, setActiveTab] = useState('sales'); // State for input values const [inputs, setInputs] = useState({ // Department-specific timeframes sales: { taskName: 'Lead qualification & follow-up', currentHours: 10, withAIHours: 4, timesPerWeek: 5 }, marketing: { taskName: 'Content creation & distribution', currentHours: 12, withAIHours: 5, timesPerWeek: 3 }, customerSuccess: { taskName: 'Customer query resolution', currentHours: 8, withAIHours: 3, timesPerWeek: 10 }, cro: { taskName: 'Pipeline analysis & forecasting', currentHours: 14, withAIHours: 5, timesPerWeek: 2 }, enablement: { taskName: 'Training material creation', currentHours: 16, withAIHours: 7, timesPerWeek: 2 }, businessDevelopment: { taskName: 'Prospect research & outreach', currentHours: 9, withAIHours: 3, timesPerWeek: 8 }, // Common financial inputs employeeHourlyCost: 50, employeeCount: 5, aiMonthlyCost: 80, implementationHours: 20, monthsToCalculate: 12, // Quality/outcome impacts qualityMultiplier: 1.2, // Represents a 20% improvement in quality/outcomes }); // Handler for input changes const handleInputChange = (e, section) => { const { name, value } = e.target; if (section) { setInputs({ ...inputs, [section]: { ...inputs[section], [name]: parseFloat(value) || 0 } }); } else { setInputs({ ...inputs, [name]: parseFloat(value) || 0 }); } }; // Calculate results const calculateResults = () => { const department = inputs[activeTab]; // Time calculations const currentWeeklyHours = department.currentHours * department.timesPerWeek; const withAIWeeklyHours = department.withAIHours * department.timesPerWeek; const hoursReducedPerWeek = currentWeeklyHours - withAIWeeklyHours; const hoursReducedPerTeamWeek = hoursReducedPerWeek * inputs.employeeCount; const hoursReducedTotal = hoursReducedPerTeamWeek * 4.33 * inputs.monthsToCalculate; // 4.33 weeks per month avg // Financial impact const hourlyValueSaved = hoursReducedTotal * inputs.employeeHourlyCost; // Quality impact const qualityAdjustedValue = hourlyValueSaved * inputs.qualityMultiplier; // Cost of AI const aiSubscriptionCost = inputs.aiMonthlyCost * inputs.monthsToCalculate; const implementationCost = inputs.implementationHours * inputs.employeeHourlyCost; const totalAICost = aiSubscriptionCost + implementationCost; // ROI calculations const netReturn = qualityAdjustedValue - totalAICost; const roi = (netReturn / totalAICost) * 100; // Payback period (in months) const monthlySavings = (qualityAdjustedValue / inputs.monthsToCalculate); const paybackPeriod = totalAICost / monthlySavings; // Productivity increase const productivityIncrease = ((currentWeeklyHours - withAIWeeklyHours) / currentWeeklyHours) * 100; // Outcomes const additionalCapacity = hoursReducedTotal / inputs.employeeCount; const fteEquivalent = additionalCapacity / (40 * 4.33 * inputs.monthsToCalculate); return { currentWeeklyHours, withAIWeeklyHours, hoursReducedPerWeek, hoursReducedPerTeamWeek, hoursReducedTotal, hourlyValueSaved, qualityAdjustedValue, aiSubscriptionCost, implementationCost, totalAICost, netReturn, roi, paybackPeriod, productivityIncrease, additionalCapacity, fteEquivalent }; }; const results = calculateResults(); // Department tabs const departments = [ { id: 'sales', label: 'Sales', icon: '💼' }, { id: 'marketing', label: 'Marketing', icon: '📣' }, { id: 'customerSuccess', label: 'Customer Success', icon: '🤝' }, { id: 'cro', label: 'CRO Office', icon: '📈' }, { id: 'enablement', label: 'Enablement', icon: '🎓' }, { id: 'businessDevelopment', label: 'Business Dev', icon: '🔍' }, ]; return (

AI Business Value Calculator

Measure the impact of AI tools on your go-to-market operations

{/* Department selection tabs */}
{departments.map((dept) => ( ))}
{/* Input Section */}

{departments.find(d => d.id === activeTab)?.icon} {departments.find(d => d.id === activeTab)?.label} Task Analysis

{ const newInputs = {...inputs}; newInputs[activeTab].taskName = e.target.value; setInputs(newInputs); }} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" />
handleInputChange(e, activeTab)} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" />
handleInputChange(e, activeTab)} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" />
handleInputChange(e, activeTab)} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" />

Team & Cost Parameters

handleInputChange(e)} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" />
handleInputChange(e)} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" />
handleInputChange(e)} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" />
handleInputChange(e)} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" />
handleInputChange(e)} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" />
handleInputChange(e)} className="w-2/3 mr-2" /> {inputs.qualityMultiplier.toFixed(1)}x

Impact on work quality/outcomes (0.8x-2.0x)

{/* Results Section */}

Key Business Outcomes

ROI

Return on Investment

{results.roi.toFixed(0)}%

Over {inputs.monthsToCalculate} months

Net Value

Total savings minus costs

${results.netReturn.toLocaleString(undefined, {maximumFractionDigits: 0})}

Break-even in {results.paybackPeriod.toFixed(1)} months

Time Reclaimed

Additional capacity gained

{results.hoursReducedTotal.toLocaleString(undefined, {maximumFractionDigits: 0})} hours

Equivalent to {results.fteEquivalent.toFixed(1)} FTE

Productivity Gain

Efficiency improvement

{results.productivityIncrease.toFixed(0)}%

{inputs[activeTab].timesPerWeek * inputs.employeeCount} tasks weekly

Detailed Analysis

Time Impact

Current Weekly Hours

{results.currentWeeklyHours} hrs/person

With AI Weekly Hours

{results.withAIWeeklyHours} hrs/person

Hours Saved Per Team Member

{(results.hoursReducedTotal / inputs.employeeCount).toFixed(0)} hrs/year

Team Hours Saved

{results.hoursReducedTotal.toFixed(0)} hrs/year

Financial Impact

Value of Time Saved

${results.hourlyValueSaved.toLocaleString(undefined, {maximumFractionDigits: 0})}

Quality-Adjusted Value

${results.qualityAdjustedValue.toLocaleString(undefined, {maximumFractionDigits: 0})}

Total AI Investment

${results.totalAICost.toLocaleString(undefined, {maximumFractionDigits: 0})}

Monthly Net Benefit

${(results.netReturn / inputs.monthsToCalculate).toLocaleString(undefined, {maximumFractionDigits: 0})}

Strategic Insights

Based on your inputs for {inputs[activeTab].taskName} in {departments.find(d => d.id === activeTab)?.label}:

  • Your team can reallocate {results.hoursReducedPerTeamWeek.toFixed(1)} hours every week to higher-value activities
  • Each team member saves {(results.hoursReducedPerWeek).toFixed(1)} hours weekly, improving work-life balance and reducing burnout
  • The AI investment pays for itself in {results.paybackPeriod.toFixed(1)} months with a {results.roi.toFixed(0)}% ROI
  • With the quality multiplier of {inputs.qualityMultiplier.toFixed(1)}x, you're also improving work outcomes and customer satisfaction
{/* Before & After Comparison */}

Before & After AI Implementation

{/* Before AI Column */}

Before AI

Weekly Hours per Person {results.currentWeeklyHours.toFixed(1)}
Tasks Completed Weekly {inputs[activeTab].timesPerWeek}
Time per Task {inputs[activeTab].currentHours.toFixed(1)} hrs
Yearly Team Hours {(results.currentWeeklyHours * inputs.employeeCount * 52).toFixed(0)}
Yearly Cost ${(results.currentWeeklyHours * inputs.employeeCount * 52 * inputs.employeeHourlyCost).toLocaleString()}
{/* After AI Column */}

After AI

Weekly Hours per Person {results.withAIWeeklyHours.toFixed(1)}
Tasks Completed Weekly {inputs[activeTab].timesPerWeek}
Time per Task {inputs[activeTab].withAIHours.toFixed(1)} hrs
Yearly Team Hours {(results.withAIWeeklyHours * inputs.employeeCount * 52).toFixed(0)}
Yearly Cost ${(results.withAIWeeklyHours * inputs.employeeCount * 52 * inputs.employeeHourlyCost + inputs.aiMonthlyCost * 12).toLocaleString()}
Annual Value Created: ${results.netReturn.toLocaleString(undefined, {maximumFractionDigits: 0})}
); }; export default AIBusinessROICalculator;
Created with