Short answer

Because completing a task is two steps, not one: filling in the checklist and setting the task's status (Passed / Failed for an inspection, Done for a job) are separate actions. If you fill in the checklist and back out without setting the status, the task keeps its To Do status — so it stays on the list and, once its due date passes, shows as overdue even though the work is done. Go back into the task and mark it Passed / Failed (or Done for a job) and it clears.

Detail

The checklist answers and the task status are two different things, and both matter:

  • The checklist captures what you found (lights working, fluids OK, and so on). Your answers save on their own.
  • The task status records that the check happened and its outcome — an inspection completes to Passed or Failed; a job completes to Done. This is what moves the task off the "to do" list.

So after you fill in a checklist, take the one extra step of setting the status.

On the mobile app there are quicker ways than opening each task:

  • From the task list, press and hold a task to bring its checklist up in place, or
  • swipe right on the task to mark it Passed / Failed without opening it.

On the web app, open the task and set the status (Passed / Failed / Done) after the checklist is filled in.

Once a task is completed, turn on Hide Completed (mobile filter, top right) so it drops off the list and you're only looking at outstanding work.

Watch-outs

  • Overdue often just means "status never set". Before assuming a scheduled task was missed, open it — if the checklist is already filled in, the work was done and only the status is outstanding. Set it and the "overdue" clears.
  • A routine parent won't tick itself off when its sub-tasks are done. Completing all the individual inspections under a routine does not auto-complete the routine cycle above them — that's a separate known limitation, not the same thing as this. (If your worry is a whole routine still showing outstanding, see the related note.)
  • "Done but not showing" on someone else's phone is different again — that's usually the other device not yet synced (see the offline Q&A), not a status left unset.