Blog · Finance metrics and formulas
Calculate direct mail ROI from matched orders, product margins, postage and printing costs. Follow a campaign workbook from source exports to a checked result, and separate attributed sales from incremental sales.
Direct mail ROI measures the contribution left from a mailing after its campaign costs, relative to those costs. Start with net order revenue, deduct the costs of supplying those orders, and then subtract printing, postage and the rest of the mailing spend. Revenue alone can make an unprofitable campaign look successful.
The general distinction between profit return and revenue return belongs in marketing ROI vs ROAS. Direct mail adds a practical problem: the mailing list, postal activity, responses and order records must refer to the same campaign and measurement window.
Use a mailed-recipient list, an order export and the campaign cost register. Agree the response window before reviewing the results, and record whether the report is based on send date, expected arrival or a documented postal event.
The recipient file needs campaign identifier, recipient identifier and mailing date. The order file needs campaign identifier, unique order identifier, matched recipient, order date, net revenue, product cost and variable order fulfillment. The cost register needs campaign identifier, invoice reference, cost category and amount.
Keep postage and printing separate. USPS mailing preparation guidance describes route selection, mailpiece preparation and postage as distinct parts of preparing a mailing. Use the invoices for your actual campaign rather than substituting a published postage price for total mailing cost.
Decide which evidence qualifies an order: a campaign code, a dedicated response address, or a recipient match approved by the business. Resolve multiple matches before totaling sales. An order appearing under several response methods is still one order.
Postal tracking is supporting timing evidence. USPS describes its mail tracking information as tracking data for domestic mail; it does not identify a completed sale. Keep a response, an order and a mailed piece as separate records.
A US office-supply distributor mails a campaign to 10,000 recipients. Its matched orders within the agreed window are grouped below. Each order appears once, net revenue already reflects discounts and returns, and all amounts are illustrative USD.
| Response group | Orders | Net revenue (USD) | Product cost (USD) | Order fulfillment (USD) | Contribution (USD) |
|---|---|---|---|---|---|
| Printed campaign code | 100 | 20,000 | 11,000 | 2,000 | 7,000 |
| Dedicated response address | 80 | 16,000 | 8,800 | 1,600 | 5,600 |
| Approved recipient match | 120 | 24,000 | 13,200 | 2,400 | 8,400 |
| Total | 300 | 60,000 | 33,000 | 6,000 | 21,000 |
The matched-order rate is 300 / 10,000 = 3.0%. Call it that: inquiries that did not become orders are absent from this numerator.
On an Orders tab, put campaign in A, order identifier in B, recipient in C, date in D, net revenue in E, product cost in F and order fulfillment in G. Contribution in H2 is:
=E2-F2-G2
Fill down only after checking the order population. The gross margin and contribution margin distinction matters here because shipping and other variable selling costs may sit below gross profit in your ledger.
The campaign invoices are:
| Campaign cost | Amount (USD) |
|---|---|
| Creative work | 1,000 |
| Printing | 2,500 |
| Postage | 5,000 |
| List preparation | 500 |
| Mailing assembly and handling | 1,000 |
| Total | 10,000 |
Mailing assembly prepares the advertising pieces. Order fulfillment supplies the purchased goods. They are different activities in this example and each is charged once.
On a Costs tab, put campaign in A, cost category in B and amount in C. On a summary tab, put the campaign identifier in A2. Matched contribution in B2 and campaign spending in C2 are:
=SUMIFS(Orders!H:H,Orders!A:A,A2)
=SUMIFS(Costs!C:C,Costs!A:A,A2)
With numeric, complete amounts, ROI in D2 is:
=IF(C2=0,NA(),(B2-C2)/C2)
Format D2 as a percentage. A zero spend denominator produces an unavailable result rather than a misleading zero return.
Direct mail ROI = (Matched contribution − Campaign spending) / Campaign spending
Here, (21,000 − 10,000) / 10,000 = 110.0%. Revenue divided by campaign spending is 60,000 / 10,000 = 6.0 times, but that measure ignores product and order costs.
The complete reconciliation is 60,000 − 33,000 − 6,000 − 10,000 = $11,000 of campaign contribution after mailing costs. That must also equal 10,000 × 110.0% = $11,000.
Tie order revenue to the included order identifiers and cost totals to their invoices. Check unmatched recipients and unmatched orders separately rather than treating either as zero-value purchases. Keep the matching date and any later return adjustments with the report.
Average contribution per matched order is 21,000 / 300 = $70. At unchanged order mix and costs, break-even requires 10,000 / 70 orders, rounded up to 143 orders. This is a planning sensitivity, not a guarantee that a smaller mailing preserves the same economics.
Suppose the campaign also has a comparable randomized holdout that receives no mailing. The purchase counts are:
| Group | Eligible recipients | Purchasing recipients | Purchase rate |
|---|---|---|---|
| Mailed | 10,000 | 300 | 3.0% |
| Holdout | 2,000 | 40 | 2.0% |
Assume one order per purchasing recipient and the same $70 contribution per order in both groups. The estimated incremental orders are (3.0% − 2.0%) × 10,000 = 100. Incremental contribution is 100 × 70 = $7,000, and incremental ROI is (7,000 − 10,000) / 10,000 = −30.0%.
These are two different questions. The attributed result describes matched purchases; the holdout estimate asks how much purchasing changed. Group assignment, other promotions and random variation still need review before treating the difference as dependable evidence. Use the same distinction when reviewing email marketing ROI.
Bring your campaign cost register and an order workbook with the matching rules and response window documented. Covirage maps the columns; its tools compute contribution and ROI and check the totals, while 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 export.
See customer profitability for the supporting view of revenue and costs by customer.
Include creative work, list preparation, printing, postage and mailing preparation in campaign spending. Deduct product costs, returns and variable order fulfillment when calculating order contribution. Keep each cost in one place so fulfillment or postage is not charged twice.
Use a campaign code, a dedicated response address or an approved recipient match, with a stated purchase window. Keep the original order identifier and exclude duplicate matches. Postal tracking helps establish mailing timing, but it does not establish that a customer purchased.
A redemption establishes an attribution link under your matching rule. The customer might still have purchased without the mailing. A randomized group that receives no mailing provides a comparison for estimating incremental orders, provided the groups otherwise receive comparable treatment.
They can count when the measurement window and matching policy include them. Show initial-order contribution separately from later purchases, deduct the associated variable costs, and avoid counting the same later order in several campaigns. Keep projected future purchases separate from observed results.