PROFIT CALCULATOR

Help creators set profitable prices and understand their earnings per sale.

PREVIEW

PRICING & PROFIT

Set your retail price and see your profit breakdown

€ 29,99
€ 20,00€ 100,00
Base Cost€ 15,00
Platform Fee (15% or $2 min)€ 4,50
Your Profit€ 10,49
35.0% Margin
Strong margin - Excellent pricing
Industry Comparison
Etsy
20-30%
Redbubble
15-25%
You
35.0%

CODE

profit-calculator-example.tsxtsx
1import { ProfitCalculator } from '@/components/fanbace/creator';
2
3export default function ProductPricing() {
4 const [price, setPrice] = useState(2999);
5 const [profit, setProfit] = useState(0);
6
7 return (
8 <ProfitCalculator
9 baseCost={1500} // Base cost in cents
10 defaultPrice={2999}
11 minPrice={2000}
12 maxPrice={5000}
13 onPriceChange={(price, profit) => {
14 setPrice(price);
15 setProfit(profit);
16 }}
17 />
18 );
19}

PROPS

PropTypeDefaultDescription
baseCostnumber-Product base cost in cents
defaultPricenumberbaseCost * 2Initial retail price
minPricenumberbaseCost + 500Minimum allowed price
maxPricenumber10000Maximum allowed price
currencystring'USD'Currency code
onPriceChange(price, profit) => void-Callback when price changes

DIFFERENT PRODUCT TYPES

T-Shirt Pricing

PRICING & PROFIT

Set your retail price and see your profit breakdown

€ 29,99
€ 20,00€ 50,00
Base Cost€ 15,00
Platform Fee (15% or $2 min)€ 4,50
Your Profit€ 10,49
35.0% Margin
Strong margin - Excellent pricing
Industry Comparison
Etsy
20-30%
Redbubble
15-25%
You
35.0%

Hoodie Pricing

PRICING & PROFIT

Set your retail price and see your profit breakdown

€ 59,99
€ 40,00€ 100,00
Base Cost€ 28,00
Platform Fee (15% or $2 min)€ 9,00
Your Profit€ 22,99
38.3% Margin
Strong margin - Excellent pricing
Industry Comparison
Etsy
20-30%
Redbubble
15-25%
You
38.3%

Mug Pricing

PRICING & PROFIT

Set your retail price and see your profit breakdown

€ 19,99
€ 15,00€ 35,00
Base Cost€ 8,00
Platform Fee (15% or $2 min)€ 3,00
Your Profit€ 8,99
45.0% Margin
Strong margin - Excellent pricing
Industry Comparison
Etsy
20-30%
Redbubble
15-25%
You
45.0%

Low Margin Example

PRICING & PROFIT

Set your retail price and see your profit breakdown

€ 21,00
€ 16,00€ 50,00
Base Cost€ 15,00
Platform Fee (15% or $2 min)€ 3,15
Your Profit€ 2,85
13.6% Margin
Moderate margin - Good baseline
Industry Comparison
Etsy
20-30%
Redbubble
15-25%
You
13.6%

USAGE EXAMPLES

IN PRODUCT CREATION FLOW

Embed in multi-step product setup

1function ProductCreationWizard() {
2 const [productData, setProductData] = useState({
3 baseProduct: 'base_tshirt',
4 artwork: null,
5 colors: [],
6 price: 2999,
7 profit: 0,
8 });
9
10 return (
11 <WizardStep title="Set Your Price">
12 <ProfitCalculator
13 baseCost={getBaseProduct(productData.baseProduct).baseCost}
14 defaultPrice={productData.price}
15 onPriceChange={(price, profit) => {
16 setProductData(prev => ({
17 ...prev,
18 price,
19 profit,
20 }));
21 }}
22 />
23 <Button onClick={nextStep} disabled={productData.profit < 500}>
24 Continue to Review
25 </Button>
26 </WizardStep>
27 );
28}

WITH VALIDATION

Enforce minimum profit margins

1function PricingWithValidation() {
2 const [error, setError] = useState('');
3 const MIN_PROFIT_MARGIN = 15; // 15% minimum
4
5 const handlePriceChange = (price: number, profit: number) => {
6 const profitData = calculateProfit(price, baseCost);
7
8 if (profitData.profitMargin < MIN_PROFIT_MARGIN) {
9 setError(`Price too low. Minimum ${MIN_PROFIT_MARGIN}% margin required.`);
10 } else {
11 setError('');
12 savePrice(price);
13 }
14 };
15
16 return (
17 <>
18 <ProfitCalculator
19 baseCost={baseCost}
20 onPriceChange={handlePriceChange}
21 />
22 {error && <Alert variant="destructive">{error}</Alert>}
23 </>
24 );
25}

BULK PRICING UPDATE

Update prices for multiple products

1function BulkPriceUpdate({ products }) {
2 const [priceMultiplier, setPriceMultiplier] = useState(2.0);
3
4 return (
5 <div>
6 <Slider
7 value={[priceMultiplier]}
8 onValueChange={([value]) => setPriceMultiplier(value)}
9 min={1.5}
10 max={3.0}
11 step={0.1}
12 />
13
14 {products.map(product => (
15 <ProfitCalculator
16 key={product.id}
17 baseCost={product.baseCost}
18 defaultPrice={product.baseCost * priceMultiplier}
19 onPriceChange={(price) => updateProduct(product.id, price)}
20 />
21 ))}
22 </div>
23 );
24}