algorithm – score multiplier based on the lowest time

I am creating a scoring system that will be based on several factors, the amount of collectable objects you have obtained, the number of hits you have received, etc. I want to add a multiplier based on how quickly the player manages to finish the game.

So far, the only thing I've thought about is having a maximum time and subtracting the final time from that number. So, as an example, let's say that I set the maximum number in 300 seconds and someone beat the game in 220 seconds, that would leave 80. This could be divided into a smaller number and then used as a multiplier in the total score.

It works but it feels a bit limited. What would be a better way to achieve this?