Functions have two main purposes: aiding code reusability and breaking down a task into smaller logical units. Functions that do not aid code reusability are helper functions; their sole purpose is to "help" a single function by cleaning the code and making the logic clearer. The opposite of a helper function is a library function, which focuses on code reuse.
Helper functions are often very concrete as each one is used in a small section of code. On the other hand, library functions are very abstract, allowing them to be used in multiple projects.
If a function is only used a single time, it is probably a helper function.
From the below quote, it appears that what I call a library function, others call a helper function.
In my book, a function that is called more than ten times in a program is almost certainly a "helper" function.) I and my friend, we do not, because the longer the names of "helper" functions are, the less they "help"...
The HelperIsaCodeSmell page may provide some insight.