The problem is that the various separate telcos, back when CNID first became plausable, did NOT want to send it back and forth from company to company. So after quite a bit of this stupidity, the FCC stepped in and ordered them to send it over, no questions asked, and no game playing. However....
.. However, the FCC order only mandated that the originating telco send across the phone _NUMBER_. (To be fair remember that this was in the relatively early days of Caller ID).
So... the way the process works nowadays if that (when things are working correctly), the originating telco, as part of the call setup, sends over the _number_. The recipient telco takes that number and does a database "dip" to find the corresponding name. (The process is just about instantaneous and doesnt delay call processing).
The problem is that the owners of the database don't give this info out for free. While the best and most accurate info will be at the originating telco (which, remember, did send the number...), it's also generally the most expensive source.
Additionally, some originating telcos, especially those providing non traditional connections, may not even have the infrastructure to provide that info. Or may simply provide a generic "cell phone call" or similar vagueness.
So... there are all sorts of third party, and cheaper, data services that have sprung up. The recipient telco will often use one of these.... save itself some money, and give the person you're calling a name that could easily be six months old. Or completely mangled.
The people you're calling have to complain to _their_ telcos and also to the various oversight agencies, pointing out that they're not getting the service (complete and accurate caller ID) that they're paying for.
Just a WAG, but since the destination phoneco has to pay for the data dip to get the name, it would probably make financial sense for them to cache it, and to assume that if phone number xxxx had a given name yesterday, it will have the same name today.
I went through this with Comcast. When I called a telephone line provisioned by Comcast, the wrong name showed up. Comcast refused to purge its cache, even though I requested it. I'll guess that the reason is what Danny said, that it would result in them having to pay for another database dip.
Comcast insisted on creating the name record in its own database, which they aren't supposed to do.
There's something about number porting that doesn't result in the usual "line disconnected" notice from the original phone company to all the other databases that they notify. Just got an automated call the other day from the delivery side of the "official" phone book publisher, thinking that my ported number was still a main land line telephone number.
I've been reading this thread on Old Caller ID, and realizing just how much I don't know about Caller ID -- likely because I'm a seriously old "Old Caller" myself (nearing 8 decades of calling) and have gotten seriously out of touch.
My uninformed understanding has always been that Caller ID just delivers the caller's phone number to the callee's phone; but apparently it can deliver significantly more information than that . . . ?
So, who inputs this additional information, or is allowed to input additional information? And how, and when? What and where is this mysterious database that telcos are allowed to "dip" into to get this information? When did it come into existence? And who can "poke" new info into it?