EDIT: I kept rereading your post and finally remembered the details of imports. Specifically, the Last Batch report, doesn't exclude duplicates or just present new unique additions in those counts. It's a count of the rows you passed it in each SIS import file type... (based on instructure csv headers, for instance my enrollments are based on 4 files)
I don't import 100,000 new enrollments every day, I just run 4 files with 100,000± enrollments every day.

I also didn't import 4000 courses today. Most likely 99% of them are the same, maybe 1 or 2 new ones (this late in the year), or maybe some changes to the course name or status.
I did however, import ~148 unique/new users today, because the query that generates that file, explicitly looks for records created in the SIS ±1 day of execution. Then on Sunday I do a complete load of every record... which appends new records to Canvas or updates existing Canvas sis records not caught during the week.
And because I was confused about you only running it once or twice a semester... the following could still apply if someone finds themselves here later.
Accounts are referring to Sub Accounts, part of the organizational structure of your Canvas. This keeps your courses from landing in the root of your instance. I would double check that something like the following example is happening.
If exactly 9 accounts are created each term... it might be something like...9 subjects get 1 new account per term:
Mathematics
Fall17
Spr18 (1 of 9)
Science
Fall17
Spr18 (1 of 9)
Social Studies
Fall17
Spr18 (1 of 9)
Here's the API documentation for SIS imports, see accounts.csv
SIS Import Format Documentation - Canvas LMS REST API Documentation
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.