Use idiot only in very informal speech or writing, and mainly when quoting anger, self-criticism, or strong disapproval. It is insulting, so softer words such as foolish person or someone made a bad decision fit better in polite or professional settings.