I think this is actually just the very classic challenges of turning business rules into clean code. Business rules tend to have lots of conditions, need lots of domain data and have a lot of magic values. Outside of this, they also tend to change a lot. Especially the magic values that for example can have annual indexing moments.
There are some solid tools for solving those challenges. A lookup with values is one of them (I think that there are simpler implementations of them than shown in this post, but I'm not a Java expert). Lookups also have the advantage of being able to be turned into a config file outside of the code.
Another one I particularly like is a rule engine. It has some starting overhead, but that part is easily abstracted away and the concept of rules that are tested and applied in an order is 1) easy to reason about 2) hard to turn into a mess because you don't have a single place for a pine tree to grow. And if you go a bit further, you can describe your rule engine definition in a config file (with the magic values extracted into said file) and have a system that is very resistant to (small) changes over time.