How to Price Web3 Services Without Losing Money
A token project offers $3,500 for an analytics dashboard. You estimate $3,400 to deliver it. There is a little room, you think.
Then a payment deduction takes $70. You have $30 left above the costs you counted. One extra review call could consume it.
To price Web3 services, calculate the cost of the promised work first, account for deductions from your fee, then choose how much you need left over. If the buyer's budget cannot support that scope, change the work before changing the number.
The example below follows a small analytics consultancy from its first estimate to a $4,400 quote, a smaller $3,500 alternative, and two stress tests. All figures are illustrative USD amounts, not market rates, recommended margins or real client results. The method exposes assumptions; it cannot guarantee a profitable project.
Download the editable Web3 service pricing worksheet (.xlsx) to follow the calculations or enter your own costs.
Put a boundary around the work
“Analytics dashboard” is too loose to price. A dashboard built from a working indexed dataset is a different job from one that requires repairing the underlying data.
For this example, the consultancy has inspected access and the agreed data source. Its proposed job contains:
- One chain and one existing indexed dataset.
- Two dashboard views: acquisition and retention, with agreed metric definitions.
- A kickoff, one consolidated revision round and a handover call.
- Internal testing and a separately budgeted external query review.
New chains, a custom indexer, historical data repair and ongoing monitoring are outside this quote. If access or data quality has not been checked, the estimate is not ready for a fixed fee.
The internal delivery estimate is:
| Work | Estimated hours |
|---|---|
| Confirm definitions and requirements, including kickoff | 4 |
| Map the agreed source and build shared queries | 10 |
| Build the acquisition view | 8 |
| Build the retention view | 10 |
| Internal testing, one revision round and handover | 8 |
| Total internal time | 40 |
These hours are teaching assumptions. On a real quote, use task estimates from the people doing the work and compare them with completed projects. Count coordination, checking and revisions alongside production.
If you still need to turn the scope into an approvable buyer document, use the one-page service offer guide. Here, the next job is to calculate what that promise costs.
Count the costs, including your time
Start with your internal labour cost per delivery hour. This is a cost to recover, not the hourly rate you advertise.
For employees or an owner, one way to estimate it is to divide the compensation and employment costs you need to recover over a period by the client-delivery hours you realistically expect to sell in that period. That denominator must leave room for sales, administration, leave and unsold time. For a mixed team, calculate by role or use a defensible weighted rate.
In our example, the consultancy uses $60 per internal delivery hour. Owner compensation is already included. Doing the work yourself does not make this line zero.
Next, separate project-only expenses from shared overhead. The external query review costs $360. Data and tools bought specifically for this job cost $240. Neither belongs in the shared-overhead pool as well.
The consultancy also has $1,600 of monthly shared overhead, excluding the labour, external review and project tools already counted. It expects to sell 160 client-delivery hours across its team that month:
Shared overhead per sold hour = $1,600 / 160 = $10
Overhead allocated to this job = 40 × $10 = $400
Use hours you expect to sell, not every empty slot on the calendar. Business Queensland's pricing guidance highlights fixed overhead and warns against overestimating available service hours. The allocation below applies that principle to this example.
| Cost item | Calculation | Amount |
|---|---|---|
| Internal labour, including owner time | 40 hours × $60 | $2,400 |
| External query review | Separate project expense | $360 |
| Project-only data and tools | Separate project expense | $240 |
| Shared overhead allocation | 40 hours × $10 | $400 |
| Modelled project cost | Sum of these costs | $3,400 |
Check for duplication before adding a margin. If your labour rate already recovers non-delivery payroll, do not add that payroll to overhead again. Equally, an hourly contractor rate does not automatically recover your owner's sales time or the rest of your business expenses.
This cost model should account for everything you intend the service fee to recover. It is not a cash-flow forecast or a statutory profit calculation.
Calculate the floor and the target fee
There are three different numbers to keep separate:
- Cost-recovery fee: covers the costs in your model after the specified deductions.
- Target fee: also leaves a chosen share of revenue as surplus.
- Quoted fee: the price you actually offer for the agreed work.
The first two inform the third. They do not tell you what a buyer will accept.
Suppose a payment arrangement deducts 2% of the tax-exclusive service fee. This is an illustrative input, not a claim about any payment provider or blockchain. Use your actual deduction, or zero when none applies. Put fixed transaction charges in project costs rather than counting them again as a percentage.
Let C be modelled cost, f the deduction as a share of the fee, and m the surplus you want as a share of the fee:
Cost-recovery fee = C / (1 - f)
Target fee = C / (1 - f - m)
Why divide? At a 2% deduction and a 20% target, each dollar of fee leaves 78 cents to cover costs. The model therefore needs enough dollars for that 78% to equal $3,400.
Cost-recovery fee = $3,400 / 0.98 = $3,469.39
Target fee = $3,400 / 0.78 ≈ $4,358.97
Chosen quote = $4,400
The displayed target is rounded to cents; the proposed quote is rounded up. 20% is a chosen teaching input, not a universal target for a service business.
At $4,400, the deduction is $88. The calculation leaves:
Modelled surplus = $4,400 - $88 - $3,400 = $912
Surplus margin = $912 / $4,400 = 20.73%
Here, “surplus” means the amount left after the listed costs and deduction, before income tax. It is not a second owner salary if owner compensation is already in labour. Nor should you label it accounting gross or net profit without matching your accounting definitions.
The recovery fee leaves no allowance for costs missing from the model or for a return above them. It is an internal warning line, not an automatic price to offer.
A 20% markup does not leave a 20% margin
Adding 20% to $3,400 produces a price of $4,080. The $680 difference is 20% of cost, but only 16.67% of price.
After the example's 2% fee deduction, $598.40 remains, or 14.67% of price. That is why “add 20%” and “keep 20%” lead to different quotes.
The target formula works only when the percentages use the same revenue base and f + m is below 100%. If deductions also apply to tax collected, or there are multiple fee bases, adapt the calculation. Keep tax-inclusive invoices and tax-exclusive service revenue distinct.
Work backwards from the buyer's budget
Now the project says it has $3,500.
Keeping the original scope would leave:
$3,500 - (2% × $3,500) - $3,400 = $30
You could knowingly accept a lower return, but first see what you are accepting. A positive $30 estimate does not provide much room for an error.
To preserve the chosen 20% target at that budget, the maximum modelled cost is:
Maximum cost = Budget × (1 - deduction - target margin)
= $3,500 × 0.78
= $2,730
Can you deliver something useful for no more than $2,730 in modelled cost?
In this scenario, the buyer needs acquisition visibility first. The consultancy removes the retention view, reducing internal work from 40 to 30 hours. Shared queries, the external review, internal testing and handover remain. The $600 in external review and project tools does not change.
Reduced-scope cost = (30 × $60) + $360 + $240 + (30 × $10)
= $2,700
Surplus at $3,500 = $3,500 - $70 - $2,700
= $730, or 20.86%
| Offer | Fee | Modelled cost | Deduction | Surplus |
|---|---|---|---|---|
| Both views, original quote | $4,400 | $3,400 | $88 | $912 |
| Both views, discounted | $3,500 | $3,400 | $70 | $30 |
| Acquisition view only | $3,500 | $2,700 | $70 | $730 |
The smaller offer could be described this way:
For $3,500, the scope covers the acquisition view from the agreed dataset, query review, testing, one consolidated revision round and handover. The retention view is excluded and can be quoted separately.
The saved ten hours come from a removed deliverable. They do not come from pretending testing will take less time or hoping the buyer will skip revisions.
If the smaller output would not solve a useful problem, do not sell it simply because the spreadsheet works. Redesign the offer, investigate a cheaper delivery method, or decline the budget. The service-offer ownership guide covers how to keep improving an offer using sales and delivery evidence.
Stress-test the quote before you send it
A quote can be mathematically correct and still rest on a weak estimate. Change the assumptions you are least confident about.
What if delivery takes ten extra hours?
Keep the $4,400 quote, but increase internal work from 40 to 50 hours:
Cost = (50 × $60) + $360 + $240 + (50 × $10) = $4,100
Surplus = $4,400 - $88 - $4,100 = $212
Surplus margin = 4.82%
The extra $100 of allocated overhead is not a new $100 monthly bill. It reflects more capacity consumed by this job under the same allocation method.
This test does not predict an overrun. It shows what one would do to the quote. If extra work seems likely, improve the estimate before signing. If the buyer adds a new deliverable later, price the changed scope rather than silently absorbing it. Correcting your own underestimate is a different conversation.
AI may reduce some production time. Lower the estimate when you have a credible reason, while retaining the checking, integration and review work you still owe the client.
What if you sell fewer hours this month?
At 80 sold hours rather than 160, the same $1,600 overhead requires $20 per sold hour. Allocating $800 to the original 40-hour job gives:
Cost = $2,400 + $360 + $240 + $800 = $3,800
Surplus at $4,400 = $512, or 11.64%
This isolates the effect of shared overhead by holding the $60 labour rate constant. If that rate spreads fixed payroll across sold hours, recalculate it too. For example, $9,600 of unchanged monthly payroll requires $60 per hour at 160 sold hours, but $120 at 80. With that higher labour rate and $20 overhead allocation per sold hour, the job would cost $6,200 and the $4,400 fee would leave a $1,888 shortfall after the deduction.
The worksheet lets you change both inputs. Do not read its overhead-only scenario as a complete low-sales forecast.
Finally, inspect when cash arrives. An adequate fee does not fund a specialist invoice due before the client pays, and the calculation assumes the fee is collected. Agree acceptance and payment arrangements separately; the crypto project RFP guide develops those proposal questions.
Match the pricing model to the uncertainty
Use the calculation to choose a workable engagement, not to force every project into a fixed fee.
| What you know | Suitable starting point | What still needs pricing |
|---|---|---|
| Inputs, deliverables and review boundaries are understood | Fixed fee for the defined scope | Expected delivery cost and a chosen surplus |
| Data access, quality or integration effort is unresolved | A paid diagnostic with its own small scope, or capped hourly discovery | Investigation time and the decision it will produce |
| The buyer needs recurring work or reserved capacity | A bounded monthly retainer | That month's delivery capacity, response commitments and costs |
A retainer does not make unlimited revisions or round-the-clock coverage affordable. Price what you are committing to reserve or deliver.
Cost also does not set the ceiling. A buyer may value speed, specialist judgment or a well-maintained result more than your hours. Conversely, the market may reject a fee your current delivery method requires. The Australian Government's pricing guidance treats costs, customer value and competitor context as inputs to the decision. Use comparable offers to examine your proposition, not to copy a number without their scope and economics.
Use the pricing worksheet on one real quote
The downloadable pricing worksheet has two tabs:
- Quote worksheet: replace the editable input values in cells C15:C23. It calculates cost, recovery fee, target fee and the surplus at your proposed quote.
- Worked examples: inspect the original quote, discount, smaller scope, ten-hour overrun and overhead-only capacity case. A separate comparison shows markup versus margin.
Enter internal hours, labour cost per hour, external specialist cost, project tools and expenses, monthly shared overhead, expected sold hours, the percentage deduction, your target margin and proposed fee. Use one currency and consistent periods. Put other fixed project expenses in the project-expense input; do not omit them because the example calls them tools.
The workbook flags invalid numbers, zero sold capacity and percentage combinations that leave no share of revenue to cover costs. Its outputs can still look reasonable when your estimates are wrong.
Before sending the quote, check three things against the actual scope: every promised task has time allocated; each cost appears once; and the buyer still receives a useful result if you remove work to meet the budget.
Then take the least certain input and change it. If the quote stops working, decide what must change in the scope, estimate or engagement before the client says yes.