I've been thinking about this old discussion a lot lately:
It came up again recently here:
I just had a combination of customer moves. There were 3 moves, #1 left the area, #2 moved their account to the old #1 location, and #3 moved to the old #2 location leaving the old #3 vacant. This leaves either a mess in Sonar, or results in loss of data to keep the system clean.
As discussed previously, the problem with the current system is having to lock a customer and a service location together as one entity. With this model, one can't very well change the address of an account [because it retains historical hardware data], nor can one change the name on an account [because it retains the payment information and history]. The system seems more customer based now, and the some previous suggestions have been to switch to a more location based system. I think the innovative solution would be a combination.
The system should have separate "location" entries and "customer" entries. Then, when an account is live, the location is locked to a customer and would behave mostly as it does now. When an account is disabled, there would be the opportunity to separate the customer from the location.
Sure, there are some challenges with address verification, but "possible duplicate account" results are currently reasonable. I think the benefit of this feature would FAR outweigh the risks of duplicate account locations.
Again, I am not concerned about the duplicate location risks. This change would be a significant improvement overall. You could even offer the option to always lock customers and locations for someone who did not want the improved feature.
Right now, if the customer moves, you need to create a new account for them, or surgically modify the current account a bit to change the hardware and location, while leaving the old hardware orphaned unless it is collected (Most often I find it is more expensive to collect an installed system than to leave it for the next owner).
With a divided system, the customer would be separated from the location, and would be joined to a new location. All of the customer payment information, notes, and history would be retained. In a similar way, the new resident would tie to the old hardware and the old troubleshooting notes and all of the historical equipment information.
Separately, this model would likely change the concept of a "sub account". Instead of a sub account of a main account, a customer entity could be tied to multiple locations.
I currently have mostly WISP based customers which expands in a more organic fashion than FTTx. I'm looking at some FTTH opportunities, and it would be very good to import every location with an existing drop regardless of whether the customer is taking service. Then, when a customer calls, the equipment and serviceable location is already in the system can then be tied to that customer.
Of all the things I really really want, I think this is actually important.