Not sure how involved you want to get, but a while back I needed a way to track profitability by customer. Not everything is invoiced through AR/SO invoicing (I use Timeslips for billing as well with a export to Sage GL). So I created a UDT to list all of my clients (used their company code as the key). Then in every module (AP, AR, SO, PO and GL), I created a company code UDF in line entry (e.g. cash receipts entry), validated against the UDT and flowed the UDF to the GL detail posting table. I use an Excel query to pull detail transactions whenever I want to see profitability (of course I summarize with a Pivot table). To a little time to set the UDF's, but it has worked well for five plus years. In addition to cash receipts, I would think a code in your billing module would be necessary as well.