Deposits and Milestone Payments in B2B Contracts: Keep Project Cash Positive

Profitable projects can still drain cash. How to draw a project cash curve, deposits versus advances, Thai VAT and withholding tax on money received before delivery, and what the contract must say.

The figure 30% in large type on a blue grid beside a line drawing of three steps labeled 30%, 70% and 100%, with the first step in black
In this article
  1. Deposits, Advances, Milestones and Retention
  2. Draw the Project Cash Curve Before You Agree on Terms
  3. Principles for Designing the Schedule
  4. Taxes on Money Received Before Delivery
  5. Spell It Out in the Contract
  6. Where to Start

Businesses that deliver projects for corporate customers, such as system installers, made-to-order manufacturers, contractors and software studios, often see a healthy profit on the quote and a negative bank balance while the work is underway. Materials, labor and subcontractors have to be paid long before the customer releases the big payment. The larger the job, the more cash the company must put up first, and some firms end up turning down good work because they cannot afford to start it.

The payment schedule in the contract can fix most of this before the job begins. This article explains how deposits, advance payments, milestone payments and retention differ, how to draw a project cash curve and choose a schedule, which Thai taxes apply when you are paid before delivery, and what the contract needs to say.

Deposits, Advances, Milestones and Retention

The four terms are often used interchangeably, but they do different jobs.

  • Deposit (มัดจำ) Money the customer hands over when the contract is made, as security for performance. Thai law has specific rules for it (see the contract section below).
  • Advance payment Part of the price paid before work starts, used to buy materials or reserve capacity, then deducted from later installments or the final invoice.
  • Milestone payment An amount billed when the work reaches a measurable point, such as approved drawings, completed installation or a passed test.
  • Retention A small percentage the customer holds back from each payment and releases after the warranty period. It is common in construction and installation work.

The first two bring cash in ahead of costs. Milestones bring it in roughly alongside costs. Retention pushes part of the cash months behind the profit.

Draw the Project Cash Curve Before You Agree on Terms

Before proposing a schedule, lay out the project's costs month by month on the dates you will actually pay them. Then place the receipts from the schedule you have in mind, adding the time the customer takes to pay an invoice. The lowest point of cumulative cash is the amount the company must have on hand before it starts.

An illustrative example: a company takes on a 1,000,000 baht installation job (before VAT) that runs four months. Total cost is 700,000 baht, paid as 150,000, 250,000, 200,000 and 100,000 baht in months 1 to 4. The customer pays 30 days after receiving an invoice. Compare two schedules.

  • Schedule A, paid on delivery 100% invoiced at handover at the end of month 4, received in month 5.
  • Schedule B, 30/40/30 A 30% deposit at signing, 40% when installation is complete at the end of month 2 (received in month 3), and 30% on customer acceptance at the end of month 4 (received in month 5).
Cumulative project cash (thousand baht), illustrative example, excluding VAT and withholding tax
End of month Costs paid A cumulative cash B receipts B cumulative cash
1 150 −150 300 150
2 250 −400 0 −100
3 200 −600 400 100
4 100 −700 0 0
5 0 300 300 300

Both schedules earn the same 300,000 baht profit. Schedule A needs 700,000 baht of working capital, while Schedule B needs only 100,000 baht. A company with 300,000 baht of spare cash cannot take the job on Schedule A without borrowing. On Schedule B it can take it comfortably and still run a second job of the same size at the same time.

Line chart of cumulative cash on a 1,000,000 baht project. Paid on delivery, cash falls to a low of −700,000 baht in month 4. With 30/40/30 milestones, the low is −100,000 baht in month 2. Both end at 300,000 baht in month 5.
Same profit, but seven times the cash needed up front. The low point of the curve is the number to use when deciding whether to take the job.
Cash needed before starting = the most negative value of (cumulative receipts − cumulative costs paid) across the months

Build this table on one spreadsheet tab per project, then roll every active project into a 13-week cash flow forecast. You will see when several projects are under water at the same time.

Principles for Designing the Schedule

  • Size the deposit or advance to cover early costs At a minimum, cover the materials and subcontractor bills due before the first milestone pays. Customers accept this more readily when they can see the money buys materials for their own job.
  • Tie each payment to verifiable output, not the calendar For example, "drawings signed off by the customer" or "installation complete per the attached list." A milestone that is hard to measure becomes an argument at billing time.
  • Do not leave the largest payment for last The final payment depends on acceptance, which is where the customer has the most leverage and the easiest excuse to delay.
  • Include the customer's payment cycle A milestone reached today may not turn into cash for another 30 to 60 days, depending on the customer's billing and payment runs.
  • Limit the effect of retention In an illustrative case, a 5% retention on a 1,000,000 baht contract leaves 50,000 baht locked up until the warranty ends, so the cash profit at project close is 250,000 baht. Common alternatives are offering a bank guarantee instead of a cash holdback, or asking for half the retention back on acceptance.
  • Price the schedule A customer who wants to pay everything at the end is asking you to finance the project. The difference belongs in the price, or can be traded, for example a small discount in exchange for a larger deposit.

