Direct answer: ROAS is revenue from ads divided by ad spend. A ROAS of 4 means each Rp 1,000 of ad spend returns Rp 4,000 of gross revenue. This formula and definition follow the Konektor ROAS glossary.
Main condition: the ROAS number helps you only after you calculate your break-even ROAS. Break-even ROAS comes from your gross margin, not from an industry average.
Limit: ROAS uses gross revenue and counts media cost only. ROAS does not measure profit. ROAS also follows the quality of the conversion data that reaches the ad platform.
The ROAS formula and how to read it
The ROAS formula uses 2 numbers. Write it like this:
ROAS = revenue from ads ÷ ad spend
Use the same period for both numbers. September ad spend must meet September revenue.
Read the result as a multiple. A ROAS of 1 returns the media cost and no more. A ROAS below 1 means the media cost is larger than the revenue that the ads produced. A ROAS of 4 equals 400%.
The table below is a simulation with dummy data. It shows how ROAS catches a change earlier than the revenue number alone.
| Month | Ad spend | Revenue from ads | ROAS |
|---|---|---|---|
| July | Rp 10,000,000 | Rp 32,000,000 | 3.2 |
| August | Rp 15,000,000 | Rp 39,000,000 | 2.6 |
| September | Rp 15,000,000 | Rp 66,000,000 | 4.4 |
August revenue is higher than July revenue. August ROAS is lower, because spend increased 50% and revenue increased 22%. An owner who reads revenue alone misses this drop.

Break-even ROAS sets your target
Break-even ROAS is the point where ad revenue covers the cost of goods and the media cost. Calculate it with this formula:
Break-even ROAS = 1 ÷ gross margin
A gross margin of 35% gives a break-even ROAS of 2.86. Below that point, each additional rupiah of ad spend reduces your contribution.
| Gross margin | Break-even ROAS | What the number means |
|---|---|---|
| 25% | 4.00 | A ROAS of 3 still loses money at contribution level |
| 35% | 2.86 | A ROAS of 3 starts to give a small contribution |
| 50% | 2.00 | A ROAS of 3 leaves room to add volume |
| 70% | 1.43 | A ROAS of 2 gives a clear contribution |
The numbers in the table come from the formula above, not from an industry benchmark. Your gross margin decides which row applies to your business.
Break-even ROAS does not yet include salaries, rent, and other fixed costs. Set a ROAS target above break-even if you want the ads to pay those fixed costs too. We describe margin-based testing in Meta Ads growth with margin-based testing.
What is a good ROAS?
No single number applies to every business. A good ROAS is a ROAS above your break-even ROAS, at the order volume that you want.
A business with a 25% margin needs a ROAS above 4 to cover the cost of goods and the media cost. A business with a 70% margin gives a contribution at a ROAS of 1.5. The 2 businesses use different targets, although they buy ads on the same platform.
Set 2 limits at the same time. The lower limit is your break-even ROAS. The upper limit is the point where a higher ROAS forces you to cut audience reach. Run the campaign between those 2 limits, then increase the budget in steps.
ROAS, ROI, and MER answer 3 different questions
Teams often use these 3 terms for the same thing. Each term answers a different question, so a mixed vocabulary keeps a budget meeting without a decision.
| Metric | Formula | Question it answers | Limit |
|---|---|---|---|
| ROAS | Ad revenue ÷ ad spend | How efficient is 1 campaign or 1 channel? | Uses gross revenue and media cost only |
| ROI | (Profit − all costs) ÷ all costs | Does this activity produce profit? | Needs cost of goods, shipping, and salary data |
| MER | Total revenue ÷ total ad spend | Does total ad spend move total revenue? | Does not point to the campaign that caused it |
A ROAS of 4 can still mean a negative ROI when the product margin is thin. Calculate ROI after you subtract the cost of goods, shipping, payment fees, and operating costs.
MER uses total revenue, including orders from repeat customers and organic channels. MER helps when per-campaign attribution is unstable, for example in a business that closes sales in chat.
Choose 1 primary metric for 1 decision. Use ROAS to select campaigns, MER to judge total spend for the current month, and ROI to judge whether the activity is worth running.
4 mistakes that make ROAS misleading
These mistakes appear again and again in the account audits that we run.
- Using ROAS as a profit measure. ROAS uses gross revenue. Profit appears after you subtract the cost of goods and operating costs.
- Comparing ROAS between businesses. A fashion store and a dental clinic have different margins, so their healthy limits differ.
- Chasing the highest ROAS. The highest number usually comes from the smallest audience, and then volume growth stops.
- Calculating ROAS from leaking data. Conversions that never reach the platform make the number look lower than reality.
This list follows the notes in the Konektor ROAS glossary. Check all 4 before you bring ROAS into a budget meeting.
Why platform ROAS differs from your internal report
An ad platform counts the conversions that it can claim inside its own attribution window. The attribution model decides which interaction receives the conversion value. Google explains these models in About attribution models.
Your internal report counts the orders that customers paid. The 2 numbers use different definitions, so a gap is normal. The problem starts when you use 2 different numbers for the same decision.
Select 1 number as the basis for budget decisions. Use the second number as a comparison, and record the gap each month.
Conversion values also drive automated bidding. Google Ads uses the conversion values that you send to chase a target in Target ROAS bidding. Wrong values make the bidding chase a wrong target.
We describe cross-channel reconciliation in Meta Ads omnichannel attribution and reconciliation.
Leaking conversion data lowers the ROAS that you see

