Is this protection circuit designed properly?
What you didn't see is that with 20V applied minus the volt drop of the 1N5819 (leaving maybe 19.3 volts), there will be 19.3 volts applied across two series zeners that don't want a terminal voltage greater than 16.6 volts. This will equal smoke.

The other thing is the an LED might have a forward volt drop of 1.5 volts before it starts glowing and, with below 14.5 volts (plus the forward volt drop of the 1N5819) applied at the input your red LED won't light.

You should also put a bleed resistor across the yellow LED to prevent it getting reverse biased when off - check its spec - it probably has a max reverse voltage under 10V - you can't 100% relay in the 1N4007 for doing this.



EDIT SECTION

You could use the LTC4367 - 100V Overvoltage, Undervoltage and Reverse Supply Protection Controller. It's programmable with resistors to set at which point the over-voltage circuit begins. Here's a typical 24v example: -




If you don't want to use this at least look at the depth of the specifications regarding what happens when O-V and U-V kick-in. There isn't a biblical amount to write down or consider but there's a lot more than you have done so far.

By the way, it's unreasonable to expect the output to be 15V with inputs that range from 15V to 20V - there will be a volt drop BUT, if you are prepared to attach a buck boost regulator to the output of the above chip then you should be in business and you could get 15V out with the input at 10V.