At the moment my systems as reporting results every 5 minutes. Is it possible to defer reporting 'till there are either more than a specified number to report or a specified time has passed please? I am typically reporting as below.

I tried adding <report_results_immediately>0</report_results_immediately> but this did not help.

In a tryical day I see 97 MB uplaoded and 286 MB downloaded. The amount uploaded is more than I was expecting and am wondering if reporting results every 5 minutes could be the reason it's so large.

I am using BOINC x64 V7.0.25. As I recall 6.12.34 used to do the same.

Since BOINC makes Scheduler requests only to Report completed tasks (and not requesting new tasks)
BOINC thinks it will not have Internet connection in the next XX days and is in a hurry to report while it can.

This depends on "Maintain enough tasks to keep busy for at least 10 days"
(if the deadline is in the next 10 days BOINC will report immediately)

So change your cache from e.g. 10+10 to 8+12 or 5+15 days.
(the values >10 for the second setting are not possible with the GUI (BOINC Manager) but it's possible to edit directly:
<work_buf_additional_days>XX.000000</work_buf_additional_days>
in global_prefs_override.xml
)

Also the setting "Switch between tasks every XYZ minutes" may affect this if set to big values (e.g. 15000 minutes)

Since BOINC makes Scheduler requests only to Report completed tasks (and not requesting new tasks)
BOINC thinks it will not have Internet connection in the next XX days and is in a hurry to report while it can.

This depends on "Maintain enough tasks to keep busy for at least 10 days"
(if the deadline is in the next 10 days BOINC will report immediately)

So change your cache from e.g. 10+10 to 8+12 or 5+15 days.
(the values >10 for the second setting are not possible with the GUI (BOINC Manager) but it's possible to edit directly:
<work_buf_additional_days>XX.000000</work_buf_additional_days>
in global_prefs_override.xml
)

Also the setting "Switch between tasks every XYZ minutes" may affect this if set to big values (e.g. 15000 minutes)

The task switch interval is part of the computation of the computation deadline, but not part of the computation of when to actually report.
____________BOINC WIKI

I have connect every 8 days set to force shorties to get run as they arrive so I have enought WUs cached to keep busy when the server is down. I will see what happens if I set zero tomorrow.

With BOINC 7.0.25 "zero" for the "connect every/Maintain enough tasks to keep busy" is not good, it will not ask for work at all.
(with 8+20 it will wait for the cache to be < 8 days, then will ask for 20 days)

John McLeod VII say "The task switch interval is part of the computation of the computation deadline, but not part of the computation of when to actually report."
so you can use this setting "to force shorties to get run as they arrive" instead.

Try "Switch between tasks every 14400 minutes" (which should make the shorties run at "high priority")