I was also in 2 minds about this. Perhaps the task should do all the work of generating the statement. The task itself is located under the `go.billing.tasks` module, so logically its all on one place.