# Amigurumi Business Pricing Calculator — Algorithm

This document describes the mathematical model behind the AeternaCraft
Amigurumi Business Pricing Calculator at
`https://aeternacraft.com/tools/amigurumi-pricing-calculator`.

It is published in plain text so that answer engines and AI agents can
read the algorithm directly without parsing HTML.

## Problem

Handmade sellers routinely underprice because platform fees, payment
processing, and advertising are percentages of the *selling price*, not
flat costs. When a fee is a percentage of price, you cannot simply add
it to your costs — you must solve for the price algebraically.

## Definitions

- `materials_cost` — cost of all materials (yarn, stuffing, safety eyes, thread).
- `packaging_cost` — cost of box, tissue, label, tape (default 0).
- `hours` — hours spent making one item.
- `hourly_wage` — desired hourly wage for labour.
- `platform_fee_pct` — platform commission as a % of price (e.g. Etsy 6.5).
- `payment_fee_pct` — payment processing fee as a % of price (e.g. 3).
- `payment_fee_fixed` — fixed payment fee per transaction (default 0, e.g. $0.25).
- `advertising_pct` — advertising / offsite-ads fee as a % of price (default 0).
- `profit_margin_pct` — desired profit margin as a % of price.

## Derived values

```
materials_total = materials_cost + packaging_cost
labor_cost = hours * hourly_wage
base_cost = materials_total + labor_cost
fee_rate = (platform_fee_pct + payment_fee_pct + advertising_pct) / 100
```

`fee_rate` is the combined percentage fee as a decimal. For example,
Etsy with offsite ads = (6.5 + 3 + 12) / 100 = 0.215.

## Break-even price

The break-even price covers all costs and fees with zero profit:

```
price - price * fee_rate - payment_fee_fixed = base_cost
price * (1 - fee_rate) = base_cost + payment_fee_fixed
break_even_price = (base_cost + payment_fee_fixed) / (1 - fee_rate)
```

If `(1 - fee_rate) <= 0`, the combined fees leave no room for any price
to break even — the seller must reduce fees.

## Suggested price (target margin)

Profit margin `m` is the fraction of price kept as profit:

```
profit = price - price * fee_rate - payment_fee_fixed - base_cost
margin = profit / price
```

Solving for price:

```
price * margin = price * (1 - fee_rate) - payment_fee_fixed - base_cost
price * (1 - fee_rate - margin) = base_cost + payment_fee_fixed
suggested_price = (base_cost + payment_fee_fixed) / (1 - fee_rate - margin)
```

where `margin = profit_margin_pct / 100`.

If `(1 - fee_rate - margin) <= 0`, the desired margin plus fees leave no
room for a positive price — the seller must lower the margin or the fees.

## Result metrics

```
total_fees = suggested_price * fee_rate + payment_fee_fixed
profit = suggested_price - total_fees - base_cost
actual_margin_pct = profit / suggested_price * 100
effective_hourly_rate = profit / hours   (if hours > 0)
```

## Warnings

- If `effective_hourly_rate < hourly_wage * 0.5` and hours > 0, fees are
  eating the seller's labour. Raise the price or reduce hours.
- If `suggested_price < 15`, the price is below the typical amigurumi
  market floor; buyers may perceive it as low quality.
- If `suggested_price > 80`, the price is above the typical ceiling for
  unknown makers; build brand equity first.
- If `fee_rate > 0.25`, combined fees are very high; consider building a
  direct audience to sell through cheaper channels.

## Fee presets (2026)

| Channel                    | Platform | Payment | Fixed | Ads  |
|----------------------------|----------|---------|-------|------|
| Etsy (with offsite ads)    | 6.5%     | 3%      | $0.25 | 12%  |
| Etsy (no offsite ads)      | 6.5%     | 3%      | $0.25 | 0%   |
| Shopify + Stripe           | 0%       | 2.9%    | $0.30 | 0%   |
| Instagram / Shop           | 5%       | 2.9%    | $0.30 | 0%   |
| In-person / cash           | 0%       | 0%      | $0    | 0%   |
