What running WondraKids actually costs
Twelve months of a kids-accessories Shopify store, with every line item. The full wondrakids costs breakdown — ads, fulfillment, returns, software, founder time.

Every case study about a Shopify store rounds the numbers, omits the boring lines, and claims margins that don't exist. We've run WondraKids — a kids-accessories DTC store in the DACH region, live at https://wondrakids.com — for four years.
Every case study about a Shopify store rounds the numbers, omits the boring lines, and claims margins that don't exist. We've run WondraKids — a kids-accessories DTC store in the DACH region, live at https://wondrakids.com — for four years. In 2025 we did roughly €520,000 in revenue. This is a line-by-line breakdown of what that revenue became. The honest wondrakids costs picture in 2025 is that paid ads ate 34% of revenue, COGS ate 27%, fulfillment and returns together ate 14%, software ate 3%, and founder draw came in at €74,400 — a number that's much smaller than any LinkedIn post about "$500k revenue Shopify stores" implies. This is the full P&L, why each line looks the way it does, and where we tried to cut and failed.
Top-line: what €520,000 looks like
Revenue in 2025 was €519,840, against €402,110 the prior year. Growth was 29%, which is respectable for a category whose TAM in our region is not expanding and which competes directly with Amazon, where our price is usually within 15% of a comparable no-name product.
Average order value ran €38.20, up from €34.70 the prior year. This lift came from a single bundle — a "starter set" priced at €69 — that became our hero product in Q2. Orders were 13,600 (up from 11,580), conversion rate on the site was 2.3% (up from 1.9%), and unique buyers were 9,900.
Revenue was Germany 62%, Austria 17%, Switzerland 14%, Netherlands and rest-of-EU 7%. Switzerland is our highest-margin region and the cheapest one to acquire customers in; Germany is the biggest pool and the most competitive.
Cost of goods: 27% of revenue
€140,800 in COGS across the year, including the landed cost of product and inbound freight. Gross margin on the revenue line: 73%, which reads as healthy but is the ceiling, not the floor.
The COGS number breaks into:
| Category | € | % of revenue |
|---|---|---|
| Finished goods (CIF) | 113,400 | 21.8% |
| Inbound freight | 14,200 | 2.7% |
| Import duties and VAT-on-imports | 9,100 | 1.8% |
| Inspection and rework | 4,100 | 0.8% |
| COGS total | 140,800 | 27.1% |
We source from three manufacturing partners in the EU and one in Turkey. No China-direct sourcing, which costs us roughly 8–12% in landed COGS versus competitors who do, and buys us two weeks shorter lead times and a cleaner trust story. For a kids category, that trade is net positive on the brand side and net negative on the margin side. We've chosen to keep it.
Inventory turns ran 4.2x for the year, up from 3.6x. We over-ordered twice and wrote down €3,400 of product that didn't move before the seasonal window closed; that's the inspection-and-rework line absorbing the tail.
Paid advertising: the largest single line
Meta ads ran €178,100 for the year, or 34.3% of revenue. Google ads added €21,400, or 4.1%. Combined paid-media spend was €199,500, or 38.4% of revenue.
Meta blended ROAS came in at 2.34. That means for every euro spent on Meta, we saw €2.34 of last-click attributed revenue. Across the whole store, blended ROAS including organic was 2.61. Neither of these numbers is great; they are survivable.
The Meta cost curve did something ugly in Q2 and recovered in Q4. CPMs spiked roughly 40% in April after we migrated one of our best-performing landings from a page builder to Shopify Horizon. They recovered — more than recovered — by October, after the landing page had been stable for two quarters and Meta's bid system settled. The lesson is that Meta rewards landing-page stability, and the cost of churning a landing is not felt the day you change it, it's felt over the next sixty days.
Google spend is mostly branded search and a thin layer of shopping. Shopping ROAS is our best paid channel — 4.1 blended — but the volume cap is low because we're in a commoditized product line where Amazon owns the intent.
Fulfillment and shipping: 8.6% of revenue
€44,700 across the year in fulfillment operations, including pick, pack, and outbound shipping. We fulfill from a single 3PL in Bavaria that handles roughly 1,200 orders per month at peak.
The breakdown:
| Category | € | % of revenue |
|---|---|---|
| Pick + pack labor | 13,600 | 2.6% |
| Outbound shipping (DHL) | 24,100 | 4.6% |
| Packaging materials | 3,800 | 0.7% |
| 3PL monthly storage | 3,200 | 0.6% |
| Fulfillment total | 44,700 | 8.6% |
Shipping cost per order averaged €1.77 across the year, which is low because ~40% of our orders qualify for DHL Warenpost. The other 60% ship DHL Paket, which is closer to €3.20 per order. The blended number is good; the split is what matters.
Packaging is cheap because we use un-branded boxes with a printed insert card. A branded box would cost roughly €0.70 more per order — €9,500 per year — and would, in our tested-but-not-adopted analysis, not produce measurable customer-acquisition benefit in the price-sensitive kids category. Some DTC brands swear by branded packaging. We looked and decided we were not one of them.
Returns and refunds: the hidden tax
This is the line we misunderstood for the first three years of the business. In 2025 we finally counted it properly.
| Category | € | % of revenue |
|---|---|---|
| Refunded product (at retail) | 19,400 | 3.7% |
| Return shipping we ate | 4,200 | 0.8% |
| Restocking labor | 2,800 | 0.5% |
| Unsellable returns (written off) | 3,100 | 0.6% |
| Returns total | 29,500 | 5.7% |
That 5.7% was closer to 7.2% in 2024, before we shipped a sizing guide with measurements in both cm and a "best fit for age X" description, and added a short video on the product pages for the top ten SKUs. The sizing guide alone dropped return rate by ~1.5 percentage points, which saved roughly €7,800 on the 2025 run-rate. It took about four weeks of work across copy, photography, and one Shopify section change.
The remaining return rate is mostly demand-side: gift orders that miss, impulse buys that don't fit the kid, and parents who order two sizes to try at home and return one. We can't engineer the second and third away cheaply. The first — gift returns — has a seasonal peak we now staff for.
Software: less than you'd think
Our Shopify plus apps and tooling ran €14,800 for the year. This is low for a store doing our volume; we spent three months in Q1 auditing software and cut roughly €400/month of subscriptions that were either duplicative or bought in an enthusiastic moment two years ago.
The stack:
| Tool | Annual € | Purpose |
|---|---|---|
| Shopify (Advanced plan) | 3,540 | Store platform |
| Klaviyo | 2,880 | Email + SMS |
| Shopify Markets | 1,920 | Multi-region + FX |
| Loop Returns | 1,380 | Returns portal |
| Gorgias | 1,680 | Customer support inbox |
| Rebuy | 1,020 | In-cart upsell |
| Shopify Shipping | 600 | Label rates |
| Analytics (Triple Whale) | 1,440 | Attribution |
| Miscellaneous | 340 | Minor apps |
| Software total | 14,800 | 2.8% |
We removed a page builder app, two "AI product recommendation" apps, and an upsell plugin in Q1. The recommendation apps were charging €180/month combined and moving conversion by less than 0.1 percentage points in the tests we ran; they paid for themselves on a spreadsheet and not on our P&L.
The one app that reliably earns its keep is Klaviyo. Email drove €68,200 of revenue — 13.1% of the total — and the SMS flow we added in May drove another €14,100. At €2,880 a year, this is the highest-leverage line in the software column.
Operational overhead: the boring lines
€11,600 in 2025, covering the mundane stuff. Accountant €3,600, legal €1,100 (incorporation maintenance + one contract review), insurance €820, domain and hosting for the marketing site €260, bank fees €480, Stripe/Klarna fees ~€5,340 (net of interchange). Payment processing is the big one inside this bucket — a 1.0% line across the whole year that doesn't feel like a cost because it's netted against every sale.
Customer support labor sat at €6,400 — one part-time person doing fifteen hours a week. She uses Gorgias templates and handles returns, sizing questions, and the occasional shipping escalation. Her cost per ticket averaged €2.10.
Founder compensation: the line most case studies skip
Owner's draw in 2025 was €74,400. That breaks into €62,000 as a monthly salary equivalent and €12,400 as a distribution after the retained earnings were determined in January 2026.
This is founder-only. The business has no full-time employees. The part-time support person is contracted. Fulfillment is a 3PL. Everything else is either software or the founder's attention.
A business that runs €520k through it and pays the operator €74k is a business where most of the revenue is going to Meta, the 3PL, the factory, and DHL. The owner keeps 14.3% of the top line. That number is in line with DTC industry benchmarks for small direct-to-consumer brands; it is not in line with the "$500k Shopify store owners" stories on LinkedIn.
— our accountant, December 2025Your operating margin is healthier than the average small DTC brand. Your owner's-draw line is bound by the fact that you're refusing to hire, and that's a choice you could revisit.
The full P&L, reconciled
Pulling every line into one table:
| Line | € | % of revenue |
|---|---|---|
| Revenue | 519,840 | 100.0% |
| COGS | (140,800) | (27.1%) |
| Gross profit | 379,040 | 72.9% |
| Paid ads (Meta + Google) | (199,500) | (38.4%) |
| Fulfillment + shipping | (44,700) | (8.6%) |
| Returns + refunds | (29,500) | (5.7%) |
| Software | (14,800) | (2.8%) |
| Operational overhead | (11,600) | (2.2%) |
| Support labor (contracted) | (6,400) | (1.2%) |
| Operating profit before owner draw | 72,540 | 14.0% |
| Owner draw / compensation | (74,400) | (14.3%) |
| Retained earnings | (1,860) | (0.4%) |
The retained earnings line is negative by a small amount because the December draw slightly overshot the actual operating profit. We'll true this up in Q1 2026 and it doesn't change the shape of the business.
What we tried that didn't work
A TikTok Shop experiment. Eight weeks, €8,200 in spend, €3,100 in attributed revenue. Blended ROAS 0.38. We killed it. Our audience — parents aged 30–45 in the DACH region — is not buying children's accessories on TikTok in 2025 at a rate that supports the channel.
A subscription SKU. "Monthly accessory kit" with a €19.90 price point. Retention was poor (43% of subscribers cancelled after month 2), logistics were harder than expected, and the category doesn't lend itself to recurring purchase. We wound it down in Q3 after 140 subscribers.
Wholesale to a regional retailer. One promising conversation, six months of back-and-forth, no deal signed by year end. Margins in wholesale at our size don't support the effort. We'll revisit in 2027 if a retailer comes to us with a concrete offer; we won't chase.
What worked better than expected
The sizing guide and product video. Dropped returns 1.5 percentage points. €7,800 annual saving. Four weeks of work.
Switching from a page builder to Horizon. Covered in detail elsewhere; Meta CPM dropped 38% eventually and the €950/year page-builder bill went to zero. See Replacing GemPages with a custom Shopify Horizon theme.
The bundle SKU. A €69 starter set that became our hero. Revenue contribution: €94,300 for the year. Margin point: 71% gross versus 73% on single items, because we discount the bundle 8% versus the sum of parts.
SMS flow added in May. Launched with a single abandon-cart series and a welcome flow. Attributed revenue €14,100 for seven months. Cost: one morning of setup and €180/month of Klaviyo SMS credits. Highest-ROI software change of the year.
The business we think we're running
The shape we want: a small, durable, founder-led brand with compounding repeat customers and a margin profile that can survive a Meta bad-quarter without an emergency. We're roughly there. The 14% operating margin before founder draw is thin but workable; the repeat-customer rate — 38% of 2025 orders came from buyers who had purchased before — is what makes the business durable.
What we're not: a high-growth DTC brand in a hot category. We won't triple next year. We'll grow another 20–30%, improve the margin by a point or two, and keep the founder's draw moving up proportionally.
For another founder considering a similar path: the numbers here are what "€500k revenue" actually means at this size, in this category, in this region, in 2025. Not what the LinkedIn version says. If those numbers look acceptable, the business is workable. If they don't, the issue is upstream — the category, the margin structure, or the channel mix — not the execution.
Three more from the log.

Meta ads for kids products on Shopify
Twelve months of Meta ads for a kids-accessories Shopify brand. The meta ads kids products playbook — creative, structure, ROAS, and what doesn't work.
Feb 14, 2026 · 9 min
Kling 3 for ad creatives: costs, prompts, results
Three months shipping kling 3 ad creatives for a DTC brand. What worked, what was expensive, what made Meta's algorithm happy — and what it didn't.
Feb 24, 2026 · 8 min
Replacing GemPages with a custom Shopify Horizon theme
We pulled GemPages off a Shopify store and rebuilt every landing page as Horizon sections. Theme customization, Liquid custom sections, and the numbers.
Jan 06, 2026 · 6 min