statspack , LAG - does this look OK

Greetings
Please see the sql and the out put, have a few questions (Orale 8.1.7.4 and
9i Rel2, will be doing the same for 10g also):
Want to send this as a report for DEV team on how we are doing with DB:

I am calculating per minute values.
STATSPACK Report shows these values, but I have to pull the report every
hour and compile them to show this info.

Am I doing it right

Is it efficent or is there a better way to do this

See some negative values, I am guessing the previous values were higher
than the present, what do I do in such cases
4, Does the numbers make sense or am I wasting my time on this

If this is OK, planning to add CPU used by this session, db block gets,
consistent gets, physical reads