You should have more than one point of data. How many software systems? How old were they? How many contributors? How many bugs in each? Were any of them green field?
Dude, you have already made up your mind, so I am not going to do any homework for you that you yourself aren't performing. You are not my boss, or anyone's boss here
Amusingly, you don't know my actual stance. Which is probably closer to pro static types than to dynamic.
My criticisms in this thread is that the static type brigade does not hinge on evidence. It is typically hollow claims and getting angry at dynamic languages for being obviously bad for lack of helping.
Hard evidence is hard to obtain for something as varied and unrigorous as software.
After 25 years of working on all kinds of codebases I’ll take even badly engineered statically typed code over dynamic any day of the week including Sunday.
Badly designed software with terrible class structure (FooModel, FooSchema, FooSpec, FooSchemaSpec, FooSchemaSingle, FooSpecContainer with inexplicable relations between them) is way worse than a well designed non-explicitly-typed software.