Your penis changes size from day to day, even when fully hard, and it has nothing to do with genetics or age. Your body is constantly adjusting blood flow based on what's happening inside you. And since an erection is literally just blood-filling tissue, the amount of blood available at that moment decides how big it gets.
When you're stressed, your body releases cortisol, which tightens your blood vessels and redirects blood away from anything it doesn't consider a survival priority—your penis is the first thing on that list. Cold temperature does the exact same thing, because your body pulls blood inward to protect your organs, so everything down there contracts and shrinks, sometimes dramatically.
Even how well you slept the night before changes things. During deep sleep, your brain sends signals to fill your penis with oxygen-rich blood multiple times a night just to keep the tissue healthy. If you didn't sleep well, that maintenance cycle gets cut short.
Hydration plays a massive role too, because blood is mostly water, and if you're even slightly dehydrated, there's simply less volume available to fill anything fully. On top of all that, your arousal level is never the same twice."