Skip to main content

Sales Calculations

This page is the precise reference for how monetary amounts are computed on every sales document — Quotations, Sales Orders, and Sales Invoices. The same formula and rounding rules apply to all three, so a quotation, the sales order it converts to, and the invoice generated from it all total identically when the same inputs are used.


The formula

Final Amount = (Grand Total − Discount) + GST − TDS

Building blocks:

TermDefinition
Grand TotalSum of every unit line total, where each line total is rate × area.
DiscountReduction applied per unit or at the order level. Per unit it can never exceed that unit's total rate, and it can never be negative.
Taxable AmountGrand Total − Discount. This is the base for both GST and TDS.
GSTTaxable Amount × GST rate. Added to the total.
TDSTaxable Amount × TDS rate. Subtracted from the total.
Final AmountThe net payable: Taxable Amount + GST − TDS.

:::tip Direction of the tax adjustments GST is added because it is collected from the buyer on top of the price. TDS is subtracted because it is tax withheld at source. Mixing these up is the single most common source of confusion — keep "GST up, TDS down" in mind. :::

All money values are rounded to 2 decimal places. GST and TDS are each rounded before they are combined into the Final Amount.


Calculation flow


Worked example — single unit

A plot of 2,400 sq ft at ₹1,500 / sq ft, with a ₹50,000 discount, 5% GST, and 1% TDS.

StepCalculationAmount
Line total2,400 × 1,500₹36,00,000.00
Grand Total(one unit)₹36,00,000.00
Discountflat− ₹50,000.00
Taxable Amount36,00,000 − 50,000₹35,50,000.00
GST35,50,000 × 5%+ ₹1,77,500.00
TDS35,50,000 × 1%− ₹35,500.00
Final Amount35,50,000 + 1,77,500 − 35,500₹36,92,000.00

Worked example — multi-unit roll-up

Each unit contributes its own line total to the Grand Total. Discounts may be set per unit and are summed into a single total discount before tax.

Two units on one order, 8% GST, 2% TDS:

UnitRate × AreaLine totalUnit discount
A-1011,200 sq ft × ₹2,000₹24,00,000.00₹40,000.00
A-1021,000 sq ft × ₹2,000₹20,00,000.00₹0.00
StepCalculationAmount
Grand Total24,00,000 + 20,00,000₹44,00,000.00
Total Discount40,000 + 0− ₹40,000.00
Taxable Amount44,00,000 − 40,000₹43,60,000.00
GST43,60,000 × 8%+ ₹3,48,800.00
TDS43,60,000 × 2%− ₹87,200.00
Final Amount43,60,000 + 3,48,800 − 87,200₹46,21,600.00

Key point: discount, GST, and TDS are computed on the combined taxable amount of the whole order — not per unit and then summed. The order is the unit of taxation; individual line totals only feed the Grand Total.


Multi-buyer ownership splits

A sales order supports multiple buyers (joint purchases). Multi-buyer support does not change the Final Amount — the order total is computed exactly as above. What it changes is how the total is attributed across buyers for ownership and statements.

  • Each buyer is mapped to the order with an ownership share.
  • The shares partition the same Final Amount (they do not add tax or change line totals).
  • For reporting, each buyer's portion of Paid and Due is derived from their share of the order total.

So if the Final Amount is ₹46,21,600.00 and two buyers hold 60% / 40%, their attributed amounts are ₹27,72,960.00 and ₹18,48,640.00 respectively — the sum is unchanged.


Once the Final Amount is fixed, settlement is tracked through the payment timeline:

Paid = (sum of payments) − (sum of returns)
Due = max(Final Amount − Paid, 0)
  • Paid is the net of all recorded receipts minus any returns/refunds.
  • Due never goes below zero. If returns push net Paid negative, Due caps at the Final Amount.
  • Paid + Due = Final Amount always holds while Due is non-negative.

Returns and refunds

A return or refund (for example on a cancellation or an overpayment) is recorded against the order and reduces net Paid, which increases Due. Returns do not alter the Final Amount, the Grand Total, or the tax figures — they only move money in the payment ledger.

Example. Final Amount ₹36,92,000.00. The buyer pays two installments of ₹10,00,000.00 and ₹5,00,000.00, then a ₹2,00,000.00 refund is processed.

EventRunning net PaidDue
Installment 1 (+₹10,00,000)₹10,00,000.00₹26,92,000.00
Installment 2 (+₹5,00,000)₹15,00,000.00₹21,92,000.00
Refund (−₹2,00,000)₹13,00,000.00₹23,92,000.00

Edge cases and guardrails

SituationBehavior
Discount greater than a unit's total rateRejected — discount cannot exceed the line's total rate.
Negative discountRejected — discount cannot be negative.
GST rate or TDS rate of 0Allowed — that component contributes ₹0.00.
RoundingEvery monetary result is rounded to 2 decimals; GST and TDS are rounded individually before being combined.
Quotation vs SO vs SIIdentical formula across all three, so totals carry through conversion unchanged for the same inputs.

For the field-level validation behind these (formats, holdings, locking), see Validation Rules.