# How Bridges Work 10, Exercise 3: what does a maintenance plan cost? # Use the maintenance plan of the chapter (interval in years, cost of each event in # thousand pounds, all illustrative). (a) For a 50-year life print the number of # events and total cost for each element, and each element's share of the total. # (b) Change the coating renewal interval from 25 years to 40 years and the cable # interior inspection from every 10 years to every 5, and print the new # total. (c) Which element dominates the budget, and which change matters most? PLAN = { "bearings and expansion joints": (2, 15), "coating condition survey": (5, 40), "coating renewal": (25, 3000), "cable interior inspection": (10, 1200), "scour survey of piers": (1, 20), "fatigue-prone details": (6, 100), } def schedule(years, plan): return {name: (years // every, (years // every) * cost) for name, (every, cost) in plan.items()} def total(plan): return sum(c for _, c in schedule(50, plan).values()) base = total(PLAN) for name, (count, cost) in schedule(50, PLAN).items(): print(f"{name:32} {count:3} {cost:6} {100 * cost / base:5.1f}%") print("total", base) plan_b = dict(PLAN) plan_b["coating renewal"] = (40, 3000) plan_b["cable interior inspection"] = (5, 1200) print("changed total", total(plan_b)) only_coating = dict(PLAN) only_coating["coating renewal"] = (40, 3000) only_cable = dict(PLAN) only_cable["cable interior inspection"] = (5, 1200) print("coating only", total(only_coating) - base, "cable only", total(only_cable) - base) # Output when run: # bearings and expansion joints 25 375 2.6% # coating condition survey 10 400 2.7% # coating renewal 2 6000 41.2% # cable interior inspection 5 6000 41.2% # scour survey of piers 50 1000 6.9% # fatigue-prone details 8 800 5.5% # total 14575 # changed total 17575 # coating only -3000 cable only 6000 # # Columns: element, number of events in 50 years, cost (thousand pounds), share # of the total. Two elements take 41.2% each: coating renewal (2 events, 6,000) # and cable interior inspection (5 events, 6,000); together they are over 80% of # the 14,575 thousand total. Stretching the coating renewal from every 25 to # every 40 years means only one event in 50 years and saves 3,000; inspecting # the cables every 5 years instead of 10 adds 6,000. Doing both gives 17,575. # The cable inspection interval matters most, the biggest single swing, and # the interval for a hidden element is a safety decision as well as a cost. All the numbers # are illustrative, and the schedule ignores inflation and the extra cost of # repairs found by inspections.