How to estimate the disk space for 1 million rows if I have a table of fewer rows in InnoDB MySQL
Your basic assumptions are correct, it is easy to see that the allocation per row is just under 100 bytes per row, and a bit more for the indexes, giving you a 200 * 1M = 200M of total size.

However, several important things have to be taken into account:


The tables must have identical structure and equivalent content- e.g. the same exact table with similar sized variable content.
With SHOW TABLE STATUS you are getting an estimation of size (rows, total size) based on sampling- it may not be accurate, specially if large changes happened to the table and automatic sampling didn't kick-off yet. You can force statistics gathering with ANALYZE TABLE command, but it can never guarantee you 100% accuracy
Everything is related to the logical size, not to physical size, or size on disk. If you were to delete 7/8ths of that table, the disk used on disk wouldn't shrink in the case of InnoDB, because disk defragmentation wouldn't happen- space is freed for other rows to be inserted, but it wouldn't be released to the filesystem. To reduce the on-disk size, you would need to recreate the table with OPTIMIZE TABLE, a more time consuming and blocking operations.
If disk space is a concern, consider using compression