A level column
Actual stats based on the level, 0 EVs, 9 ATK IV, and 8 DEF SPC and SPD stats, which are the gen 1 trainer IVs.
Phys crit and spec crit, the maximum damage output before move power and DEF/SPC are calculated
Phys ×4 and Spec ×4, maximum damage dealt with +6 or -6 stat modifiers
Phys Tank and Spec Tank, which is DEF×HP and SPC×HP respectively. This is the number you divide by to figure out what percentage of your HP bar will be dealt by a move. The smaller of these two numbers tells you how tough a pokemon is, which is how I rank pokemon in a nuzlocke when playing set battle style, as this tells you how well they can take a hit when you switch them in.
The Elite Four and Champion pokemon in pokemon yellow ranked by hardest hitting attack, accounting for stat changes. This is the maximum damage output they can do in a super long battle, so this is what I like to build my team around to minimize the chances that I get OHKOed at the end of the game.
The levels of the pokemon in yellow Elite Four plus Champion.
Damage output and move type for each Elite Four attack, hardest hitting first. You can use this number, times type effectiveness, divided by defending pokemon tank number, to get the percentage of your HP bar the attack will deal.
The way I use this spreadsheet:
On the third page, I keep a list of all my available pokemon. To start (do this once you actually have seven pokemon available, otherwise it's a waste of time), copy all of your available pokemon, in their final evolution, from the first page. Don't worry about level as they will be much higher when you get to the elite four, so all that matters is that their level is the same. I have it set to 65, the level cap I am using for this. If you have a different level cap, set the levels to that. Next, put the first elite four member in the empty row at the top (slowbro in row 2 for the first one). Then sort z-a either phys tank or spec tank depending on the attack type. Now calculate the percentage of your hp bar the attack will do to the first pokemon by multiplying the damage by type effectiveness and dividing by the appropriate tank number. If the number is above 1, you will have to try to win fast before they get a lot of stat boosts in the fight or you will be OHKOed. Do this for each of the moves the attacking pokemon has and save the highest number. This is the heaviest hit that pokemon will take. Now calculate it fir each of your other pokemon that might do a better job taking the hit, usually simply a vetter type effectiveness. Whatever pokemon has the lowest number from the hardest hit they will tale, that's the best tank for that fight. Mark down the elite four pokemon, your pokemon, and the HMs it can learn on the last page. Repeat this process, going down the line of elite four pokemon until you have 5 pokemon picked out. Then, check what HMs you are missing and try to find your pokemon that can learn each of those HMs. If there are multiple, go to the next elite four pokemon and figure out which one can tank better against it.
Each time you catch a new pokemon, check if it is a better for for one of the matchups. If the pokemon has worse tank numbers and doesn't have a better type matchup, you don't have to do the math. The later into the game you get, the better quality pokemon you will have on your team, and the less often you will have to actually do the math. Whenever you lose a pokemon, you will need to check what the next best thing is for the matchups it was covering. You will also have to check that your HMs are covered each time you change a team member.
This information might become outdated, as the link is to my google drive document, which I am always trying to improve as I play.
Any questions can be asked on my twitch channel or my discord. https://discord.gg/hQvN8B4Ch5 I will be happy to help.