Guides · For shops and brands

What should a creator campaign report include?

A creator campaign report needs the goal and time frame, planned and actual budget by cost item, how many creators were approached and how many posted, orders, net revenue after returns, CPO (cost per order) and ROAS (revenue per euro spent) next to your own thresholds, the share of new customers and a decision on the next wave. Each figure needs its source and date. Revenue and costs are net of VAT, with provisional and confirmed figures kept apart.

Last updated:

With wyrld Boost you put your budget behind creators who feature your products, starting today, and pay for results.

The one-page report: a template to copy

Senior management reads a report like this for one answer first: carry on, change course or stop. So the decision goes at the top, with the figures behind it underneath. Fill in the goal, the budget and both thresholds before launch, so nobody can move the goalposts once the results are in.

Work out both thresholds once from your margin and use them for every wave: maximum CPO is the contribution margin per order after returns, and break-even ROAS is 1 divided by the contribution margin ratio. The page on cost per sale shows how to get there.

Campaign report for management and finance

Campaign: [name]
As of: [date] | Status: [provisional / confirmed]
Decision: [continue / change / stop], because [one sentence with the figure it rests on]

1. Goal and time frame
Goal set before launch: [metric and target]
Campaign: [date] to [date], sales counted until: [date]
Attributed via: [links / codes / web analytics], attribution model: [name], lookback window: [days]

2. Budget (net of VAT)
Planned: [€] | spent: [€] | difference: [€], reason: [one sentence]
Of which fees: [€] | commissions: [€] | products at cost and shipping: [€] | artists’ social security levy: [€] | other: [€]

3. Result
Creators: approached [number] | agreed [number] | posted [number]
Orders: [number], of which confirmed: [number]
Net revenue before returns: [€]
Net revenue after returns and cancellations: [€], return rate: [%]
CPO = costs ÷ all orders (maximum CPO already allows for returns): [€] | maximum CPO: [€]
ROAS = net revenue after returns ÷ costs: [value] | break-even ROAS: [value]
Result = net revenue after returns × contribution margin ratio − costs: [€]
New customer share: [%], new means: no purchase in the last [number] days

4. What we learned
[three sentences at most, each with the figure it rests on]

5. Next wave
Creators: [keep / add / drop]
Budget: [€] | goal: [metric and target]
Provisional report on: [date] | confirmed report on: [date]

One row per creator: a table for the analysis

The second page of the report is a table with one row per creator or group of creators. Only creators who actually posted get a row. The fact that creators can pick your products through an affiliate programme or network does not produce a single post on its own: many partners in a programme never become active, and the creators you most want for your brand rarely post without a reason. So record in the report how many creators were approached, how many agreed and how many posted. That is often where the real task for the next wave lies: getting many creators to post at the same time, then seeing who sells.

Paste the template below into a spreadsheet; the columns are separated by semicolons. These rules keep the table easy to check:

  • Count the full cost per creator: fee, commission, products at cost, shipping and any levies on top. Leave one out and the CPO looks better than it is.
  • The total row has to match the figures on the first page. If it doesn’t, a cost item is missing or an order has been credited twice, for example through both a link and a discount code.
  • You can add up reach, but don’t present the total as people reached. Someone who follows two creators in the campaign is counted twice. Label the row “sum of reach”.
  • With only a few orders, CPO jumps around. Say a creator costs €300 and brings 2 orders: the CPO is €150. One more order and it drops to €100. Group creators with few orders, for example fewer than 5, into one row.
  • Sort by net revenue after returns or by ROAS, not by reach. That puts the creators who actually sold at the top.

Table per creator (semicolon-separated columns)

Creator or group;Posts;Reach;Clicks;Orders;of which confirmed;Net revenue after returns (€);Costs (€);CPO (€);ROAS;Insights dated
[name];[number];[accounts reached];[number];[number];[number];[amount];[amount];[costs ÷ orders];[revenue ÷ costs];[date]
[name];[number];[accounts reached];[number];[number];[number];[amount];[amount];[costs ÷ orders];[revenue ÷ costs];[date]
Group below [number] orders;[total];[total];[total];[total];[total];[total];[total];[costs ÷ orders];[revenue ÷ costs];
Campaign total;[total];[sum of reach];[total];[total];[total];[total];[total];[costs ÷ orders];[revenue ÷ costs];

