data logging/processing

Currently I can successfully count each channel, running total for each channel and the overall movement in and out of the building.

Are you logging when the transaction occurs, too?

My question is about capturing and showing the data in different ways.

Capturing and showing it where? The Arduino does not have a lot of memory, so it will not be able to hold much data.

You could add an SD card, to increase the amount of data you can store.

Showing that data may or may not be trivial. Depends on where and when you want to show it.

By that I mean showing the data as Total animals "IN" (plus on count) in the last hour, in the last 24 hours, in which hour did maximum "OUT"s occur, that sort of thing.

What would trigger showing this data? Per channel or an aggregate?

I would like to also collect data against time and retrieve a file to plot a graph against time of "IN"s and "OUT"s but I can leave that for now.

Collect it where? Retrieve a file from where?

I am after guidance on how this would normally be achieved, may be some code examples and if applicable pro's and cons for different ways to achieve my goals.

I would simply stuff each animal entry/exit event into a MySQL database, using an ethernet shield. The server hosting the database could timestamp the entries.

Then, use the power of SQL to extract the data that you want - entries and exits in the last hour, the last 24 hours, the busiest channel, etc.