I have multiple sources INSERTing into a MySQL innodb table. My periodic aggregation script never makes accurate aggregates. Why?
Using REPEATABLE-READ means that your SELECT transaction gets to view a "snapshot" of the state of data as of the moment the transaction started.  Even if other sessions subsequently insert more data, the SELECT transaction will not see them.  That's the way it's supposed to work.  

So your query is returning 100% accurate results, with respect to the data that existed at a specific point in the sequence of INSERTs.  But you are rapidly changing the data, so your SELECT is bound to return an outdated report.

Using another transaction isolation level probably won't help.  InnoDB refreshes a transaction's snapshot only at the beginning of a statement.  In other words, if the SELECT takes 0.2 seconds, and during that time another 100 INSERTs happen, those 100 INSERTs won't be included in the result of the SELECT.

http://dev.mysql.com/doc/refman/5.6/en/innodb-consistent-read.html says:


  With READ COMMITTED isolation level, each consistent read within a transaction sets and reads its own fresh snapshot.


The only way you can ensure your SELECT is totally in sync with the latest committed data is to prevent any new data from committing while the SELECT is executing.  You can lock the tables temporarily with SELECT ... LOCK IN SHARE MODE.  See http://dev.mysql.com/doc/refman/5.6/en/innodb-locking-reads.html

But even if you do this, as soon as you finish that transaction, the lock is released and new INSERTs start committing, making the result of your SELECT out of date almost instantly.