Milestone Escrow vs Direct Invoicing: How Software Agencies Manage Cashflow and Platform Fees

How marketplace escrow and direct invoicing compare on fees, payment timing and non-payment risk for software agencies and freelance engineers, with worked fee calculations from Upwork's and Fiverr's published pricing.

By , Founder & Lead Architect at Clivora & CODCrafters · Published 26 September 2026 · 8 min read

A software agency has two broad ways to get paid. It can work through a marketplace that holds client funds against milestones and releases them on approval, or it can invoice the client directly and collect payment itself. Each has a cost, and the costs land in different places: escrow costs a percentage of every dollar, while direct invoicing costs time, paperwork and some exposure to non-payment.

This guide compares the two on the numbers that matter to a small agency or independent engineer: what each costs, when the money arrives, and what happens when a client does not pay.

How marketplace escrow works

On a fixed-price marketplace contract, the client deposits the value of a milestone before work on it begins. The platform holds the money. When the freelancer submits the work, the client reviews and approves it, and the platform releases the funds, minus its fee. If the client stays silent, most platforms release the funds automatically after a review period. If the client disputes the work, the platform runs a dispute process.

The value to the freelancer is real. The money exists before the work starts, which removes the most common failure in freelance work: finishing a project for a client who then never pays. The value to the client is that they only pay for approved work and have a process to fall back on.

That protection is what the fee pays for.

What the fees actually are

Platform fees change, so the figures below come from each platform's own published pricing at the time of writing. Check the current pages before relying on them.

Upwork charges freelancers a service fee that varies by contract, in a range from 0% to 15%. The percentage is shown before a freelancer sends a proposal or accepts an offer, and it is then fixed for that contract. Clients pay a separate marketplace fee: 5% of payments on the Basic plan (3% for US clients paying by checking account) or 10% on Business Plus (8% by checking account). Clients on Basic also pay a one-time contract initiation fee of between $0.99 and $14.99 per new contract.

Fiverr keeps 20% of each order from the seller, including extras and tips, and charges buyers a separate service fee on top of the order price.

Put those together on a single $10,000 fixed-price project on Upwork:

ComponentPaid byLow caseHigh case
Freelancer service fee (0% to 15%)Freelancer$0$1,500
Client marketplace fee (Basic, 5%)Client$500$500
Contract initiation feeClient$0.99$14.99
Total platform takeBoth$500.99$2,014.99
Freelancer receives$10,000$8,500
Client pays$10,500.99$10,514.99

The same $10,000 of work sold as a Fiverr order gives the seller $8,000 before the buyer's service fee is added on the client side.

The client-side fee is easy to overlook because the freelancer never sees it, but it matters in pricing conversations. A client comparing your direct quote against a marketplace quote is comparing your number against the marketplace number plus 5% to 10%.

What direct invoicing costs

Invoicing a client directly removes the platform percentage but does not make payment free. The costs move to the payment rail and to your own administration.

Bank transfers. Domestic transfers are cheap or free in most countries. International wires carry a sending fee, possible intermediary bank deductions, and a currency conversion margin. The SWIFT charge code decides who pays: OUR means the sender pays all charges, SHA splits them, and BEN means the recipient bears them all. Specify OUR on your invoice and in your contract, or the fees come out of your payment in transit.

Card payments. Card processors charge a percentage plus a fixed amount per transaction, with surcharges for international cards and currency conversion. On a $10,000 invoice, a card payment typically costs several hundred dollars, which is why many agencies accept cards only below a threshold and require bank transfer above it.

Your own time. Chasing a late invoice, reconciling a short payment, and following up on a client who has gone quiet are all costs that escrow handles for you. For an agency with a dozen active clients, this is a few hours a month.

Here is the same $10,000 project invoiced directly:

Payment methodApproximate costFreelancer receives
Domestic bank transfer$0 to a few dollars~$10,000
International wire, sender pays (OUR)Charged to client~$10,000
International wire, shared (SHA)Intermediary deductions, often $15 to $50~$9,950 to $9,985
Card paymentA few percent plus a fixed fee~$9,600 to $9,750