Where each number comes from and when it is final

Figure in the reportcomes fromfinal when
Posts, reach, viewscreators’ insights, as screenshot or exporton the agreed cut-off date, for example 7 days after the post
Clicksthe campaign’s links or short linksongoing, note the date you pulled them
Sessions from creator linksweb analytics via UTM parameters (tags in the link)after 24 to 48 hours (Google Analytics)
Sales by channelweb analytics12 days after the sale at the latest (Google Analytics)
Orders and revenueshop systemon the order date, but only provisionally
Returns and cancellationsshop system, inventory systemafter the withdrawal period and the return
New customer shareshop system, order historyonce the time window is fixed
Fees, products, leviesaccountingonce every invoice is in
Commissionsaffiliate programme statementonce the sales are confirmed

Web analytics needs time. According to Google, processing in Google Analytics can take 24 to 48 hours. Google Analytics counts purchases (the purchase event) as a key event by default, and for key events the credit assigned to a channel can still change for up to 12 days. By default it looks back 90 days, and 30 or 60 days can be chosen instead (the lookback window). The attribution model decides which channel gets credit for a sale, and Google says changing it affects past data as well. So put the model, the lookback window and the date you pulled the data into the report, or nobody will be able to recalculate the figure later.

Google Analytics records refunds through a separate event (refund). If that event never arrives, revenue there is revenue before returns. Google’s developer documentation says the purchase value should be the sum of price times quantity, without shipping or tax. Place a test order to check that your shop does this. To split new and returning customers, Google recommends a 540-day window: anyone who has not bought in that time counts as new. If you use a different window, say so in the report.

Provisional or confirmed: when revenue is final

In Germany, private individuals who order online from you usually have a right of withdrawal (§ 312g(1) BGB, the German Civil Code). The period is 14 days (§ 355(2) BGB) and, for goods, only starts once they have arrived (§ 356(2) BGB). After a withdrawal, the buyer has 14 days to send the goods back (§ 357(1) BGB). That is why there are two reports: a provisional one shortly after the campaign ends and a confirmed one once the periods have run out. An example with assumed dates:

  1. The campaign runs from Monday 2 November to Sunday 15 November 2026. The last order comes in on 15 November. The example counts no sales after the campaign ends. If you count sales for another 14 days, every date moves 14 days later.
  2. Say the parcel arrives on Wednesday 18 November. The delivery day is not counted (§ 187(1) BGB), so the 14 days end at the close of Wednesday 2 December (§ 188(1) BGB). Sending the withdrawal in time is enough to meet the deadline (§ 355(1) BGB).
  3. Someone who withdraws on 2 December has to send the goods back within 14 days, so by Wednesday 16 December. Here too, sending in time is enough (§ 355(3) BGB). If a deadline falls on a Saturday, Sunday or a public holiday that applies locally (holidays differ between German states), it moves to the next working day (§ 193 BGB).
  4. Allowing a few days for shipping, the last return is back in the warehouse on, say, Friday 18 December.
  5. The provisional report goes out on, say, Monday 30 November. By then the 12 days in which Google Analytics can still change the credit for the last sales have passed. The confirmed report follows from Monday 21 December, just over five weeks after the last campaign day.
  6. If you voluntarily offer a longer return period, for example 30 days, use that period instead. If the shop has not informed buyers properly about the right of withdrawal, the period does not start (§ 356(3) BGB). The right then expires twelve months and 14 days after the goods arrived, at the latest (§ 356(4) BGB).

Gross or net: one campaign, four ROAS figures

Calculation (assumed)RevenueCostsROAS
gross, before returns, fees only€11,900€3,0003.97
gross, before returns, all costs€11,900€3,5473.35
net, before returns, all costs€10,000€3,5472.82
net, after returns, all costs€8,000€3,5472.26

