Вычисление параметров прибыли и убытков
Есть система вычислений, которая, зная base_price_wo_vat (эта часть всегда имеет одно и то же значение), запрашивая retro_otn (процент ретро бонуса, пишется как 0.4? например) и price_shelf (цену на полке), вычисляет в конечном итоге total_margin_otn и попутно еще часть промежуточных параметров.
Вопрос: как, зная эти отношения параметров, сделать так, чтобы программа могла еще вычислить price_shelf, если известны front_margin_otn,
base_price_wo_vat (он неизменен) и retro_otn?
base_price_wo_vat = 438.89
base_price = base_price_wo_vat * 1.2
retro_otn = float(input('Введите суммарный ретро бонус без учета ЖЦ '))
retro_abs = base_price_wo_vat * retro_otn
price_shelf = float(input('Введите необходимую цену на полке '))
front_margin_abs = price_shelf - base_price
front_margin_otn = front_margin_abs / base_price
total_margin_abs = retro_abs + front_margin_abs
total_margin_otn = total_margin_abs / price_shelf
print('Общая маржа клиента равна', (round(total_margin_otn, 2))*100, '% ')
print('Фронт маржа клиента равна', (round(front_margin_otn, 1))*100, '% ', 'при бэке в ', (round(retro_otn, 2))*100, '% ', 'от товарооборота без НДС')