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
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?