The figures are made up. The shop reports €11,900 in revenue including 19% VAT (§ 12(1) UStG, the German VAT Act), which is €10,000 net. Assume 20% comes back, leaving €8,000. The costs: €3,000 in net fees, €147 artists’ social security levy on them (assuming you are liable and the creators invoice as sole traders) and €400 for products you sent out without asking for anything in return, counted at what they cost you plus shipping. With an assumed contribution margin ratio of 40%, break-even ROAS is 1 ÷ 0.4 = 2.5. The last row is below that: the campaign cost €347 more than it brought in, even though the first row shows almost 4.

The last row is the one that goes into the report. Costs count net if you can reclaim the VAT on creators’ invoices as input tax (§ 15(1) UStG), otherwise at the full invoice amount.

If you are liable for the Künstlersozialabgabe (artists’ social security levy), fees for advertising photos, videos or texts that creators make themselves are part of the levy base, according to the Künstlersozialkasse (KSK). According to the KSK, payments in kind also count as remuneration. That can include, for example, goods a creator receives as payment for a post. According to the KSK, commissions from affiliate partnerships are not included, and neither are payments to a GmbH, a UG (both German limited companies) or another legal entity. The rate is 4.9% in 2026, and the KSK gives 5.0% for 2027.

How it works on wyrld

With wyrld Boost, you take a campaign budget to many creators at once. Those who join feature your products in their own videos and storefronts. Before launch you set the budget, products, time frame and the KPIs that decide how the pool is paid out to the creators, for example sales, clicks, watch time or reach. wyrld measures clicks through the links, sales show up where the shops report them, and creators upload watch time and reach from their own insights. After the campaign you see which creator delivered which results, which gives you the basis for the per-creator rows in the table above. Each creator decides for themselves if they take part, so how many join is not fixed in advance. Creators label campaign videos as advertising.

You also decide where people buy, for example only in your own shop. Orders and returns then sit in your shop system, and you calculate net revenue after returns as above.

If creators link your products through wyrld, wyrld shows up in your affiliate programme as a single partner, so the programme gives you no row per creator for them. The brand and shop subscription shows you which creators behind that single partner feature your products, who drives clicks and who sells, as far as the shop reports sales, and lets you set up your own terms with the creators who sell. Prices for the subscription and Boost are available on request. We’re happy to talk through what fits your campaigns, from connecting your affiliate programme or linking up directly to the subscription or Boost.

FAQ

Frequently asked questions.

Do free products for influencers count as campaign costs?

Yes. Products you send to creators cost you the goods and the shipping, even if no fee is paid. Count them at cost price plus shipping. Leave them out and CPO and ROAS look better than they are, and a campaign built on gifted products can no longer be compared with a paid one.

Can I add up the reach of all creators in a campaign?

You can add it up, but the total is not the number of people reached. Someone who follows two creators in the campaign and sees both posts is counted twice. Call it “sum of reach” in the report and compare creators on clicks, orders and net revenue instead.

What do I do if a creator doesn’t send their insights?

Enter “not supplied” and don’t estimate, because an estimated reach figure looks just like a measured one in the report. You measure clicks, orders and returns yourself anyway. For the next wave, agree in the briefing which figures you get and by when, for example a screenshot with a visible date seven days after the post.

How do I count sales that come in after the campaign ends?

Set a cut-off before launch, for example 14 days after the last post, the same for every creator. Later sales don’t count. If you pay commission through an affiliate programme, use its cookie duration as the cut-off, or your costs will include commission on sales the report leaves out. Note the cut-off in the report so the next wave is counted the same way.

Why does Google Analytics show different revenue from my shop?

They count different things. The shop counts every order, while Google Analytics assigns them to channels using an attribution model. Google Analytics only learns about refunds once a refund event arrives. And Google says the purchase value should be sent without shipping or tax, while your shop report may show gross amounts. For the report, use net revenue from the shop.

Last updated:

Sources

Related questions.

Sell through creators.