The routing algorithm used to find the various hops towards a final destination payment will also impact your resulting fee. Due to channel exhaustion (an imbalance in a channel), the routing algorithm will look for paths where transacting users get paid because the transaction would be rebalancing channels along the way. In some cases, fees on Lightning may be negative.