Replicating data for ease of access I have a table, lets call table a, that I allow users to enter data into. They can enter data as many times as they want, and based on some constraints, I only use the most recent entry.

My question is this: is it okay to take the entered data from table a, simplify it (take the most recent data, apply some formulas), and store it in table b?

This improves access access for my application and convert makes most of my data access queries simple selection statements. The down side is that my data is replicated, and a script must be run regularly to keep data in sync.

So, is this an acceptable practice?
This sounds like the classic case of History versus CurrentState.  Sure, have two tables.  Insert a new row into History and overwrite the row keyed to the user in the other table.

That does lead to "redundant" data, which is a 'no-no' by DB purists.  So here is another approach:

Insert into History, as above.  Get back the AUTO_INCREMENT id.  Then Update the CurrentState with just the id (and user_id).  Then, for accessing the current info, use a JOIN between the tables.