Blog · Finance metrics and formulas · Consumer goods
Calculate customer contribution after refunds, product costs and fulfillment from an order export. Compare acquisition cohorts at the same age, with a worked example and spreadsheet formulas.
Direct to consumer LTV is most useful when it measures the contribution customers generate across repeat purchases, after returns and fulfillment costs. Start with contribution per acquired customer through a fixed age, then compare cohorts at that same age. A 90-day result is observed value through day 90, not a claim about the customer's entire future.
Use the first noncanceled paid order to assign each customer to an acquisition cohort. Keep that original customer list even if an order is later refunded. For this example, repeat-purchase retention means the share of original customers with at least two orders that retain positive sales after refunds within the observation window.
Observed contribution per acquired customer = Contribution from the cohort's orders within the window / Original acquired customers
Order contribution = Sales after discounts - Refunds - Net product cost - Fulfillment - Payment fees - Return handling
This is contribution before acquisition spending and fixed overhead. The broader LTV formula guide explains other definitions; keep this cohort calculation separate from an estimate of future purchases.
Export customer ID, order ID, order date, sales after discounts, refunds and the associated costs. Link refunds to the original order, including refunds recorded after the window closes. The IRS explains that sales returns and allowances reduce gross sales when calculating net sales.
Product cost here is the cost consumed after crediting inventory actually recovered for resale. Fulfillment includes pick-and-pack and outbound shipping. Return handling includes return labels and inspection. Keep each cost in one column so outbound freight is not deducted twice. Exclude buyer sales tax collected for remittance and use one currency throughout.
Consider an illustrative US personal-care brand. January customers all first bought on January 1, 2026; April customers first bought on April 1. Their respective 90-day windows end March 31 and June 29. Both windows are complete, and associated refunds have been reconciled before this comparison.
Put these rows in a worksheet named Orders, with headers in row 1 and columns A through I in the order shown. Sales are after discounts and before refunds. All money columns are USD.
| Customer | Order date | Sales (USD) | Refunds (USD) | Product cost (USD) | Fulfillment (USD) | Fees (USD) | Return handling (USD) | Contribution (USD) |
|---|---|---|---|---|---|---|---|---|
| J1 | 1/1/2026 | 80 | 0 | 28 | 9 | 3 | 0 | 40 |
| J1 | 2/1/2026 | 75 | 0 | 26 | 9 | 3 | 0 | 37 |
| J1 | 3/15/2026 | 85 | 20 | 25 | 10 | 3 | 4 | 23 |
| J2 | 1/1/2026 | 100 | 0 | 35 | 10 | 4 | 0 | 51 |
| J2 | 3/1/2026 | 90 | 0 | 31 | 10 | 3 | 0 | 46 |
| J3 | 1/1/2026 | 60 | 0 | 20 | 8 | 2 | 0 | 30 |
| A1 | 4/1/2026 | 80 | 0 | 28 | 9 | 3 | 0 | 40 |
| A1 | 5/20/2026 | 80 | 0 | 28 | 12 | 3 | 0 | 37 |
| A2 | 4/1/2026 | 100 | 40 | 24 | 10 | 4 | 6 | 16 |
| A3 | 4/1/2026 | 60 | 0 | 20 | 8 | 2 | 0 | 30 |
In Google Sheets, contribution in I2 and net sales in an additional column J are:
=C2-D2-E2-F2-G2-H2
=C2-D2
Fill both down through row 11. Keep negative contribution: a costly return can consume value even when no sales remain.
Create a worksheet named Customers with columns A through E below. First-order dates must come from full customer history, not just the current export. Otherwise an established customer can be mistaken for a new acquisition.
| Customer | First-order date | Retained orders | Contribution (USD) | Repeat flag |
|---|---|---|---|---|
| J1 | 1/1/2026 | 3 | 100 | 1 |
| J2 | 1/1/2026 | 2 | 97 | 1 |
| J3 | 1/1/2026 | 1 | 30 | 0 |
| A1 | 4/1/2026 | 2 | 77 | 1 |
| A2 | 4/1/2026 | 1 | 16 | 0 |
| A3 | 4/1/2026 | 1 | 30 | 0 |
Use these formulas in C2, D2 and E2, respectively, and fill down:
=COUNTIFS(Orders!$A$2:$A$11,A2,Orders!$B$2:$B$11,">="&B2,Orders!$B$2:$B$11,"<"&(B2+90),Orders!$J$2:$J$11,">0")
=SUMIFS(Orders!$I$2:$I$11,Orders!$A$2:$A$11,A2,Orders!$B$2:$B$11,">="&B2,Orders!$B$2:$B$11,"<"&(B2+90))
=--(C2>1)
COUNTIFS counts rows meeting every criterion, while SUMIFS adds the matching amounts. Dates must be actual date values. Expand every range together for a larger export. Covirage is not affiliated with Google Sheets.
For January, calculate contribution per original customer and repeat-purchase retention, respectively:
=SUM(D2:D4)/ROWS(A2:A4)
=SUM(E2:E4)/ROWS(A2:A4)
April uses rows 5 through 7 in the same formulas.
| Cohort | Original customers | Contribution (USD) | Contribution/customer (USD) | Repeat customers | Repeat-purchase retention |
|---|---|---|---|---|---|
| January | 3 | 227 | 75.67 | 2 | 66.7% |
| April | 3 | 123 | 41.00 | 1 | 33.3% |
Round dollar averages to cents and percentages to one decimal place, only after calculating. January contributes $34.67 more per acquired customer over the same window. Its higher repeat-purchase retention gives the team a reason to investigate reorder behavior, product mix and campaign differences; this small illustration cannot establish causation.
January's order rows reconcile as 490 - 20 - 165 - 56 - 18 - 4 = $227. April's reconcile as 320 - 40 - 100 - 39 - 12 - 6 = $123. The six customer contributions sum to $350, matching the ten order contributions.
In a real export, tie each input column to its source report and explain timing differences. The ledger-based LTV guide covers that reconciliation in more detail. Compare acquisition spending separately, on the same customer base, before interpreting an LTV-to-CAC ratio.
Bring an order export with customer IDs, first-order dates, refunds and associated costs. Covirage maps the columns; its tools compute and check the figures, and the external AI model explains the result with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for consumer goods brands for the industry context.
Revenue LTV measures spending, but contribution LTV is more useful for acquisition decisions. Subtract refunds, product costs and the variable costs of serving orders. State the cost boundary clearly so finance and marketing compare the same measure.
Yes. Divide by all originally acquired customers, including buyers who never return and customers whose purchases were later refunded. Dropping them measures the value of survivors and makes an acquisition cohort look more valuable than it was.
Choose a window that covers a useful purchasing cycle for your category, then compare cohorts only after each reaches that age. A short window is an early contribution measure. It cannot establish the value of purchases beyond the observation period.
No. A repeat-purchase measure counts customers who place qualifying later orders within a stated window. A customer can be inactive temporarily without canceling anything. Define which orders qualify and keep that definition consistent across cohorts.