Taxes on Money Received Before Delivery

Money received ahead of delivery has immediate tax consequences, even though the accounts do not yet treat it as revenue.

Value-added tax

Under Section 78/1 of the Revenue Code, the VAT liability on a service arises when payment is received, unless a tax invoice is issued or the service is used first. For goods, Section 78 sets the tax point at delivery, but if payment is received before delivery, the liability arises on the day the money comes in. A VAT-registered business that receives a deposit or advance forming part of the price must therefore issue a tax invoice and include it in the PP 30 return for the month of receipt, not the month of delivery. If the money is a security deposit that will be refunded in full and never applied to the price, ask your accountant whether it counts as a payment before deciding.

The VAT rate is currently 7%, a reduction from the statutory 10% that has been extended to September 30, 2027. Watch for announcements as the date approaches.

Withholding tax

If the customer is a juristic person and the work is a service or hire of work, the customer must withhold tax on every payment, including the deposit and first installment, under Revenue Department Order Tor.Por. 4/2528. The standard rate is 3% of the pre-VAT amount, and the 1,000 baht threshold applies to the contract value, not to each installment. If the customer pays through the e-Withholding Tax system, the rate drops to 1% for payments made through December 31, 2027.

Continuing the illustrative example, a 30% deposit on a 1,000,000 baht service contract is 300,000 baht. Add 21,000 baht of VAT and subtract 3% withholding of 9,000 baht, and 312,000 baht lands in the bank. The company must remit the 21,000 baht of VAT that month. The 9,000 baht is a tax credit against corporate income tax at filing time, not cash you get back right away. Both belong in the cash curve.

Income tax and accounting

Companies compute profit on an accrual basis, so a deposit for work not yet performed is recorded as unearned revenue (a liability) and recognized as revenue as the work is completed. See recognizing revenue correctly for the details. The cash arrives first and the reported profit follows later, so do not spend the deposit as though it were profit already earned.

Spell It Out in the Contract

Under Sections 377 and 378 of the Thai Civil and Commercial Code, a deposit is something handed over when the contract is entered into. Unless the parties agree otherwise, it is returned or applied as part payment once the obligation is performed, and if the party who gave the deposit neglects to perform, the other party may forfeit it. A court can also reduce a disproportionately high deposit to the actual damage under Section 7 of the Unfair Contract Terms Act B.E. 2540 (1997).

In practice, the contract should answer these questions clearly.

  1. Is the first payment a deposit, or an advance that is deducted from later installments?
  2. Which deliverable triggers each installment, who inspects it, and within how many days? If the customer does not respond in time, is the work deemed accepted?
  3. How many days after invoice does the customer pay, and which documents must be attached?
  4. If the contract ends early, how is money already received refunded or offset, and how is completed work paid for?
  5. What percentage is retained, when is it released, and can a bank guarantee replace it?
  6. If the customer changes the scope, how do the price and schedule change?

If your customer is a large business and your company is an SME under the Trade Competition Commission's definitions, the commission's notification on credit terms, effective November 2, 2026, caps credit at 45 days for general goods and services, counted from complete delivery and submission of complete documents (see negotiating supplier payment terms). Keep proof of the delivery date and document submission date for every installment.

Have a lawyer review high-value or complex contracts before signing.

Where to Start

  1. Pick one project you are about to quote and lay out its costs month by month on the dates you will pay them.
  2. Try two or three schedules including the customer's payment time, VAT and withholding tax, and find the low point of cumulative cash for each.
  3. Set an internal rule for example, do not take a job whose cash requirement exceeds spare cash after three months of fixed costs.
  4. Prepare the schedule you want with the reasons behind it and keep one concession ready, such as a small discount or faster delivery.
  5. Use one contract template for every job so the clauses on installments, acceptance and termination are always the same, and only the numbers change.

This article is general information, not legal, tax or financial advice for any specific business. Laws and tax rates were checked as of October 2026. The company and figures in the example are illustrative.

Sources

About Unigin Ventures

A venture capital firm investing in startups and SMEs in Thailand and the CLMV countries, with support across business strategy, accounting, legal matters and technology.

About us

This article is general information for learning purposes, not investment, legal, accounting or tax advice for your specific situation. Laws and tax rates change; please check with the relevant authority or a qualified adviser before making decisions.

Unigin Ventures

Building something worth backing?

Unigin Ventures invests in and supports startups and SMEs with capital and advice on finance, accounting, legal matters and technology.