There's a few ways you can do this, but what I would do is what you allude to, that is, creating a table that holds the summary information of the monthly income.
I'm assuming you have a table that stores the month, year, income for the business. At the end of the month, you calculate the total earnings (or have it through an un-stored calc).
I'd create another table that stores the NetResults. In this table is stored the primary keys of each month from that monthly income table (fk_StartYear and fk_EndYear), the increase/decrease amount, and a field that identifies it as a "Decrease" or "Increase".
This gives you a static summary of the difference between two months. since Jan 2013 and Jan 2014 is in the past and unchangeable (if that is a correct assumption), you could script the creation of the summary record and store the loss/gain amount as a number field.
Potentially you're saving yourself a lot of time when the record is stored in a static fashion; any reports you run don't have to be based on unstored calculated fields.
you COULD do the same thing and have unstored calcs between the years table, but then you are dealing with potential unstored-calculation slow down.
I prefer scripting to work out my business logic. That is simply how I choose to do things.
Thanks! I figured this was the best way but I just needed another opinion.