# /// script # requires-python = ">=3.12" # dependencies = [] # exclude-newer = "2026-08-08T00:00:00Z" # /// """Readable prospective estimate schedule with an explicit error-classification stop.""" from __future__ import annotations def money(amount: float) -> str: """Display financial amounts with commas, parentheses, and two decimals.""" return f"({abs(amount):,.2f})" if amount < 0 else f"{amount:,.2f}" cost = 36_000.00 accumulated_depreciation = 18_000.00 revised_residual_value = 3_000.00 remaining_years = 3 carrying_amount = cost - accumulated_depreciation remaining_depreciable_amount = carrying_amount - revised_residual_value annual_depreciation = remaining_depreciable_amount / remaining_years rows = [ ("Asset cost", cost), ("Accumulated depreciation", -accumulated_depreciation), ("Carrying amount at change date", carrying_amount), ("Revised residual value", -revised_residual_value), ("Remaining depreciable amount", remaining_depreciable_amount), ("Full-year prospective depreciation", annual_depreciation), ] print("Prospective estimate schedule\n-----------------------------") width = max(len(label) for label, _ in rows) for label, value in rows: print(f"{label:<{width}} {money(value):>18}") print("\nInformation-timeline comparison\n-------------------------------") print("Scenario A: later maintenance evidence -> supplied estimate-change route") print("Scenario B: earlier binding exit plan omitted -> error-analysis stop") print("The identical revised inputs do not make the classifications identical.") assert abs(carrying_amount - 18_000.00) < 0.01 assert abs(remaining_depreciable_amount - 15_000.00) < 0.01 assert abs(annual_depreciation - 5_000.00) < 0.01 print("\nBoundary: this script computes Scenario A only after classification is supplied.") print("It does not decide information availability, error reporting, or method preferability.")