This was a complicated feature to implement well. When a row is reordered, only that row should be updated in the database, not every row after it. To make that possible, we developed a
lexicographical sorting algorithm that performs a reorder with a single database write, rather than updates to potentially every row in the table.
The feature was also difficult because the ordering of rows in a production budget means something: it determines how Markups are applied and how Groups are constructed, among other things.