Claude Artifact – Calculator

import React, { useState, useEffect } from 'react'; import { LineChart, Line, BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, ComposedChart, Area } from 'recharts'; const DephiGrowthProjection = () => { // Constants const MONTHLY_FLAT_FEE = 12500; const CLIENT_ONBOARDING_FEE = 2500; const CLIENT_ANNUAL_FEE = 1000; const AFFILIATE_COMMISSION_RATE = 0.4; const DELPHI_MONTHLY_PRICE = 97; const DELPHI_ANNUAL_PRICE = 970; const ANNUAL_CONVERSION_RATE = 0.7; // 70% of customers choose annual plan const [clientsPerWeek, setClientsPerWeek] = useState(1.5); const [clientGrowthRate, setClientGrowthRate] = useState(1.2); // 20% monthly growth const [creatorCampaignImpact, setCreatorCampaignImpact] = useState(1.5); // 50% boost during campaign const [augustBoost, setAugustBoost] = useState(3); // 3x boost from August marketing event const [clientRetentionRate, setClientRetentionRate] = useState(0.95); // 95% retention rate const [projectionMonths, setProjectionMonths] = useState(12); const [campaignStartMonth, setCampaignStartMonth] = useState(1); // 0-indexed, so 1 = May const [campaignDuration, setCampaignDuration] = useState(2); // 2 months // Generate dates for the next 12 months const generateDates = (months) => { const dates = []; const startDate = new Date(); for (let i = 0; i < months; i++) { const date = new Date(startDate); date.setMonth(startDate.getMonth() + i); dates.push({ month: date.toLocaleString('default', { month: 'short' }), year: date.getFullYear(), fullDate: date }); } return dates; }; // Generate projection data const generateProjectionData = () => { const dates = generateDates(projectionMonths); const projectionData = []; let cumulativeClients = 0; let activeClients = 0; let affiliateClients = 0; for (let i = 0; i < dates.length; i++) { const date = dates[i]; const month = date.month; const isAugust = month === 'Aug'; const isInCampaign = i >= campaignStartMonth && i < campaignStartMonth + campaignDuration; // Calculate growth multiplier let growthMultiplier = Math.pow(clientGrowthRate, i); // Apply creator campaign boost if in campaign months if (isInCampaign) { growthMultiplier *= creatorCampaignImpact; } // Apply August marketing event boost if (isAugust) { growthMultiplier *= augustBoost; } // Calculate new clients this month const baseClientsPerMonth = clientsPerWeek * 4; const newClients = Math.round(baseClientsPerMonth * growthMultiplier); // Update active clients with retention activeClients = Math.round(activeClients * clientRetentionRate) + newClients; cumulativeClients += newClients; // Calculate affiliate clients (assuming 2 referrals per client per month) const newAffiliateClients = Math.round(activeClients * 0.5); affiliateClients += newAffiliateClients; // Calculate revenue const flatFeeRevenue = MONTHLY_FLAT_FEE; const onboardingRevenue = newClients * CLIENT_ONBOARDING_FEE; const continuationRevenue = (activeClients - newClients) * (CLIENT_ANNUAL_FEE / 12); // Calculate affiliate revenue const affiliateMonthlyRevenue = newAffiliateClients * DELPHI_MONTHLY_PRICE * AFFILIATE_COMMISSION_RATE * (1 - ANNUAL_CONVERSION_RATE); const affiliateAnnualRevenue = newAffiliateClients * DELPHI_ANNUAL_PRICE * AFFILIATE_COMMISSION_RATE * ANNUAL_CONVERSION_RATE; const totalAffiliateRevenue = affiliateMonthlyRevenue + affiliateAnnualRevenue; // Total revenue const totalRevenue = flatFeeRevenue + onboardingRevenue + continuationRevenue + totalAffiliateRevenue; projectionData.push({ month: `${month} ${date.year}`, flatFeeRevenue, onboardingRevenue, continuationRevenue, affiliateRevenue: totalAffiliateRevenue, totalRevenue, newClients, activeClients, cumulativeClients, affiliateClients: newAffiliateClients, isAugust, isInCampaign }); } return projectionData; }; const projectionData = generateProjectionData(); // Calculate KPIs const totalRevenue = projectionData.reduce((sum, item) => sum + item.totalRevenue, 0); const peakMonthlyRevenue = Math.max(...projectionData.map(item => item.totalRevenue)); const totalClients = projectionData[projectionData.length - 1].cumulativeClients; const totalAffiliateClients = projectionData.reduce((sum, item) => sum + item.affiliateClients, 0); return (

Delphi.AI Business Growth Projection

Projection Settings

setClientsPerWeek(parseFloat(e.target.value))} className="w-full p-2 border rounded" min="0.5" step="0.5" />
setClientGrowthRate(1 + parseFloat(e.target.value) / 100)} className="w-full p-2 border rounded" min="0" max="100" step="5" /> % per month
setCreatorCampaignImpact(1 + parseFloat(e.target.value) / 100)} className="w-full p-2 border rounded" min="0" max="300" step="10" /> % boost
setAugustBoost(parseFloat(e.target.value))} className="w-full p-2 border rounded" min="1" max="10" step="0.5" /> multiplier

Key Performance Indicators

Total Revenue (12 months)

${totalRevenue.toLocaleString('en-US', {maximumFractionDigits: 0})}

Peak Monthly Revenue

${peakMonthlyRevenue.toLocaleString('en-US', {maximumFractionDigits: 0})}

Total Clients Acquired

{totalClients}

Total Affiliate Clients

{totalAffiliateClients}

Monthly Revenue Projection

`$${value.toLocaleString()}`} />

Client Growth Projection

Monthly Breakdown

{projectionData.map((item, index) => ( ))}
Month New Clients Active Clients Flat Fee Onboarding Annual Fees Affiliate Total Revenue
{item.month} {item.newClients} {item.activeClients} ${item.flatFeeRevenue.toLocaleString()} ${item.onboardingRevenue.toLocaleString()} ${item.continuationRevenue.toLocaleString()} ${item.affiliateRevenue.toLocaleString()} ${item.totalRevenue.toLocaleString()}
); }; export default DephiGrowthProjection;