import React, { useState } from 'react'; import { PackageTier, VehicleType } from '../types'; const DetailRealityCheck: React.FC = () => { const [vehicleType, setVehicleType] = useState(VehicleType.CAR_4DR); const [dirtiness, setDirtiness] = useState(5); const [hasHair, setHasHair] = useState(false); const [hasStains, setHasStains] = useState(false); const [hasOdors, setHasOdors] = useState(false); const [year, setYear] = useState(new Date().getFullYear()); const [result, setResult] = useState<{ tier: PackageTier; price: string; reason: string } | null>(null); const calculate = () => { const isNew = (new Date().getFullYear() - year) <= 5; const isCar = vehicleType === VehicleType.CAR_2DR || vehicleType === VehicleType.CAR_4DR; let tier = PackageTier.MODERATE; let price = ""; let reason = ""; // VIP LIGHT CHECK ($250) if (isNew && isCar && !hasHair && !hasStains && !hasOdors && dirtiness <= 4) { tier = PackageTier.VIP_LIGHT; price = "$250"; reason = "Good news, this one behaves nicely, so you qualify for our VIP Light Detail at $250."; } // MINIVAN SPECIAL ($650+) else if (vehicleType === VehicleType.MINIVAN) { tier = PackageTier.MODERATE; price = dirtiness > 7 ? "$750+" : "$650+"; reason = "Minivans are large projects. " + (dirtiness > 7 ? "That level of cleaning" : "Standard care") + " starts around " + price + " to get it right."; } // EXTREME ($550+) else if (dirtiness >= 9 || (hasHair && hasStains && hasOdors)) { tier = PackageTier.EXTREME; price = vehicleType === VehicleType.SUV ? "$600+" : vehicleType === VehicleType.TRUCK ? "$650+" : "$550+"; reason = "That bumps it into our next tier so we can handle the heavy lifting. This requires a total restoration focus."; } // HEAVY (Fails 2+ VIP conditions) else if ([hasHair, hasStains, hasOdors, dirtiness > 5].filter(Boolean).length >= 2) { tier = PackageTier.HEAVY; price = vehicleType === VehicleType.SUV ? "$475-$525" : vehicleType === VehicleType.TRUCK ? "$500-$550" : "$425-$475"; reason = "Failing multiple VIP conditions moves this into our Heavy tier. We’ll need the extra time for pet hair or stains."; } // MODERATE (Fails 1 VIP condition) else { tier = PackageTier.MODERATE; price = vehicleType === VehicleType.SUV ? "$400-$425" : vehicleType === VehicleType.TRUCK ? "$425-$450" : "$350-$375"; reason = "That bumps it into our Moderate tier—our most common service for Knoxville daily drivers."; } setResult({ tier, price, reason }); }; return (

Screening Tool

🧠 The Reality Check

30 seconds. Zero judgment. Tell us what we're working with.

setYear(parseInt(e.target.value))} />
setDirtiness(parseInt(e.target.value))} />
1: Just Tidy Level: {dirtiness} 10: "No comment"
{[ { label: 'Hair', state: hasHair, set: setHasHair, icon: '🐶' }, { label: 'Stains', state: hasStains, set: setHasStains, icon: '🧃' }, { label: 'Odors', state: hasOdors, set: setHasOdors, icon: '👃' }, ].map(item => ( ))}
{result ? (

Professional Suggestion

{result.tier}

{result.price}

"{result.reason}"

) : (

Complete the quick screening
to reveal your tier

)}
); }; export default DetailRealityCheck;
top of page

Some of the worst cars we've detailed.

Detailing presents a lot of challengs, and as a Knoxville Auto Detailing company, Your Place Auto Detail never knows what to expect when we arrive at our clients homes. Over the years we have seen some pretty bad vehicles but this mon't vehicle is in a class by its own.

bottom of page