What's your expectation of the global variable behavior? Setting a $$ variable does not change any data in any field whatsoever. It just puts those values in memory so you can work with them, but it does not touch any data.
In addition to Wim's comments; this also sounds like a data structure problem. Seems like you should have a contract table and an instructor_contract join table with year and instructorID.
I use the variables to calculate the new salary and the daily rates. When I put in 1.03 for the rateRaise, I'm thinking it will recalculate the acadSalary field (baseSalary * 1.03) for all of the records.
The way it's set up now, there is a History table and at the end of each year I export the data to this file and delete it from the main table. Then I import current employees with their current salaries (these become the base salaries) into the main file. The end users only want to see the most current records and don't want to perform a find each time.
I have a button that brings up a new window with a list of related records from the History table when they want to look back.
Wouldn't surprise me that there's a better way to do it and I'm open to suggestions.