Mapped recommendation is request_more_info. The thresholds engine marked this case untestable because it could not evaluate the single‑repair comparisons without a formal quote amount on file. Band is all (every lever is tested), and no thresholds fired. Specifically, we could not: (1) compare the repair to the replacement benchmark, (2) check the single‑repair dollar cap, or (3) compare the repair to book value, because quote.amount is missing and the precomputed quote percentage is unavailable. To proceed, please upload or enter the written vendor quote so the system can calculate the needed checks against the $34,000 replacement benchmark, the $10,000 single‑repair cap, and the $5,546 book value. Your note mentions a repair cost, but since quote.amount is null in the system, we can’t use it until the quote is entered or attached.
What's missing
The recommendation stopped short because these inputs weren't available. Supplying them and re-running will change the answer.
- Replace when a single quote reaches: ratios.quote_pct_of_replacement is unavailable
- Replace when a single repair invoice exceeds: quote.amount is unavailable
- Replace when a repair reaches: quote.amount is unavailable
- no repair quote was supplied — there is no repair cost to weigh against replacement
Figures used
- facts.replacement_benchmark.est_replacement_cost = 34000
- facts.thresholds.values.max_single_repair_usd = 10000.0
- facts.economics.book_value = 5546.0
- facts.thresholds.values.quote_pct_of_replacement = 25.0
- facts.quote.amount = null
- facts.ratios.quote_pct_of_replacement = null
Rules cited
- “quote_pct_of_replacement”
- “max_single_repair_usd”
- “quote_pct_of_book_value”
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.4 2026-08-26 · compared in code, not by the model
ALL BAND
no mature age is set, so every lever is tested.
No threshold could be tested — the inputs they need are missing.
Could not be tested
- Replace when a single quote reaches: ratios.quote_pct_of_replacement is unavailable
- Replace when a single repair invoice exceeds: quote.amount is unavailable
- Replace when a repair reaches: quote.amount is unavailable
An untested threshold is a gap in the evidence — it is not a reason to repair.
The unit
Full history →- Unit
- FL-00521
- Make / model
- Hyster S50CT2
- Power
- propane · 4,650 lb
- Site
- Phoenix, Arizona
- Age
- 7.64 yrs (acquired 2019-02-12)
- Hour meter
- 9,628 @ 2026-06-10
- Hours / year
- 436
- Readings
- 4
- Invoices
- 4
- Last service
- 2026-06-10
- Spend seen
- $2,791.23
- Trailing 12mo
- $2,791.23
- Replacement
- $34,000
- Quote / repl.
- —
- Spend / repl.
- 8.2%
Known gaps in the evidence
- no repair quote was supplied — there is no repair cost to weigh against replacement
Repair history behind this
| Service date | Vendor | Type | Total | Flags | Document |
|---|---|---|---|---|---|
| 2026-06-10 | FOSE | repair | $890.69 | FAVORABLE | 4822471_Autocd424795-57b6-405b-a513-d4e6760163ad~APWH_20260619110712.pdf |
| 2026-06-02 | FOSE | battery | $816.94 | FAVORABLE | 4822469_Auto3c40bf88-f475-4f9b-973e-050f108c1e07~APWH_20260619110711.pdf |
| 2026-04-20 | FOSE | pm | $454.79 | FAVORABLE | 4644339_Autodfb80cd5-c603-4066-abff-3f307cb9c292~APWH_20260427140201.pdf |
| 2026-02-26 | FOSE | repair | $628.81 | FAVORABLE | 4526932_Auto02399f9a-d492-4bb7-81b3-ee2c98bcb49c~APWH_20260303101008.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.
Outcomes are recorded under a named account. Sign in to record what was done.
Full facts record (d0.2 · openai:gpt-5)
{
"as_of": "2026-10-05",
"asset": {
"acquire_date": "2019-02-12",
"age_years": 7.64,
"asset_id": "FL-00521",
"capacity_lbs": 4650,
"make": "Hyster",
"model": "S50CT2",
"power_type": "propane",
"serial": "B267V03034T",
"site_name": "Phoenix, Arizona",
"source": "asset_master",
"status": "active",
"wh_code": "AZPH"
},
"coverage": {
"invoice_window_end": "2026-07-28",
"invoice_window_months": 33,
"invoice_window_start": "2023-10-19",
"invoices_in_system": 2108
},
"data_gaps": [
"no repair quote was supplied \u2014 there is no repair cost to weigh against replacement"
],
"economics": {
"book_value": 5546.0,
"book_value_basis": "(1 - 7.6/10) x $23,500, floored at 0",
"est_acquisition_cost": 23500,
"est_replacement_cost": 34000,
"est_useful_life_yrs": 10,
"fully_depreciated": false
},
"found": true,
"history": [
{
"doc_type": "repair",
"file_ref": "4822471_Autocd424795-57b6-405b-a513-d4e6760163ad~APWH_20260619110712.pdf",
"flag_codes": "FAVORABLE",
"invoice_id": 1171,
"needs_review": 0,
"on_date": "2026-06-10",
"total": 890.69,
"vendor_id": "FOSE"
},
{
"doc_type": "battery",
"file_ref": "4822469_Auto3c40bf88-f475-4f9b-973e-050f108c1e07~APWH_20260619110711.pdf",
"flag_codes": "FAVORABLE",
"invoice_id": 1170,
"needs_review": 0,
"on_date": "2026-06-02",
"total": 816.94,
"vendor_id": "FOSE"
},
{
"doc_type": "pm",
"file_ref": "4644339_Autodfb80cd5-c603-4066-abff-3f307cb9c292~APWH_20260427140201.pdf",
"flag_codes": "FAVORABLE",
"invoice_id": 848,
"needs_review": 0,
"on_date": "2026-04-20",
"total": 454.79,
"vendor_id": "FOSE"
},
{
"doc_type": "repair",
"file_ref": "4526932_Auto02399f9a-d492-4bb7-81b3-ee2c98bcb49c~APWH_20260303101008.pdf",
"flag_codes": "FAVORABLE",
"invoice_id": 458,
"needs_review": 0,
"on_date": "2026-02-26",
"total": 628.81,
"vendor_id": "FOSE"
}
],
"meter": {
"est_hours_per_year": 436,
"implausible_readings": 0,
"last_reading_date": "2026-06-10",
"last_reading_hours": 9628,
"readings_on_file": 4
},
"quote": {
"amount": null,
"source": "none",
"symptom_text": "forklift has 4000 hours. repair is 4500$ for a new mast and a hydraulic leak",
"vendor_id": null
},
"ratios": {
"age_pct_of_est_useful_life": 76.4,
"lifetime_spend_seen_pct_of_replacement": 8.2,
"quote_pct_of_book_value": null,
"quote_pct_of_replacement": null,
"quote_plus_ttm_pct_of_replacement": null,
"spend_seen_per_meter_hour": 0.29,
"ttm_spend_pct_of_replacement": 8.2
},
"replacement_benchmark": {
"as_of": "2026-08-25",
"est_replacement_cost": 34000,
"est_useful_life_yrs": 10,
"matched_by": "power type + capacity band",
"model_match": null,
"source": "market research 2026-08 (inferred, pending dealer quotes)"
},
"spend": {
"invoices_matched": 4,
"last_service_date": "2026-06-10",
"lifetime_spend_seen": 2791.23,
"out_of_scope_invoices": 0,
"out_of_scope_spend": 0.0,
"ttm_invoice_count": 4,
"ttm_repair_count": 2,
"ttm_spend": 2791.23
},
"thresholds": {
"band": {
"band": "all",
"reason": "no mature age is set, so every lever is tested",
"single_repair_levers": true
},
"clear_repair": null,
"fired": [],
"mapped_recommendation": "request_more_info",
"retired": [
"replace_age_years",
"replace_meter_hours"
],
"skipped": [],
"threshold_version_id": 5,
"untestable": [
"Replace when a single quote reaches: ratios.quote_pct_of_replacement is unavailable",
"Replace when a single repair invoice exceeds: quote.amount is unavailable",
"Replace when a repair reaches: quote.amount is unavailable"
],
"values": {
"lifetime_spend_pct_of_replacement": 200.0,
"max_repairs_ttm": 4.0,
"max_single_repair_usd": 10000.0,
"max_ttm_spend_usd": 20000.0,
"quote_pct_of_book_value": 200.0,
"quote_pct_of_replacement": 25.0,
"repair_below_quote_pct": 5.0,
"replace_age_years": 20.0,
"replace_meter_hours": 20000.0,
"ttm_spend_pct_of_replacement": 50.0
},
"verdict": "untestable",
"version_label": "t1.4 2026-08-26"
}
}