"Cheating" Normal Form I'm converting from using an Excel spreadsheet to an app with a MySQL database in a pool league I manage.

I understand about eliminating/minimizing redundancy to avoid data corruption. So in a spreadsheet where I have 3 columns for Bonus1, Bonus2 &amp; BonusT, where BonusT=Bonus1+Bonus2, in the table I would just have Bonus1 &amp; Bonus2 and if I want to use BonusT i just calculate on the fly.

But suppose the calculated field is a lot more difficult to calculate, involving data from many other records. For example I'd like to keep track of a player's number of games played in the league because I calculate the change in handicap after every match and do it differently depending on how many matches he has played.

I could add a record to the user_meta table (this is WordPress) for his number of games, and increment it when adding a new match. Or, I could do some sort of nested query to get this info every time. 

I'm just wondering how complex the subqueries (or other methods I'm new to this) have to get before "cheating" normal form is justified and becomes appropriate?
I suggest you go with the normalized data model and use JOINS. In practicality, sometimes there is no need to drill down to atomic level, you can stop the level of aggregation based on the requirement. Also, if the historical data is important for you, you could consider the historical table instead of updating the meta data information. For this you can refer, Slowly Changing Dimensions (SCD). 

If calculation involved complexities, understand the relationship between respective entities and capture them in table. This you can achieve by creating stored procedures or functions.

I hope, this answer will help you to get start. Thank you.