Skip to main content
Quartyl
Methods & PLIsprofessional

Cost Plus vs TNMM: Gross Mark-Up vs Net Margin Testing

Cost Plus and TNMM both use the cost base, but they answer different questions. The mechanics of each, the risk profile of each, and the documentation that survives audit.

Quartyl Team

Cost Plus and TNMM look like the same method wearing different clothes: both start from the tested party’s cost, both compare against a mark-up or margin reference, and both are one-sided. They are not the same method. Cost Plus prices the transaction — cost base plus a benchmarked mark-up is the arm’s length price. TNMM tests the profitability — is the tested party’s net margin inside the range earned by comparable companies. The direction of travel and the evidence each needs are different, and the choice between them has real consequences in examination.

The mechanics, side by side

Cost Plus TNMM
Question answered What should the price be? Is the booked margin arm’s length?
Output an arm’s length price a position inside a range
Reference a benchmarked mark-up (from comparables or a pool) the IQR of the PLI across the comparable pool
Cost base role the literal base of the price the denominator of the PLI (OP/OC, NCP)
Adjustment target the mark-up, for comparability differences the PLI, for differences that materially affect it
Typical tested party contract manufacturer, routine service provider service provider, distributor, contract R&D
Data needed cost base detail + mark-up comparables the tested party’s PLI + the pool’s PLI distribution

Why the choice matters

Cost Plus fixes the price first. The file computes: cost base ₹X, benchmarked mark-up Y%, arm’s length price = X × (1 + Y). If the booked price is below that, the adjustment is mechanical — and the size of the adjustment is driven by the cost base definition. An item in the cost base that should not be there (a captive overhead allocation, an intercompany charge, extraordinary cost) inflates the base and the resulting price. The TPO’s favourite attack on a cost-plus file is the cost base, not the mark-up.

TNMM tests the outcome. The file computes the tested party’s OP/OC and asks whether it sits inside the pool’s IQR. The cost base still matters — it is the denominator of the PLI — but the failure mode is different: a wrong PLI, a contaminated pool, or a tested-party definition that does not match the comparables. TNMM’s defence lives in the Accept-Reject matrix and the PLI choice; Cost Plus’s defence lives in the cost-base schedule.

The overlap and the trap

The trap is using both and letting them disagree. A common pattern:

  1. Price the controlled transaction at cost plus a mark-up taken from a comparable set (Cost Plus logic).
  2. Then run TNMM on the same tested party with the same pool and find the resulting OP/OC is outside the pool’s IQR.

The file now contains two results that contradict each other, and the TPO gets to pick the one it likes. The two methods only reconcile when:

  • the cost base definition in the cost-plus computation matches the operating cost definition behind the TNMM PLI (line by line),
  • the mark-up reference and the pool come from the same comparables,
  • and the file states which method is the declared method and treats the other as a consistency check — not as an independent second opinion.

Risk profile of each

Risk Cost Plus TNMM
Cost base dispute High — every line examinable Medium — denominator dispute, but inside the PLI
Mark-up / range dispute Medium High — pool quality, PLI, period
Price-vs-margin mismatch n/a (price method) Possible if the price is separately set
Works when cost capture is clean and complete pool is solid and the PLI isolates the routine return
Fails when costs are allocated, blended or incomplete the pool is thin, mixed or the PLI is wrong

Worked contrast on the same data

A contract service provider: revenue ₹500 cr, operating cost ₹420 cr, operating profit ₹80 cr. OP/OC = 19.0%.

Cost Plus view. Cost base (defined: employee cost + direct expenses + allocated overheads of ₹30 cr) = ₹420 cr. Comparable contract providers earn a cost mark-up of 18%–24% (median 21%). Arm’s length revenue = 420 × 1.21 = ₹508.2 cr. The booked ₹500 cr is slightly below → adjustment of ₹8.2 cr.

TNMM view. Same comparable pool, OP/OC IQR 17.5%–23.1%. Booked OP/OC 19.0% is inside the range → no adjustment.

Same pool, same company, different verdicts. The difference is the allocated-overhead line inside the cost base: it raises the base (helping Cost Plus) and it is already inside the operating cost that OP/OC divides by (neutral in TNMM). The file must decide once, on the cost definition, and carry that decision consistently.

Documentation that survives

  • One cost definition, used everywhere — cost-plus base, TNMM denominator, and the financials in the Local File all from the same schedule.
  • The declared method named in the Local File (Rule 10D block on the method), with the other method shown as a cross-check.
  • The mark-up reference and the pool from the same Accept-Reject matrix — one screening, two uses, documented as such.
  • The variance analysis where the two methods give different results: what drives the gap (the cost base line, the PLI, the period) and why the declared method’s answer is the arm’s length one.

See also

Run the screens as a study, not a spreadsheet

Quartyl applies the method, PLI and screening steps above as a pipeline — and keeps a documented reason for every exclusion.

Related docs

Book a Demo

Tell us what you'd like benchmarked

We'll confirm a 30-minute screen-share slot within one business day.

We reply within one business day. Your details are used only to arrange the demo — never shared or sold.