Cost and value
UAT 316 Technology Project Management, Innovation and Entrepreneurship
Lesson
By the end of this module you will be able to
- Calculate the total cost of ownership (TCO) of in-house versus service options and find the break-even point
- Calculate present value, NPV, IRR and payback, and separate constant-price from inflation-inclusive bases
- Calculate cost per accepted output and analyse the sensitivity of results to assumptions
- Explain Thai public procurement methods under the Procurement Act B.E. 2560 (2017)
Why this matters
“Buying our own drone is much cheaper than hiring” is often heard, but the purchase price is only part of the cost. There are people, training, insurance, software, maintenance, degrading batteries and rework on jobs that fail acceptance. Money paid in the future is also not worth the same as money today. A proposer who counts every cost and discloses the assumptions earns more trust than one who simply quotes the lowest price.
Total cost of ownership and break-even
Total cost of ownership (TCO) adds every kind of cost over the period analysed. This example comes from the drone knowledge hub’s unit on life-cycle cost and acceptance. A hypothetical agency makes maps for 3 years. In-house has a setup cost of 240,000 baht, a fixed 90,000 baht per year and 2,000 baht per job; hiring a service costs 12,000 baht per job. The figures are for learning only, with no discounting, tax or residual value.
def three_year_cost(setup, annual, per_job, jobs_per_year, years=3):
return setup + years * (annual + jobs_per_year * per_job)
for jobs in (24, 4):
inhouse = three_year_cost(240_000, 90_000, 2_000, jobs)
service = three_year_cost(0, 0, 12_000, jobs)
better = "in-house" if inhouse < service else "service"
print(f"{jobs:>2} jobs/year: in-house {inhouse:,} service {service:,} -> {better}")
breakeven = (240_000 + 3 * 90_000) / (3 * (12_000 - 2_000))
print(f"break-even: {breakeven:.0f} jobs per year")
24 jobs/year: in-house 654,000 service 864,000 -> in-house
4 jobs/year: in-house 534,000 service 144,000 -> service
break-even: 17 jobs per year
Above 17 jobs a year, in-house is cheaper; below that, hiring is much cheaper. But cost is only one criterion: first check that every option delivers work that passes the same criteria, such as maps with stated coordinates and checked errors.
The time value of money
100 baht today is worth more than 100 baht in a year, because it can be invested. Present value (PV) converts future money to today’s value using a discount rate , following NIST Handbook 135, the US life-cycle costing manual. It warns that bases must match: constant-price cash flows with a real rate, or inflation-inclusive prices with a nominal rate, never mixed.
Example 1 Present value and cost per job
From the same knowledge unit: year 0 costs 100,000 baht, years 1 and 2 cost 10,000 baht each, and a residual value of 20,000 baht is recovered at the end of year 2. Use an assumed 5% discount rate, with 100 jobs accepted.
r = 0.05
pv = 100_000 + 10_000 / (1 + r) + (10_000 - 20_000) / (1 + r) ** 2
undiscounted = 100_000 + 10_000 + 10_000 - 20_000
print(f"PV {pv:,.2f} baht undiscounted {undiscounted:,} baht")
for accepted in (100, 80):
print(f"{accepted} accepted jobs: {undiscounted / accepted:,.2f} baht/job undiscounted, {pv / accepted:,.2f} baht/job from PV")
PV 100,453.51 baht undiscounted 100,000 baht
100 accepted jobs: 1,000.00 baht/job undiscounted, 1,004.54 baht/job from PV
80 accepted jobs: 1,250.00 baht/job undiscounted, 1,255.67 baht/job from PV
If only 80 jobs pass acceptance, total cost does not fall with them, so the cost per job rises from 1,000 to 1,250 baht. Rework is a cost that must always be counted.
NPV, IRR and payback
A hypothetical service unit invests 900,000 baht in year 0, earns net cash of 350,000 baht a year for 4 years, and sells its equipment for 50,000 baht at the end of year 4.
- NPV (net present value): the sum of the present values of all cash flows. Above zero, the project returns more than the discount rate
- IRR (internal rate of return): the discount rate at which NPV is zero
- Payback period: the time until cumulative cash equals the investment; it ignores the time value of money and any cash after payback
cash_flows = [-900_000, 350_000, 350_000, 350_000, 350_000 + 50_000]
def npv(rate):
return sum(cf / (1 + rate) ** t for t, cf in enumerate(cash_flows))
low, high = 0.0, 1.0
for _ in range(60):
mid = (low + high) / 2
low, high = (mid, high) if npv(mid) > 0 else (low, mid)
print(f"NPV at 6%: {npv(0.06):,.0f} baht")
print(f"IRR: {mid:.2%}")
print(f"simple payback: {900_000 / 350_000:.2f} years")
for rate in (0.03, 0.06, 0.10, 0.15):
print(f" NPV at {rate:.0%}: {npv(rate):>10,.0f}")
NPV at 6%: 352,392 baht
IRR: 21.73%
simple payback: 2.57 years
NPV at 3%: 445,409
NPV at 6%: 352,392
NPV at 10%: 243,604
NPV at 15%: 127,830
IRR is found by bisection: try the middle rate; if NPV is still positive, the true rate is higher, so raise the lower bound; repeat until the range is tiny. NPV stays positive even at a 15% discount rate, so the project is robust to the discount-rate assumption, but the result depends on 350,000 baht of cash a year, whose sensitivity must also be checked.
Results are only as good as the assumptions
If fewer jobs come in, cash flow may fall to 250,000 baht a year. Work out yourself whether NPV at 6% stays positive. Sensitivity analysis shows which assumption matters most and what data to collect before deciding.
Public procurement
A municipal service unit must buy under the Public Procurement and Supplies Administration Act B.E. 2560 (2017). Section 55 sets three methods: general invitation, selection and specific method, and section 56 makes general invitation the default. Electronic bidding (e-bidding) is a sub-procedure set by Ministry of Finance regulations. The proposer must write terms of reference (TOR) with measurable deliverables and allow for procurement time in the schedule, as seen in module 1. The steps and value limits for each method must be checked against the regulations in force at the time.
Class activity
Activity: analysing cost options
- Do worksheet E02 in the hub’s unit on life-cycle cost and acceptance: calculate the TCO of both options, then raise in-house maintenance by 30% and see how the break-even point moves.
- Calculate NPV at 6% when cash flow falls to 250,000 baht a year, and find the lowest annual cash flow that keeps NPV from going negative.
- List at least five costs the examples in this lesson do not yet include.
- Draft three acceptance criteria for the TOR, each stating the output, how it is checked and the evidence the contractor must deliver.
Common mistakes
Watch out
- Comparing only purchase prices, ignoring life-cycle cost
- Comparing options that deliver work of different quality
- Mixing constant prices with a nominal discount rate
- Dividing cost by all jobs instead of accepted jobs
- Reporting a single number without sensitivity to key assumptions
Summary
- TCO counts every cost over the life cycle; the break-even point shows the volume at which one option becomes cheaper
- PV, NPV and IRR account for the time value of money; the price basis and discount rate must match
- Cost per job must be divided by accepted jobs, and sensitivity must always be analysed
- Thai public procurement has three methods under the 2017 Act and needs a TOR with measurable deliverables
Check your understanding
- In-house setup is 100,000 baht, fixed cost 20,000 baht a year and 1,000 baht per job; hiring is 6,000 baht per job. Over 2 years, what is the break-even number of jobs per year?
- What is the present value of 110,000 baht in one year at a 10% discount rate?
- An investment of 500,000 baht earns 200,000 baht of cash a year. What is the payback period?
- If NPV at an 8% discount rate is zero, what is the IRR?
- Which method does the 2017 Procurement Act make the default?
Answers
- jobs per year
- baht
- years
- 8%
- General invitation
Key formulas
| Undiscounted life-cycle cost | |
| Net present value | |
| IRR | |
| Cost per accepted output |
Key references
- Kneifel, J., & Webb, D. (2022). Life cycle costing manual for the Federal Energy Management Program (NIST Handbook 135, 2022 ed.). National Institute of Standards and Technology. link
- U.S. Government Accountability Office. (2020). Cost estimating and assessment guide: Best practices for developing and managing program costs (GAO-20-195G). link
- Kerzner, H. (2025). Project management: A systems approach to planning, scheduling, and controlling (14th ed.). Wiley. link
- Project Management Institute. (2025). A guide to the project management body of knowledge (PMBOK guide) (8th ed.). link
- พระราชบัญญัติการจัดซื้อจัดจ้างและการบริหารพัสดุภาครัฐ พ.ศ. 2560. ราชกิจจานุเบกษา, 134(24 ก). link
Further reading
Study the assigned knowledge units in advance, review media and take the module quiz
In class / field
Lecture, case discussion and in-class problem solving
Learning evidence: Quiz results and submitted exercises