Хабр Курсы для бэкендеров
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!

То что вы описали это близко к поэтапному методу распределения затрат, а для программной реализции гораздо удобнее метод взаимного распределения. При его использовании задача сводится к составлению системы линейных уравнений которая уже быстренько решается. Точно размеры матрицы смежности которая у нас получалась я уже не вспомню, но до момента как начали использовать тот же подход для расчета подетальной себестоймости весь расчет был реализован на стороне БД, потом уже пришлось для решения СЛАУ прикрутить вызов umfpack
Последовательное иерархическое распределение сумм. Создание БД. Распределение сумм по правилам средствами PostgreSQL