Это очень плохая практика - полагаться на компиляцию кода для изменения вашей системы. Вы можете также сказать, что «правила могут быть изменены в любое время, все, что вам нужно, это разработчик».
Если вы определите свои правила, вы можете сохранить параметры в БД и применить их с кодом, который читает их во время выполнения. Ваш код будет более сложным, но это цена, которую мы платим за конфигурацию.
Вам необходимо определить правила - то есть формально сказать, какие параметры могут быть использованы, и как их можно применять.
например. если посещаемость 90% означает вычет 5%, то вы сохраните эти 2 значения в БД. Ваш код затем получит фактическую посещаемость, найдет соответствующую строку и применит вычет. Если ваши правила не настолько сложны, что их нельзя смоделировать с помощью таких параметров, как использование системы конфигурации, это лучший способ для продолжения. Затем вы можете предоставить пользователям простой графический интерфейс для настройки значений в правилах.