Tracking Payments from Customers AND 3rd Parties

Tracking Payments from Customers AND 3rd Parties

We make physical upgrades to large apartment buildings: things like LED lighting, high efficiency boilers, solar PV systems, etc. Any given Deal consists of multiple Products, as described above. Each Product has an associated Price. So far, this is all very straightforward. 

In our business, a large portion of our revenue comes from subsidies/incentives such as utility rebates. So every Product will have our Price, but will also have a corresponding Incentive dollar amount coming from a Program. The incentive is typically paid out at the end of the project, and we need to treat that dollar amount as an outstanding balance on the project, even if the Customer has already paid their portion. So for every deal/project, we will have:
- one customer/account
- multiple products, each with their own qty/price
- multiple programs, associated to one or more products, for a given dollar amount

Example Deal: $160,000 contract with customer
  • Product 1: $100,000
    • Program 1: $10,000
    • Program 2: $20,000
    • Program 3: $5,000
  • Product 2: $50,000
    • Program 1: $45,000
    • Program 3: $5,000
  • Product 3:$10,000
    • No Program
We need a way to track the money we expect to receive from these Programs in a similar manner to how we track money owed by our Customers. While we don't actually send out invoices to each Program, we do want to track these funds in the same way we track the flow of money with our Customers:
-What is the amount we expect to receive?
-Has it been "invoiced" and if so, how much?
-Has the payment been received?

Does anyone have any suggestions on how best to handle this? This is pretty critical to our business as apposed to a nice to have, so definitely willing to entertain ideas, even if they are not super straightforward.