Every Friday, someone exports three CSVs, pastes them into a spreadsheet, repairs the formulas that broke, and emails a PDF to the customer. It takes the afternoon. When that person is out, the report goes late, and the customer notices.
At Boston Dynamics I built DHL's robot fleet reporting system, working with DHL directly. DHL is a Boston Dynamics customer. The order of the work there is the order I'd use on any recurring report.
Start with the reader
Ask the customer which numbers they look at first, and what they decide with them. A hand-built report collects whatever was easy to export. Cut what the customer doesn't read, and the report gets shorter before anything is automated.
Write down where each number comes from
Each number gets one source and one definition. If two people on your team would calculate uptime differently, settle which way is right before a script calculates it for you. Fix the mess first. Then build. Then automate.
Then automate the pull
Once the definitions are agreed, a scheduled job pulls the data and fills the report. Looker Studio or a dashboard tool you already pay for often covers it. A custom build earns its cost when the customer needs something those tools can't show, or when the data sits in systems they can't reach.
Keep the Friday check
Someone still reads the report before it goes out. It takes five minutes instead of an afternoon, and it catches the week a sensor went offline and the numbers look too good.