What goes into campaign ROMI
The basic formula is (additional gross profit from the campaign − campaign costs) ÷ campaign costs. Express the result as a percentage. Costs should include more than an agency fee: account research and verification, sending infrastructure, services, sequence preparation, and the sales manager's time where it is used to qualify replies.
| Calculation line | Include | Do not attribute to the campaign |
|---|---|---|
| Revenue | Deals from tagged leads | Sales to existing customers with no connection to the touchpoint |
| Margin | Gross profit from each deal | The full contract value without cost of delivery |
| Costs | Preparation, sending, and reply handling | Standing sales-team costs unrelated to the campaign |
Before launch, agree on what counts as a deal source: a reply to an email, a meeting following a Telegram conversation, or a lead passed into the CRM. CRM integration for outreach leads helps preserve that source data; without it, ownership of a deal becomes subjective and ROMI becomes an estimate.
Why a decision-maker reply does not mean payback
A campaign can generate many polite requests for materials without creating sales. Across our campaigns, 5.93% of contacted companies replied, but a reply is a signal to qualify, not revenue. Need validation, a meeting, a proposal, and payment still sit between that reply and ROMI.
- Record the company, channel, date of first touch, and reply content in the CRM.
- Separate explicit interest from a rejection, a request to return later, and a reply from an irrelevant employee.
- Connect the created deal to the original company and retain the payment date.
- Compare gross profit from closed deals with all costs for that specific campaign wave.
A reply saying “send a proposal” should not immediately enter the ROMI calculation as a lead. Confirm the person's role, task, and timing first. A disciplined process for this is covered in reply handling and lead qualification.
Example: do not credit the campaign with someone else’s deal
A long sales-cycle scenario
An industrial equipment supplier contacts manufacturing companies showing signs of site expansion. A commercial director replies: “Come back after the budget is approved.” Later, the company submits an enquiry through the website and buys. Without a record of the first touch and the reason for the enquiry in the CRM, that sale cannot automatically be attributed to outreach.
A reliable record is different: the company card contains the source, message, decision-maker reply, next-contact date, and linked deal. This lets you assess the contribution of the touchpoint separately from organic demand. With a long sales cycle, assess qualified conversations and progression through stages before trying to calculate an early ROMI.
- The lead source is recorded before handover to sales.
- The reason for rejection or postponement is recorded on the company card.
- The payment date is connected to a specific campaign.
- Revenue is kept separate from gross profit.
When ROMI will not decide whether to launch
ROMI should not be your only criterion when a product is new to the market, the sales cycle exceeds the observation period, or the offer has not yet been validated. In those cases, a zero result may mean deals have not reached payment rather than that the campaign failed. For an initial wave, record the ICP hypothesis, the types of objections, and the share of conversations that address a real business need.
- Do not compare campaigns with different margins without normalising for gross profit.
- Do not count deals as campaign revenue without a confirmed connection to the touchpoint.
- Do not make a decision based on a single large payment.
- Do not promise payback before validating the list, offer, and reply-handling process.
If your task is to test a segment before scaling, begin with B2B lead list building and an outreach and deliverability audit. Calculate full-funnel economics after the lead-to-deal path is clear.