All projects

USYD ITLS6202 Sustainable Logistics and ProcurementIndividual build

Deal-cost model for supplier negotiation (CentriComp)

Every negotiation lever priced as present-value net cost versus baseline

Role: Designed the model and built and tested the app myself (individual build)

Try the live app (opens in a new tab)

CentriComp deal-cost model app: negotiation levers (nominal price, payment schedule, service package) beside the verdict gauge, break-even price and a waterfall from sticker price to net cost

See the app, then try the model

Recorded walkthrough of my live app (silent, steps captioned on screen): the baseline offer ($10M, back-loaded, standard service, 70% recycling) at $10.7M net cost, then three levers (front-loaded payment, Package Three service, immediate installation) move the verdict, the waterfall and the break-even price per payment plan, ending with the A/B/C scenario compare. All inputs are case assumptions.

A compact version of my live app, using the same formulas and the ITLS6202 case assumptions (baseline: $10M, back-loaded, standard service, 70% recycling). It is a teaching case model, not a real negotiation result.

  1. 1 Move a negotiation lever
  2. 2 Net cost is recomputed in present value against the baseline
  3. 3 Read the verdict, the waterfall and the break-even price per plan

Negotiation levers

Payment schedule (share of the price counted in present value)
Service package (maintenance savings)
Solvent recycling rate (disposal of the rest, over 5 years)

At baseline

$0

Net cost $10,700,000 vs baseline $10,700,000 (PV)

From sticker price to net cost

Waterfall from sticker price to net cost: Nominal $10.00M, Timing 82% minus $1.80M, PV equip. $8.20M, Install $0, Service $0, Disposal +$2.50M, Net cost $10.70M. Baseline net cost $10.70M.$10.00MNominal−$1.80MTiming 82%$8.20MPV equip.$0Install$0Service+$2.50MDisposal$10.70MNet cost

Break-even price by payment plan

  • Front-loaded$8.82M
  • Even$9.32M
  • Back-loaded$10.00M

The offer sits exactly at break-even for back-loaded: $10,000,000.

Open the full app(opens in a new tab)

The full app adds a service premium lever, A/B/C scenario compare, a computed negotiation playbook and the sustainability flag.

Supply chain problem

Nominal price comparisons hide payment timing, service, installation, recycling and disposal costs.

  • Total cost of ownership
  • Present value and payment terms
  • Supplier negotiation
  • Sustainable procurement
  • Scenario analysis

Tech I used

A present-value deal-cost model in pure, unit-tested functions behind a React app, pricing every lever against the baseline

  • React
  • Vite
  • JavaScript
  • Vitest
  • Netlify

Result

A live, tested app that shows the net cost and break-even price of an offer before the negotiation. Inputs are case assumptions.

From negotiation levers to a playbook

  1. CentriComp deal-cost model app: negotiation levers (nominal price, payment schedule, service package) beside the verdict gauge, break-even price and a waterfall from sticker price to net cost

    01Step 1 of 6, React

    Negotiation levers

    Nominal price, payment plan, service package, installation timing, recycling rate and disposal cost.

  2. 02Step 2 of 6, JavaScript

    Present-value model

    Pure functions discount each lever into present-value net cost against the baseline.

  3. Verdict gauge reading better than baseline, the break-even price for the front-loaded plan, and the waterfall from nominal price through payment timing, service savings and disposal to net cost

    03Step 3 of 6, React

    Verdict and waterfall

    A gauge scores the offer; a waterfall runs from sticker price to net cost.

  4. Break-even price by payment plan (front-loaded, even, back-loaded) against the offer, beside a sustainability flag for unrecycled solvent and disposal cost

    04Step 4 of 6

    Break-even and scenarios

    Maximum break-even price per payment plan, plus an A/B/C scenario comparison.

  5. 05Step 5 of 6

    Playbook and sustainability flag

    A computed negotiation playbook, and a flag when toxic solvent stays unrecycled.

  6. 06Step 6 of 6, Vitest

    Tested and deployed

    13 unit tests, including a 5,184-case break-even check; deployed on Netlify.

Tech stack in this project

  • ReactLever controls, verdict gauge, waterfall, break-even bars, scenarios and playbook
  • JavaScriptModel logic in pure functions, kept apart from the interface so every figure is testable
  • Vitest13 unit tests, including a 5,184-case check that break-even always nets zero versus baseline
  • ViteBuild tooling for the app
  • NetlifyHosting for the live app
  • Present-value discounting
  • Total cost of ownership
  • Break-even pricing
  • Scenario comparison

Why it matters for supply chain

  • Present-value net cost = total cost of ownership in supplier selection
  • Payment-plan levers = payment terms and working capital in negotiation
  • Disposal and recycling flag = sustainable procurement and end-of-life liability
Read the full case study

Problem

Comparing supplier offers on nominal price alone hides what a deal really costs: when payments fall due, which service package is included, when installation happens, how much solvent is recycled and the disposal liability left behind. In the ITLS6202 CentriComp case, the buyer had to judge a supplier's offer for a solvent recycling acquisition against a baseline on a like-for-like basis.

Approach

  1. I designed the deal-cost model and built the app myself: each negotiation lever (nominal price, payment schedule, service package, installation timing, solvent recycling rate and disposal cost) feeds a present-value net cost compared with the baseline.
  2. I isolated the model logic in pure functions, separate from the React interface, so every figure on screen comes from testable code.
  3. The interface shows a verdict gauge against the baseline, a waterfall from sticker price to net cost, the maximum break-even price for each payment plan and an A/B/C scenario comparison.
  4. From the current inputs, the app computes a negotiation playbook and raises a sustainability flag when toxic solvent is left unrecycled.
  5. I covered the model with 13 Vitest unit tests, including a 5,184-case check that the break-even price always returns zero versus baseline, then rebuilt, fixed and deployed the app on Netlify.
  6. All inputs are case assumptions; the app makes no claim about grades, savings or real negotiation outcomes.