What sparks you to change models? Where in your workflow do you decide "this is a sonnet task" or "this is obviously a fable task"?
Opus - smart execution (most coding, knowledge work)
Sonnet - dumb execution (basic coding, generic text/organization/information tasks)
Haiku - really only reason is lack of auto mode becomes tedious. I only use it indirectly with sub agent delegation for text analysis (summarize web page, document). However, it's quite fast and capable
Debugging/analysis/small scripts -> Opus
Non software engineering -> Sonnet