Replace is indicated by thresholds already evaluated. The age-based replacement threshold fired: this unit’s age is 23.34 years against a replace-at-age line of 12.0 years, so it crossed the replacement threshold. The system’s mapped recommendation is therefore replace. For context only: the system also recorded a very small repair quote (amount = 3.0). With that captured amount, the quote check showed 0.0% of replacement cost versus a 25.0% clear-repair line, but the replace-at-age threshold still controls the decision here. Note: the comment says “hydraulic leak. quoted $3k” while the structured quote amount is 3.0 — please confirm the quote value; this does not change the age-based replace indication. Data gap: capacity_lbs is missing, which affects capacity-banded replacement benchmarks, but it does not block the age comparison that decided this case.
Figures used
- facts.asset.age_years = 23.34
- facts.thresholds.values.replace_age_years = 12.0
- facts.quote.amount = 3.0
- facts.ratios.quote_pct_of_replacement = 0.0
- facts.thresholds.clear_repair.observed = 0.0
- facts.thresholds.clear_repair.limit = 25.0
Rules cited
- “replace_age_years”
From v1.0 draft (consolidated, unapproved), saved by consolidation (pending Matt's review). This decision is permanently tied to that version even if the rules change later.
Threshold check
t1.1 provisional · compared in code, not by the model| Lever | This unit | Replace at | Reading |
|---|---|---|---|
| Replace at age asset.age_years |
23.34 years | 12.0 years | AT OR OVER |
| Quote is under the clear-repair line | 0.0% | 25.0% | UNDER |
The unit
Full history →- Unit
- FL-00041
- Make / model
- HYSTER S50XM
- Power
- propane
- Site
- 45 Brunswick (Tiles), New Jersey
- Age
- 23.34 yrs (acquired 2003-04-23)
- Hour meter
- 19,157 @ 2026-04-30
- Hours / year
- 311
- Readings
- 6 (2 implausible)
- Invoices
- 6
- Last service
- 2026-04-30
- Spend seen
- $2,604.51
- Trailing 12mo
- $2,604.51
- Replacement
- $34,000
- Quote / repl.
- 0.0%
- Spend / repl.
- 7.7%
Known gaps in the evidence
- asset has no capacity_lbs — replacement benchmarks are banded by capacity
Repair history behind this
| Service date | Vendor | Type | Total | Flags | Document |
|---|---|---|---|---|---|
| 2026-04-30 | HERCULES | repair | $815.67 | FAVORABLE | 4696723_Auto6a6051b9-7b78-4fde-856f-9defce364240~APWH_20260511112033.pdf |
| 2026-04-10 | HERCULES | repair | $625.41 | FAVORABLE CONSUMABLE_FLAT | 4646117_Autobc46bb52-cb8d-4875-847a-dbe6b587d45f~APWH_20260428133536.pdf |
| 2026-03-27 | HERCULES | repair | $191.86 | CONSUMABLE_FLAT | 4618404_Auto7b154788-77c4-4d10-bef4-6a6ba0b7040d~APWH_20260410131414.pdf |
| 2026-02-04 | HERCULES | repair | $285.17 | FAVORABLE | 4405820_Autoe1b51834-62c3-4c12-9e9e-d1e95664341d~APWH_20260210081020.pdf |
| 2026-02-04 | HERCULES | repair | $200.37 | CONSUMABLE_FLAT | 4405800_Autoce521887-b860-40ab-950e-073130988bd0~APWH_20260210074126.pdf |
| 2026-01-16 | HERCULES | repair | $486.03 | FAVORABLE | 4385210_Auto35f71169-5d29-42ca-b02a-d3c2a32e6360~APWH_20260120121243.pdf |
What did you actually do?
Recording the real outcome is what lets this tool be backtested against Matt's judgement. It takes a click.
Full facts record (d0.2 · openai:gpt-5)
{
"as_of": "2026-08-26",
"asset": {
"acquire_date": "2003-04-23",
"age_years": 23.34,
"asset_id": "FL-00041",
"capacity_lbs": null,
"make": "HYSTER",
"model": "S50XM",
"power_type": "propane",
"serial": "D187V04950T",
"site_name": "45 Brunswick (Tiles), New Jersey",
"source": "asset_master",
"status": "active",
"wh_code": "NJED-45"
},
"coverage": {
"invoice_window_end": "2026-07-28",
"invoice_window_months": 33,
"invoice_window_start": "2023-10-19",
"invoices_in_system": 2108
},
"data_gaps": [
"asset has no capacity_lbs \u2014 replacement benchmarks are banded by capacity"
],
"economics": {
"book_value": 0.0,
"book_value_basis": "(1 - 23.3/10) x $23,500, floored at 0",
"est_acquisition_cost": 23500,
"est_replacement_cost": 34000,
"est_useful_life_yrs": 10,
"fully_depreciated": true
},
"found": true,
"history": [
{
"doc_type": "repair",
"file_ref": "4696723_Auto6a6051b9-7b78-4fde-856f-9defce364240~APWH_20260511112033.pdf",
"flag_codes": "NO_PO;FAVORABLE",
"invoice_id": 963,
"needs_review": 0,
"on_date": "2026-04-30",
"total": 815.67,
"vendor_id": "HERCULES"
},
{
"doc_type": "repair",
"file_ref": "4646117_Autobc46bb52-cb8d-4875-847a-dbe6b587d45f~APWH_20260428133536.pdf",
"flag_codes": "NO_PO;FAVORABLE;CONSUMABLE_FLAT",
"invoice_id": 886,
"needs_review": 0,
"on_date": "2026-04-10",
"total": 625.41,
"vendor_id": "HERCULES"
},
{
"doc_type": "repair",
"file_ref": "4618404_Auto7b154788-77c4-4d10-bef4-6a6ba0b7040d~APWH_20260410131414.pdf",
"flag_codes": "NO_PO;CONSUMABLE_FLAT",
"invoice_id": 725,
"needs_review": 0,
"on_date": "2026-03-27",
"total": 191.86,
"vendor_id": "HERCULES"
},
{
"doc_type": "repair",
"file_ref": "4405820_Autoe1b51834-62c3-4c12-9e9e-d1e95664341d~APWH_20260210081020.pdf",
"flag_codes": "NO_PO;FAVORABLE",
"invoice_id": 320,
"needs_review": 0,
"on_date": "2026-02-04",
"total": 285.17,
"vendor_id": "HERCULES"
},
{
"doc_type": "repair",
"file_ref": "4405800_Autoce521887-b860-40ab-950e-073130988bd0~APWH_20260210074126.pdf",
"flag_codes": "NO_PO;CONSUMABLE_FLAT",
"invoice_id": 318,
"needs_review": 0,
"on_date": "2026-02-04",
"total": 200.37,
"vendor_id": "HERCULES"
},
{
"doc_type": "repair",
"file_ref": "4385210_Auto35f71169-5d29-42ca-b02a-d3c2a32e6360~APWH_20260120121243.pdf",
"flag_codes": "NO_PO;FAVORABLE",
"invoice_id": 187,
"needs_review": 0,
"on_date": "2026-01-16",
"total": 486.03,
"vendor_id": "HERCULES"
}
],
"meter": {
"est_hours_per_year": 311,
"implausible_readings": 2,
"last_reading_date": "2026-04-30",
"last_reading_hours": 19157,
"readings_on_file": 6
},
"quote": {
"amount": 3.0,
"source": "comment",
"symptom_text": "hydraulic leak. quoted $3k",
"vendor_id": null
},
"ratios": {
"age_pct_of_est_useful_life": 233.4,
"lifetime_spend_seen_pct_of_replacement": 7.7,
"quote_pct_of_book_value": null,
"quote_pct_of_replacement": 0.0,
"quote_plus_ttm_pct_of_replacement": 7.7,
"spend_seen_per_meter_hour": 0.14,
"ttm_spend_pct_of_replacement": 7.7
},
"replacement_benchmark": {
"as_of": "2026-08-25",
"est_replacement_cost": 34000,
"est_useful_life_yrs": 10,
"source": "market research 2026-08 (inferred, pending dealer quotes)"
},
"spend": {
"invoices_matched": 6,
"last_service_date": "2026-04-30",
"lifetime_spend_seen": 2604.51,
"out_of_scope_invoices": 0,
"out_of_scope_spend": 0.0,
"ttm_invoice_count": 6,
"ttm_spend": 2604.51
},
"thresholds": {
"clear_repair": {
"limit": 25.0,
"observed": 0.0,
"threshold": "repair_below_quote_pct",
"unit": "%"
},
"fired": [
{
"label": "Replace at age",
"limit": 12.0,
"observed": 23.34,
"source": "asset.age_years",
"threshold": "replace_age_years",
"unit": "years"
}
],
"mapped_recommendation": "replace",
"threshold_version_id": 4,
"untestable": [],
"values": {
"quote_pct_of_replacement": 50.0,
"repair_below_quote_pct": 25.0,
"replace_age_years": 12.0,
"replace_meter_hours": 20000.0,
"ttm_spend_pct_of_replacement": 30.0
},
"verdict": "replace_indicated",
"version_label": "t1.1 provisional"
}
}