As Dave said, it should be decided on the day but they should keep to the formula rigidly, with no exceptions. The problem is, there isn't generally a pattern that they 100% abide by... some times they don't extend, other times they announce in advance they're closing later but actually they don't need to...
You would think it should be simply...
Below 10,000: 5pm
10-13,000: 5.30pm
14-16,000: 6.00pm
16-18,000: 6.30pm
18-20,000: 7.00pm
20,000+: 7.30pm
Plus, add 1/2 hour extra if it's a weekend/school holiday and the weather is fine... and obviously, they can set in stone event dates such as Scarefest and Fireworks.
I know staff will probably moan at the above, but that is how a number of major players operate.