A sale that happens on WhatsApp, on the phone, or in a physical store stays invisible to the ad platform. The platform sees only the events that somebody sends back. Meta provides a server path for these events through the Conversions API.
Konektor captures the ad click identity and then sends the later conversion back, so the number that you read stays closer to the real sales. The Konektor ROAS glossary explains this link between ROAS and conversion tracking.
Leaking data causes 2 losses at once. First, the ROAS that you see is lower than reality. Second, the ad algorithm learns from a weaker signal and then looks for the wrong audience.
The symptom is easy to recognize. Clicks are high, the platform report is quiet, but the sales team is busy. We describe this pattern in high clicks, low sales.
Worked example: decide to raise or lower the budget
The example below is a simulation with dummy data. These numbers are not client results.
Starting condition. An online store sells 1 product with a 35% gross margin. Its break-even ROAS is 2.86.
Input. Ad spend for the current month is Rp 20,000,000. The platform records Rp 52,000,000 of revenue. The internal report records Rp 61,000,000 of paid orders.
Steps. Calculate platform ROAS: 52,000,000 ÷ 20,000,000 = 2.6. Calculate internal ROAS: 61,000,000 ÷ 20,000,000 = 3.05. Compare both with the break-even ROAS of 2.86.
Finding. Platform ROAS is below break-even. Internal ROAS is above break-even. The gap of Rp 9,000,000 comes from WhatsApp orders without an event that returns to the platform.
Decision. Repair the event delivery first. Increase the budget by 20% after the WhatsApp order event runs for 7 full days.
Observable output. The conversion count on the platform increases. The gap between platform ROAS and internal ROAS becomes smaller. The next budget decision uses 1 shared number.
ROAS audit checklist before a budget change
Run these 7 checks before you raise or lower a budget.
- Calculate the gross margin of the main product. Owner: finance. Evidence: cost reports for the last 3 months.
- Calculate break-even ROAS with 1 ÷ gross margin. Owner: finance. Evidence: 1 calculation sheet.
- Align the ad spend period with the revenue period. Owner: marketing. Evidence: a screenshot of the date range.
- Record the active attribution window and attribution model. Owner: marketing. Evidence: the ad account settings.
- Compare platform revenue with paid orders. Owner: marketing and finance. Evidence: 1 monthly gap table.
- Check the order events from WhatsApp, phone, and the physical store. Owner: operations. Evidence: a 7-day event log.
- Select 1 ROAS number as the decision basis. Owner: business owner. Evidence: a written decision note.
Stop and repair the data first when checks 5 and 6 show a gap above 10%. A budget decision on leaking data repeats the same error.
Limits of ROAS and your next step
ROAS measures the gross result of ads. ROAS does not measure profit, does not measure customer lifetime value, and does not explain the cause of a sales increase.
The highest ROAS usually comes from the smallest audience, for example returning customers. If you chase the highest ROAS, order volume stops growing. Read ROAS together with order volume and profit contribution.
We do not guarantee a specific ROAS. We repair the data path so that the number you use stays close to the real sales.
Next step: order Attribution Bridge when the gap between your platform ROAS and internal ROAS is above 10%. The service connects events, leads, and reports in 1 data path.
Sources
- Konektor, ROAS glossary, updated 10 September 2026. Definition, formula, and the link between ROAS and conversion tracking.
- Google Ads Help, About attribution models. How an attribution model assigns conversion value.
- Google Ads Help, About Target ROAS bidding. How automated bidding uses conversion values.
- Meta, Conversions API. The server path that sends conversion events.




