The call isn't hard to make.
It's the timing that's difficult.

When they can't get around? Time to go.
More bad days than good days? Time to go.
When upkeep costs more than food and normal care. Tine to go.

I have always hated to see the "cost" word thrown in, but I wasn't a doctor or lawyer, nor do I have a 6 digit retirement account.
It's just one of the factors I have no choice but to add to the calculation.

Sorry for your crisis, but I'm waiting for the "other shoe to drop" for my 10 year old Rotweiller.