Paid advertising has a tidy accounting story. You spend $100, you track $340 back, your ROAS is 3.4, and you decide whether to spend more. Every part of that loop is legible, which is a large part of why marketing budgets drift toward paid even when it is not the better channel.
Organic content offers no such comfort. You spend six hours a week writing and shipping, engagement goes up and down for reasons you cannot identify, and revenue moves for reasons you cannot connect to any specific post. So people do one of two irrational things: keep going indefinitely on faith, or quit at month three, right before the compounding starts.
Both mistakes come from the same source, which is treating organic as unmeasurable. It is not. It is measurable with slightly more effort than paid, and the measurement is worth building because the decision it informs is whether to keep spending the scarcest thing you have.
Step one: price your hours honestly
The reason organic feels free is that the cost does not appear on a credit card statement. It appears as time, which is the most expensive input a small business has.
Pick a rate. If you do client work, use your billable rate. If you do not, use what you would have to pay a competent freelancer to do the same work, or what you would pay to buy the hour back. The exact figure matters less than picking one and sticking to it, because the number only has to be consistent to be useful for comparison.
Now track the hours for two weeks. Include everything: ideation, drafting, editing, making the image, scheduling, and replying to comments. Most people are surprised by the total, and the surprise usually comes from the last two categories rather than the writing.
Six hours a week at $80 an hour is $480 a week, roughly $2,000 a month. That is your organic ad spend. It is now directly comparable to a paid budget, which is the entire point of the exercise.
Step two: track the dollars out
The revenue side requires the same infrastructure as paid: a tagged link per post, a checkout that keeps the tag, and something that joins payments back to posts.
Concretely, that means each post gets its own tracked short link rather than the same raw product URL every time. When the visitor buys, the identifier travels with the payment through a field like Stripe client_reference_id or Checkout Session metadata, and arrives on the webhook attached to the amount.
You can do the join manually for a while by exporting Stripe payments weekly and matching tags in a spreadsheet. It works and it is instructive. It also has a predictable half-life, because a weekly manual chore is a chore you will stop doing by week seven. Automating it is what seenpaid exists for: it publishes with tracked links and reads Stripe on a read-only connection, so attributed revenue per post accumulates without a spreadsheet in the loop.
Step three: do the division, then wait
Organic ROI is attributed revenue divided by (hours × your rate). If you produced $6,000 of attributed revenue on $2,000 of time, your return is 3x, which is directly comparable to a ROAS figure.
One caveat is essential here, and skipping it causes people to make the exact wrong decision. Organic content has a delay that paid does not. An ad spends and converts inside a week. A post can convert someone eight weeks later, and it keeps working long after publication in a way that a paused ad does not.
This means month one will look terrible and month six will look great, using identical effort. Judge organic on a rolling three-month window at minimum. Judging it monthly is how people conclude content does not work and cut it two weeks before it would have started paying.
The comparison that actually matters
Once both channels have real numbers, the useful question is not which has the higher return. It is which one you can scale and which one is compounding.
Paid scales with money and stops the moment you stop paying. Organic scales with time, which you cannot buy more of, but it accumulates: last quarter posts still bring traffic, your audience grows, and the cost per incremental result tends to fall rather than rise.
- If paid returns 4x and organic returns 2x, paid is not automatically the answer. Ask whether paid still returns 4x at triple the spend, because it usually does not.
- If organic returns 2x today and returned 0.5x three months ago, the trend is the finding, not the level.
- If organic returns 0.3x after six honest months with tracking in place, that is a real signal. Change the format, the platform, or the offer, or stop.
The point of measurement is not to win an argument with yourself. It is to notice sooner when something is not working, and to have the nerve to keep going when it is working slowly.
Attribute at the format level, not just the post level
Per-post revenue is noisy. Any single post can get lucky. What is much more stable, and much more actionable, is revenue grouped by format and by platform.
Group your posts into a handful of buckets: long text posts, short quips, carousels, video, link-outs to long-form writing. Sum attributed revenue and production hours for each bucket over a quarter. Divide.
The result is revenue per hour by format, and it is the most decision-changing number in this whole article. Video routinely takes five to ten times longer to produce than text and does not always return five to ten times more. Seeing that written down as a ratio is what finally gets people to stop making the format they hate and are bad at.
What the number will not tell you
Be clear-eyed about the limits so you do not over-trust the output.
Last-click attribution under-credits awareness content. The post that first made someone aware of you gets nothing; the post that closed them gets everything. If you cut all your low-attribution top-of-funnel content, your bottom-of-funnel numbers will decline a few months later and you will not connect the two events.
Attribution also misses the second-order effects entirely: the inbound partnership, the job candidate, the podcast invitation, the customer who found you through someone who read you. These are real returns and they will never show up in a revenue column. The number is a floor on your organic ROI, not a complete accounting.
The practical version
Track your hours for two weeks and pick a rate. Put a tracked link in every post from today forward. Wait ninety days. Then compute revenue divided by hours times rate, grouped by format.
You will end up with a sentence like: text posts return roughly $110 per hour of production, video returns roughly $30. That sentence is worth more than any engagement dashboard, and it is the difference between running content as a channel and running it as a hobby you feel guilty about.