It would be awesome if the invoice date was always the same as the completion date. If someone accidentally completes a job and then it is reopened/rescheduled, the invoice date stays as the date it was first completed. If the invoice date is not manually changed when the job is really completed, it will get missed on the Payroll Detail report we use for commissions. We would like to see the invoice date get updated whenever completion dates change.
It is really annoying when you flip a quote and you want to "pre-send" or "post-date" a customer's invoice at their request and you cannot adjust the invoice date unless the job is complete. We do lot of larger jobs that I do not want the date the quote was sold to show as the invoice date...it's very annoying.
You are absolutely right, the best practice for the job completion date and invoice date is to be the same, especially if you want to compare the revenue in ST vs. QB. If your company has a "Prepopulate invoice date with job completion date" configuration enabled that automatically sets the invoice date to be the job completion date. And if the job is rescheduled, the completion date will automatically change but the invoice date will need to be manually changed. There is an idea submitted for that config to make it so the Invoice Date matches the Completion Date when the job is rescheduled.
Make sure to upvote the idea, our Product Development team regularly reviews ideas submitted by our users, and will often consider them in future ServiceTitan updates!