Etymology tree
Proto-Italic *putos
Latin putus?
Proto-Indo-European *-h₂
Proto-Indo-European *-éh₂
Proto-Indo-European *-yéti
Proto-Indo-European *-eh₂yéti
Proto-Italic *-āō
Latin -ō
Latin puto
Either from putus + -ō, or else from Proto-Indo-European *paw- (“to strike”), which would make it cognate with puteus; see paviō (“to beat, strike”) for more cognates, and note also Proto-Slavic *pȳtàti (“to ask, examine”). For sense development, compare dēcīdō.