Even the most expensive direct option costs a fraction of the marketplace percentage on a project of this size, and the gap grows with the invoice value because platform fees are proportional while wire fees are mostly flat.

Cashflow timing

Fees are only half of the comparison. When the money arrives matters as much as how much of it arrives.

With escrow, the funds for a milestone are secured before the work starts, but released after approval, and then there is often a further hold before withdrawal. The freelancer knows the money exists, but it can be several weeks from starting a milestone to having cash in a bank account.

With direct invoicing, the timing is whatever the contract says. An agency that takes a deposit before work begins and invoices each milestone on acceptance with Net 14 terms can be paid faster than through a platform, provided the client pays on time. The risk is the proviso.

Managing non-payment risk without escrow

The main argument for escrow is protection against a client who does not pay. Direct invoicing can recover most of that protection through contract terms and process, without the percentage.

Take a deposit. Require 25% to 50% of the first milestone before starting. A client unwilling to pay a deposit is telling you something about how the final invoice will go.

Keep milestones small. Your maximum exposure is one unpaid milestone. On a $40,000 project, four milestones of $10,000 each cap the risk at $10,000 instead of $40,000.

Tie IP to payment. Assign ownership of each deliverable only when it is paid for. Until then the client holds a revocable licence. This is the strongest lever you have, because a client cannot ship or sell code it does not own.

Include a stop-work clause. Allow yourself to pause work when an invoice is more than a set number of days overdue. Do not start the next milestone while the previous one is unpaid.

Record acceptance. Keep a dated record of every delivery, the start of each review window, and each acceptance. If a dispute arises, you want to point to the date the milestone was accepted and the clause that made payment due, not reconstruct events from an email thread.

With those five in place, the non-payment risk of direct invoicing on an established client relationship is close to that of escrow, at a fraction of the cost.

When escrow is still worth paying for

Direct invoicing is not always the better choice.

Escrow earns its fee when the client is new and unverified, when the project is small enough that a platform fee is a minor cost compared with the risk of non-payment, and when the client found you through the marketplace in the first place. In that last case, the platform's terms also restrict moving the relationship off-platform. Upwork's terms require that payments stay on Upwork for 24 months from the start of a relationship, unless the parties pay a conversion fee of 13.5% of estimated earnings over twelve months, with a minimum of $1,000 and a maximum of $50,000.

Direct invoicing wins for repeat clients, larger projects, clients who came to you through referrals or your own marketing, and anyone where the relationship has outlasted the need for a third party to vouch for either side.

A reasonable rule for an agency: use escrow to establish trust with new marketplace clients, and move to direct invoicing for clients you acquired yourself or once a marketplace relationship clears its non-circumvention period.

A worked annual comparison

Consider an agency billing a single long-term client $8,000 a month for a year, which is $96,000 in total.

ScenarioAnnual platform or payment cost
Upwork, freelancer fee at 10%$9,600 from the agency, plus $4,800 client marketplace fee at 5%
Upwork, freelancer fee at 5%$4,800 from the agency, plus $4,800 client marketplace fee at 5%
Direct invoicing, monthly international wire at OURWire fees paid by the client, roughly $300 to $600 a year
Direct invoicing, monthly wire at SHARoughly $180 to $600 a year in deductions

At this scale, the choice between escrow and direct invoicing is a choice between five figures and three figures a year. The protection escrow provides has to be worth that difference, which for a client you have worked with for over a year it rarely is.

Where Clivora fits

Clivora is built for the direct invoicing side of this comparison. It does not hold client funds and does not act as an escrow agent. Payments settle directly between client and freelancer through the payment method they choose, and Clivora charges no percentage on those deals.

What it provides is the record-keeping that makes direct invoicing safe: milestones with defined deliverables, dated submissions and acceptances, invoices generated from accepted milestones, and a client portal where the client can see what was delivered and what is due. That covers the "record acceptance" step above, which is the one most agencies do inconsistently when they manage it with email and spreadsheets.

The trade-off is the one described throughout this guide. You give up the platform's dispute process and pre-funded milestones, and in exchange you keep the percentage. For established client relationships, the deposit, milestone and IP-on-payment terms above recover most of the protection.

More guides