Last month, OpenCorporates launched WhoControlsIt, a proof-of-concept, open-source ‘Beneficial Ownership’ register. This post explains some of the concepts and data issues behind the register – which sounds geeky, but is essential for everyone involved in this area to understand (we’ve kept the references to code to almost zero), and we hope we’ve succeeded in making it understandable for all. Comments welcome!
What do we mean by beneficial ownership and control? Well, we called the register ‘Who Controls It‘ for a reason — it’s about recording and displaying who controls companies, so that everyone may “know on what grounds he is dealing” to use the words of Robert Lowe, who introduced the 1856 Companies Act and later became UK Chancellor of the Exchequer. In other words every time we deal with a company, whether as a consumer, employee, supplier, regulator, we should be able to have enough information on who’s behind the company to know who we’re doing business with.
But how do we represent this as data? What information do we need, and how do we store this in a way so that it accurately represents the real-world situation. The temptation might be to store this as an ‘attribute’ of the company: “Company A’s beneficial owner is ‘John Smith'”. However, this would be a big mistake, as the owner is not just a collection of letters, but a living human being (or at least they should be alive, although, as Global Witness’s Grave Secrecy Report showed, that’s not always the case).
We need to represent the owner as a record of its own, so that further data (e.g. address, nationality) can be stored, and so that we can link this record to other companies or people, and run business rules on it. Similarly the relationship between the person and the company needs to be represented as a distinct object. It too can have many different attributes (or qualities), including start date, end date and source of the data. In geek speak, these need to be First-Class data models.
In fact it might look something like this:
Let’s take a typical situation (call it Scenario A) of a UK private limited company, Chrinon Ltd (the company behind OpenCorporates). This has two shareholders, Chris Taggart and Rob McKinnon. Chris owns 360 shares (90% of the total) and Rob owns 40 (10% of the total). Here it seems fairly simple – Chris controls Chrinon due to owning the majority of the shares.
So that’s simple: Chris, a person, has a ControlRelationship over Chrinon.
But wait, what if things were a little more complex. What if (scenario B) Rob and Chris had a side agreement that Chris would always vote the way Rob did. In this case Rob would control Chrinon, but not via a shareholding but through contract or Agreement. Similarly Rob might be the only director and might exercise control in that way.
Or there might be (scenario C) a shadowy Mr Big controlling Chrinon Ltd and Chris might be just a figurehead, getting just a fee for doing so. In this case Mr Big would be control Chrinon by way of a nominee agreement. (Nominee agreements aren’t sinister in themselves and are actually very common for listed companies, as most individuals who own shares in major listed companies do so through nominee agreements with the broker/trading platform.)
In fact there are a variety of ways of exercising control, and it’s important that we not only capture who is controlling the company (and it may be more than one person), but how they are doing so too. Without doing this we are left with ‘black-box’ data, difficult to check (and hence vulnerable to lies and errors), and with key data missing – precisely the sort of situation fraudsters and criminals thrive in.
Our first go at modelling this (above) is a pretty simple one to grasp, but it’s losing a lot of detail, and means it’s also difficult to handle situations such as Scenario B or Scenario C, where the control is through a ‘chain’ of relationship links. In the case where Rob has an agreement with Chris, what is the mechanism of Rob’s control of Chrinon? A Shareholding Relationship? An Agreement Relationship? An ‘It’s Complicated’ Relationship? The same situations occur with Mr Big, and get even worse if he controls Chris through another company, or another person.
So this is how, initially, we are modelling the control in Who Controls It, through a sequence of the following links.
In this way can can capture not only Scenario A, but also B and C too. In Scenario A this is effectively the same as before. Chris is the Controlling Entity and controls Chrinon Ltd via a ControllingRelationship of type shareholding.
In case B we have two such mappings.
Rob has an ControlRelationship (of type VotingAgreement) over Chris
Chris has a ControlRelationship (of type Shareholding) with Chrinon as in A.
So we can see that Chrinon is controlled by Rob, through this relationship chain.
In this way we don’t lose any of the detail, and has two additional advantages. First it ties in neatly to existing relationships in OpenCorporates. Second it means we can capture the provenance (the document/proof that shows this) for each part of the chain, and even update parts of the chain independently from other parts..
For this first iteration of the register we’ve just implemented simple Shareholding Relationship (and not nominees or voting arrangements), but with your help will add future ones.
We think we should also have a beneficial ownership marker somewhere, so that the fact that for example in Scenario A we can mark that Chris is indeed the Beneficial Owner of Chrinon Ltd (and not just a front for someone else). Should this go on the record for Chris or on the relationship? We think probably the former, even though this may appear to cause problems when Chris is the beneficial owner of multiple companies. We’ll explain why in a subsequent post.
Of course, there are still many outstanding questions, such as what happens when there are multiple owners of share parcels, or multiple ownership routes (person A controls company D through companies B & C, each of which has, say 30% of the shares of D, but together adds up to controlling 60% of the shares). The answer is we’re still figuring this out – join us on this journey, and let’s make this not just the most open register but the most accurate. We’ll be holding a hack event in Berlin tomorrow to do just that, but do join us remotely if you can’t make it – here’s a link to the code and we’ll be on twitter throughout the event.