Value Storage and Text Object Display

I am not a developer and my only experience in programming is a limited amount in Panorama 6. I have read much of the help documentation for Panoram X and have purchased and viewed the following Panoram X Video Training: Data Collections; Formulas; Control Flow; Accessing Fields & Variables; Lookups; Form Programming; Text List Objects. While some of the video training was helpful, most of it dealt with issues which were far more advanced than either I needed or was capable of seeing any use for. It would have been helpful for me, if the training showed where code or procedures were entered into a db and where the results of those were then displayed.
I have two dbs: Contacts (ContactID, name, address, etc.) and Donations (ContactID, date, amount). The ContactID field contains a unique number for a specific contact in both dbs.
Once a month, I would like to add new donations to the Donations db from an external source and then calculate the following 14 values for each donor using the data in the Donations db: last donation date; last donation amount; total amount; total count; total average; 12-mo total; 12-mo count; 12-mo average; calendar year total; calendar year count; calendar year average; 10-year total; 10-year count; 10-year average. I would then like to be able to go to a particular record in my Contacts db and view the following in a Text Object: contact name and address, and the 14 values mentioned above.
How and where can I store the 14 values mentioned above [field?, array?, dictionary(since the values would include dates as well as numbers)?]. Should they be stored in the Donations db or in the Contacts db or perhaps both, so that they can be displayed in a text object in the Contacts db. If the values are stored in the Donations db, how do I transfer those values for use in the Contact db? How do I set up a Text Object which would display the contact name, address and the 14 values mentioned above? Any help anyone may offer will be greatly appreciated.

You are calculating the statistics that you want from existing data, so you do not need to store the data. Use the aggregate( function to calculate it on the fly.

Personally, I have a donations database, and the most important thing that I have in it, from my vantage point as someone who donates to other organizations, is an acknowledgement letter form. I get acknowledgements out the day the donation comes in, and I wish all of the organizations I donate to would as well, especially this time of year when tax filing comes to the forefront.