# Time and materials vs fixed price: how to record the deal amount in Zoho CRM so the forecast holds

https://salesbond.app/blog/time-and-materials-vs-fixed-price-deal-amount-zoho-crm/
Published: 2026-10-20 · Updated: 2026-10-26

In time and materials vs fixed price, the deal amount follows the contract: record a fixed-price deal at its contract price and a time-and-materials deal at estimated hours times the rate, and add a Contract type field so anyone reading the pipeline can tell which number is a price and which is an estimate. Then forecast the two separately. A fixed-price amount stops moving when the contract is signed. A T&M amount keeps moving after the win, and a forecast that mixes the two is confident about the wrong half.

That is the whole rule. The rest is the Zoho CRM setup that keeps it visible.

## Time and materials vs fixed price: two kinds of forecast risk

A fixed-price contract sets one total for an agreed scope, and the client pays that total however many hours the work takes. A time-and-materials contract bills the hours actually worked at an agreed rate, plus materials or expenses, so the total is only known at the end. A not-to-exceed cap is a ceiling the client adds to a T&M contract: bill by the hour, but never above this figure.

Zoho’s definition of the standard Amount field on a deal is “the amount that can be expected after closing the deal” ( [Zoho CRM: Standard Fields in Deals](https://help.zoho.com/portal/en/kb/crm/sales-force-automation/deal-management/articles/standard-fields-deals)). Expected, after closing. For a fixed-price project that is simple: the number in the signed proposal is the number on the invoice. For T&M there is no such number, only a rate, a guess at hours and sometimes a cap.

So the risk sits in different places. On fixed price the Amount is right and the risk is scope: the hours run over, the invoice does not, and the margin takes the hit. That never shows up in the pipeline. On T&M the rate protects the margin and the risk moves into the Amount itself, which is the main drawback of T&M for a forecast: the number is a guess that can land high or low and keep changing for months after the deal is marked won.

Zoho treats both the same. Expected Revenue is “calculated based on the Amount and deal Stage that you specify” (same page), and the stage probability from Stage-Probability Mapping “will also be used to calculate the Expected Revenue of the deal based on the deal amount” ( [Zoho CRM: Creating Deals, Map Stage-Probability values](https://help.zoho.com/portal/en/kb/crm/sales-force-automation/deal-management/articles/create-deals#Map_Stage-Probability_values)). Stage probability answers one question: will we win this. It says nothing about whether the amount is a price or an estimate.

A sales manager at a small agency should be able to say, in one sentence, how much of this quarter’s forecast is contracted price and how much is estimate. [The weighted pipeline forecast](https://salesbond.app/blog/weighted-pipeline-forecast/) assumes the amounts are the same kind of number; this article is about making that true.

| | Fixed price | Time and materials |
| --- | --- | --- |
| What goes in Amount | The live quote’s total | Estimated hours x rate, for the initial term |
| What moves the real number after the win | Change requests | Hours actually worked |
| Where the cap lives | Not needed | A separate Not-to-exceed field, never Amount |
| Change request after the win | A new deal | A new deal if the scope grows |

## Fixed price: Amount is the price, the risk is scope

For a fixed-price deal the Amount is the quoted total. If your team writes quotes in Zoho CRM, Zoho publishes a ready solution: a workflow rule on the Quotes module fires a Deluge function when a quote is created or edited, and the function adds up the Grand Total of every quote related to the deal and writes it into Amount. It needs the Enterprise edition or above, and Zoho lists the implementation time as 15 minutes ( [Zoho CRM: Update deal with sum of all quotes](https://www.zoho.com/crm/resources/tips/functions-grand-total.html)). It removes the most common fixed-price error, a rep typing the number from an older version of the proposal.

One caveat from reading the code on that page. The function sums every related quote, so if quote v1 and quote v2 both stay on the deal, the Amount becomes v1 plus v2. Make it a rule that a deal carries one live quote. The rule fires on create and edit, so after you delete a superseded quote, edit the live one to get Amount recalculated.

Zoho’s other solution, which sums the products on a deal with a custom button, adds up Unit Price without multiplying by quantity ( [Zoho CRM: Update deal with sum of all products](https://www.zoho.com/crm/resources/tips/deal-amount-based-on-products-and-prices.html)), so don’t use it for priced work measured in days or hours.

Where fixed-price deals actually hurt the forecast is the close date and the stage. Picture a proposal sitting in Negotiation for seven weeks: a correct Amount and a wrong Closing Date. That is stage hygiene, which is why we gate the Proposal stage in [Zoho CRM Blueprint: three stage gates](https://salesbond.app/blog/zoho-crm-blueprint-stage-gates/). Scope risk belongs to delivery. The pipeline’s job is the price and the date.

## Time and materials: Amount is an estimate, so label it

Say the engagement is a retainer-style T&M arrangement: a rate per hour, a rough monthly volume, a cap the client asked for. Three numbers want to go into Amount, and each is wrong in it’s own way.

The cap is a ceiling, not an expectation. Put it in Amount and every T&M deal is forecast at the most the client will ever pay, which is exactly the outcome the client is working to avoid. Zero, or the rate alone, makes the deal disappear. Zoho’s own solutions page says the accuracy of deal dashboards such as Pipeline by Stage “depends entirely on the correctness of the Amount field in each deal” ( [Zoho CRM: Update deal with sum of all products](https://www.zoho.com/crm/resources/tips/deal-amount-based-on-products-and-prices.html)). That leaves the estimate: the hours you would honestly tell the client a typical first period takes, multiplied by the rate. For a retainer, months times monthly volume times rate, for the initial term only.

To make the Amount checkable, add two custom fields: Estimated hours as a Number field and Rate as a Currency field. Creating fields needs the Customize Zoho CRM permission, and Zoho warns that “once the field is created, you cannot change the ‘data type’ of the field”: an Integer field cannot later become a Currency field ( [Zoho CRM: Creating Custom Fields](https://help.zoho.com/portal/en/kb/crm/customize-crm-account/customizing-fields/articles/use-custom-fields)).

Then label the deal. Not in the deal name, not in a note. A field.

## A Contract type field and a rule for the Amount

![Decision schematic: fixed price and time and materials each set Amount differently, both freeze at win; new scope means a new deal.](https://salesbond.app/wp-content/uploads/2026/10/time-and-materials-vs-fixed-price-deal-amount-zoho-crm-2.png)

The setup is one field, two supporting fields and a sentence everyone can repeat.

The field is a pick list on the Deals layout called Contract type, with two values, Fixed price and Time and materials; Pick List Values are set when you create it (same Custom Fields page). Don’t reuse the standard Type field. It holds New Business and Existing Business ( [Zoho CRM: Standard Fields in Deals](https://help.zoho.com/portal/en/kb/crm/sales-force-automation/deal-management/articles/standard-fields-deals)), reports already lean on it, and a rep facing four unrelated options will pick the first one. Next to it go Estimated hours, Rate and a Currency field called Not-to-exceed, all in one section under Amount, so the arithmetic is in front of whoever types the Amount.

The rule fits in one line: fixed price means Amount equals the live quote’s Grand Total, T&M means Amount equals Estimated hours times Rate, and the cap goes in Not-to-exceed, never in Amount.

Ask for Contract type where a wrong Amount starts to cost you, which is the move into Proposal. With a Blueprint, add it to the During tab of that transition and mark it Mandatory ( [Zoho CRM: Designing a Blueprint](https://help.zoho.com/portal/en/kb/crm-v2-1/process-management/blueprint/articles/crm-v2-design-a-blueprint)). Without one, mark it as required on the layout and accept that you will be nagging about it for two weeks.

Then build one report before you announce any of this: deals grouped by Contract type and Stage, Amount summed, with Estimated hours, Rate and Not-to-exceed as columns. Zoho lets you group report rows by a field, and its own examples group by pick lists such as Industry and Lead Source ( [Zoho CRM: Understanding and building reports](https://help.zoho.com/portal/en/kb/crm/reports/articles/create-reports)); the rest of the mechanics are in [Zoho CRM reports for a sales manager](https://salesbond.app/blog/zoho-crm-reports-sales-manager/). The other forecast fields are in [a sales forecast template built from CRM fields](https://salesbond.app/blog/sales-forecast-template-crm-fields/).

One position we hold: freeze the Amount at the win, for both contract types. Most advice says the opposite: keep updating a won T&M deal to match hours billed. We think that breaks the forecast. Once the Amount follows actuals, the March forecast can’t be checked against June, because the number you forecast has been overwritten by the number you billed. Actual billing already lives in invoices. The deal keeps the estimate you sold on, and if the engagement grows, that is a new deal.

Say it at the next planning meeting like this: “From Monday, every T&M deal shows hours times rate as its Amount, with the cap in its own field, and I will read that list every Monday.”

## Not-to-exceed caps and change requests

A cap changes what the client can pay. It does not change what you expect them to pay, so it does not change the Amount. The Not-to-exceed field earns its place by giving you one sanity check: an Estimated hours times Rate above the Not-to-exceed is an estimate nobody believes, and the rep should fix the hours, not the cap. If a T&M engagement runs past its cap, that is a conversation for delivery and the the account owner, not a reason to touch a won deal.

Change requests on fixed-price work split the same way. Before the win a change request is the proposal changing, so the quote changes and the Amount follows. After the win, our rule is a new deal: a small one, Contract type Fixed price, its own Closing Date, its own stage. Editing the Amount of a deal won last quarter rewrites a forecast you already reported, and in a year nobody will know what the original number was. We made the same argument for phased work in [one deal per phase of a rollout](https://salesbond.app/blog/phased-rollout-deal-pipedrive/); that piece is written for Pipedrive, and the reasoning does not depend on the CRM.

Some managers resist the extra deals because the pipeline count goes up. It does. The count was understating your work anyway. The same care applies to [Zoho CRM sales velocity](https://salesbond.app/blog/sales-velocity-zoho-crm/), where average won-deal size is one of the four inputs.

## The Monday T&M list

Before the pipeline review, open the report filtered to Contract type equals Time and materials and open stages only. Open means deal category Open in Stage-Probability Mapping ( [Zoho CRM: Creating Deals, Map Stage-Probability values](https://help.zoho.com/portal/en/kb/crm/sales-force-automation/deal-management/articles/create-deals#Map_Stage-Probability_values)).

Read down the list with one question first: does Amount equal Estimated hours times Rate? Where it doesn’t, someone typed the cap, a round number the client mentioned on a call, or last year’s estimate. An Amount above Not-to-exceed means the estimate is wrong or the cap is, and the rep knows which. A T&M deal in Proposal or later with Estimated hours blank is the worst of the three. It is forecast on a number nobody wrote down.

The last pass is the one you take to the owner. Group the same report by Contract type without the T&M filter and read the two subtotals aloud: this much of the open pipeline is contracted price, this much is estimate. An open T&M estimate behaves more like a best case than a commit (the difference is in [commit vs best case](https://salesbond.app/blog/commit-vs-best-case-forecast/)). A pipeline that is mostly T&M is not a weaker pipeline. It needs a wider margin in the forecast, and the owner can only plan for that if the split is on the page.

We build SalesBond, a sales management layer on top of the CRM a team already uses; we started with Pipedrive. Its Deal Health finds and explains problems in deals, so a list like this does not have to be built by hand. If you want every deal checked rather than every deal read, [check your CRM with SalesBond](https://salesbond.app/).

The fields take an afternoon. The rule takes one planning meeting and two weeks of reminders. After that, reps start writing better estimates, because for the first time somebody is reading them.
