- on_form_change: Only update cost estimate, skip expensive derive_entry_spot - Only call derive_entry_spot on date changes (start/end inputs) - Other inputs (template, units, loan, LTV) just mark results stale - This reduces lag from constant API polling