Skip to content

Ultimate Owners (Reelle ejere)

Only interested in the ownership structure?

This is an older version of the Ultimate Ownership functionality. While still useful for some cases that focus heavily on ultimate ownership, it may be beneficial for you to use the updated Ownership Structure API, which returns data more suitable for display.

This module allows you to retrieve the graph of ownership for a company or a person, with calculations on how much a person or company owns of another company. Depending on your request, the output differs slightly. If you retrieve the ultimate ownership of a person, you will receive the graph of ownership a person has, while a company will give you the people/companies who are the ultimate owners of a company.

Please note that in CVR, ownership is registered as predefined ranges (e.g. 25-33.32%), rather than exact percentages. For this reason, our calculations have a minimum and maximum value. Also note that ownership consists of both actual ownership percentages, and vote right percentages.

The endpoint is the following, replacing LASSOID with a Lasso Id.

GET api.lassox.com/modules/ultimateowners/LASSOID
GET api.lassox.com/modules/ultimateowners/CVR-1-34580820

Ultimate Owners (Company)

When you retrieve the ultimate owners of a company, you get the full upwards ownership tree available. This usually ends in a number of people, but can also end in a company if no further ownership information is available.

Consider the following example:

Ultimate Ownership of a company

As shown above, Person A owns 100% of two companies, B and C, which in turn own 25-33.32% and 50-66.66% of Company A, for a grand total of 75-100% ownership of Company A by person A. Person B owns 100% of Company D that owns 25% of Company A, giving him/her an ownership of 25-33.32% of Company A.

JSON data representing the example above
[{
        "paths": [
            {
                "name": "Person A",
                "identifier": "111111111111",
                "type": "PERSON",
                "ownership": {
                    "ownership": {
                        "ownership": null,
                        "name": "Company A",
                        "type": "VIRKSOMHED",
                        "identifier": "11111111",
                        "totalOwnerPercentageMin": 0.25,
                        "totalVotePercentageMin": 0.25,
                        "totalOwnerPercentageMax": 0.3332,
                        "totalVotePercentageMax": 0.3332,
                        "ownerPercentageMin": 0.25,
                        "ownerPercentageMax": 0.3332,
                        "votePercentageMin": 0.25,
                        "votePercentageMax": 0.3332
                    },
                    "name": "Company B",
                    "type": "VIRKSOMHED",
                    "identifier": "22222222",
                    "totalOwnerPercentageMin": 0.25,
                    "totalVotePercentageMin": 0.25,
                    "totalOwnerPercentageMax": 0.3332,
                    "totalVotePercentageMax": 0.3332,
                    "ownerPercentageMin": 1.0,
                    "ownerPercentageMax": 1.0,
                    "votePercentageMin": 1.0,
                    "votePercentageMax": 1.0

                }
            },
            {
                "name": "Person A",
                "identifier": "111111111111",
                "type": "PERSON",
                "ownership": {
                    "ownership": {
                        "ownership": null,
                        "name": "Company A",
                        "type": "VIRKSOMHED",
                        "identifier": "11111111",
                        "totalOwnerPercentageMin": 0.5,
                        "totalVotePercentageMin": 0.5,
                        "totalOwnerPercentageMax": 0.6666,
                        "totalVotePercentageMax": 0.6666,
                        "ownerPercentageMin": 0.5,
                        "ownerPercentageMax": 0.6666,
                        "votePercentageMin": 0.5,
                        "votePercentageMax": 0.6666,
                    },
                    "name": "Company C",
                    "type": "VIRKSOMHED",
                    "identifier": "33333333",
                    "totalOwnerPercentageMin": 0.5,
                    "totalVotePercentageMin": 0.5,
                    "totalOwnerPercentageMax": 0.6666,
                    "totalVotePercentageMax": 0.6666,
                    "ownerPercentageMin": 1.0,
                    "ownerPercentageMax": 1.0,
                    "votePercentageMin": 1.0,
                    "votePercentageMax": 1.0
                }
            }
        ],
        "name": "Person A",
        "identifier": "111111111111",
        "type": "PERSON",
        "totalOwnerPercentageMin": 0.75,
        "totalVotePercentageMin": 0.75,
        "totalOwnerPercentageMax": 0.9998,
        "totalVotePercentageMax": 0.9998
    },
    {   
        "paths": [
            {
                "name": "Person B",
                "identifier": "222222222222",
                "type": "PERSON",
                "ownership": {
                    "ownership": {
                        "ownership": null,
                        "name": "Company A",
                        "type": "VIRKSOMHED",
                        "identifier": "11111111",
                        "totalOwnerPercentageMin": 0.25,
                        "totalVotePercentageMin": 0.25,
                        "totalOwnerPercentageMax": 0.3332,
                        "totalVotePercentageMax": 0.3332,
                        "ownerPercentageMin": 0.25,
                        "ownerPercentageMax": 0.3332,
                        "votePercentageMin": 0.25,
                        "votePercentageMax": 0.3332
                    },
                    "name": "Company D",
                    "type": "VIRKSOMHED",
                    "identifier": "44444444",
                    "totalOwnerPercentageMin": 0.25,
                    "totalVotePercentageMin": 0.25,
                    "totalOwnerPercentageMax": 0.3332,
                    "totalVotePercentageMax": 0.3332,
                    "ownerPercentageMin": 1.0,
                    "ownerPercentageMax": 1.0,
                    "votePercentageMin": 1.0,
                    "votePercentageMax": 1.0
                }
            }
        ],
        "name": "Person B",
        "identifier": "222222222222",
        "type": "PERSON",
        "totalOwnerPercentageMin": 0.25,
        "totalVotePercentageMin": 0.25,
        "totalOwnerPercentageMax": 0.3332,
        "totalVotePercentageMax": 0.3332
    },

]

To represent this data as JSON, we return a list of ultimate owners, Person A and Person B, with a list of recursive objects ending in Company A:

[
    {
        "paths": [ // Paths from this person or company to the target company
            {
                "name": STRING, // Name of the person or company (same as the name in the outermost object, as this is the "start".)
                "identifier": STRING,  // Identifier for person or company
                "type": STRING, // "VIRKSOMHED" or "PERSON"
                "ownership": { // Company that this person or company owns.
                    "ownership": {..} // Recursive object of same type (or null)
                    "name": STRING, // Name of company 
                    "identifier": STRING, // Identifier for person or company
                    "totalOwnerPercentageMin": DECIMAL, // Minimum ownership percentage the previous level owns of the target company through this path.
                    "totalVotePercentageMin": DECIMAL, // Minimum vote right percentage the previous level has over the target company through this path.
                    "totalOwnerPercentageMax": DECIMAL, // Maximum ownership percentage the previous level owns of the target company through this path.
                    "totalVotePercentageMax": DECIMAL, // Maximum vote right percentage the previous level has over the target company through this path.
                    "ownerPercentageMin": DECIMAL, // Minimum ownership percentage previous level has over this company directly.
                    "ownerPercentageMax": DECIMAL, // Maximum ownership percentage previous level has over this company directly.
                    "votePercentageMin": DECIMAL, // Minimum vote right percentage previous level has over this company directly.
                    "votePercentageMax": DECIMAL // Maximum vote right percentage previous level has over this company directly.
                }
            }
        ],
        "name": STRING, // Person or company name
        "type": STRING, // "VIRKSOMHED" or "PERSON"
        "identifier": STRING // Person or company id
        "totalOwnerPercentageMin": DECIMAL, // Combined minimum total ownership percentage through all paths of the target company.
        "totalVotePercentageMin": DECIMAL, // Combined minimum total vote right percentage through all paths of the target company.
        "totalOwnerPercentageMax": DECIMAL,  // Combined maximum total ownership percentage through all paths of the target company.
        "totalVotePercentageMax": DECIMAL, // Combined maximum total vote right percentage through all paths of the target company.
    }
]

If you are only interested in the total ownership percentages, you can safely ignore the whole paths object and go straight to the combined totals at the bottom.

In many cases, all ownership cannot be certainly accounted for. In those cases, we will add an "UNKNOWN"-owner that represents the potentially missing ownership.

Ultimate Ownership (Person)

When we retrieve ultimate ownership for a person, we retrieve all companies that that person owns through any of his companies.

As an example, look at the following:

A persons ultimate ownership

The above picture depicts a person who owns Company A completely, which in turns owns two companies, with 20-24.99% ownership of Company B, and 15-19.99% ownership of Company C.

JSON data representing the example above
[   
    {
        "paths": [
            {
                "information": {
                    "name": "Person",
                    "identifier": "1111111111",
                    "type": "PERSON"
                },
                "ownership": {
                    "company": {
                        "information": {
                            "name": "Company A",
                            "identifier": "11111111",
                            "type": "VIRKSOMHED"
                        },
                        "ownership": null
                    },
                    "totalOwnerPercentageMin": 1.0,
                    "totalVotePercentageMin": 1.0,
                    "totalOwnerPercentageMax": 1.0,
                    "totalVotePercentageMax": 1.0,
                    "ownerPercentageMin": 1.0,
                    "ownerPercentageMax": 1.0,
                    "votePercentageMin": 1.0,
                    "votePercentageMax": 1.0
                }
            }
        ],
        "name": "Company A",
        "identifier": "11111111",
        "type": "VIRKSOMHED",
        "totalOwnerPercentageMin": 1.0,
        "totalVotePercentageMin": 1.0,
        "totalOwnerPercentageMax": 1.0,
        "totalVotePercentageMax": 1.0
    },
    {
        "paths": [
            {
                "information": {
                    "name": "Person",
                    "identifier": "1111111111",
                    "type": "PERSON"
                },
                "ownership": {
                    "company": {
                        "information": {
                            "name": "Company A",
                            "identifier": "11111111",
                            "type": "VIRKSOMHED"
                        },
                        "ownership": {
                            "company": {
                                "information": {
                                    "name": "Company B",
                                    "identifier": "22222222",
                                    "type": "VIRKSOMHED"
                                },
                                "ownership": null
                            },
                            "totalOwnerPercentageMin": 0.20,
                            "totalVotePercentageMin": 0.20,
                            "totalOwnerPercentageMax": 0.2499,
                            "totalVotePercentageMax": 0.2499,
                            "ownerPercentageMin": 0.2,
                            "ownerPercentageMax": 0.2499,
                            "votePercentageMin": 0.2,
                            "votePercentageMax": 0.2499
                        }
                    },
                    "totalOwnerPercentageMin": 1.0,
                    "totalVotePercentageMin": 1.0,
                    "totalOwnerPercentageMax": 1.0,
                    "totalVotePercentageMax": 1.0,
                    "ownerPercentageMin": 1.0,
                    "ownerPercentageMax": 1.0,
                    "votePercentageMin": 1.0,
                    "votePercentageMax": 1.0
                }
            }
        ],
        "name": "Company B",
        "identifier": "22222222",
        "type": "VIRKSOMHED",
        "totalOwnerPercentageMin": 0.20,
        "totalVotePercentageMin": 0.20,
        "totalOwnerPercentageMax": 0.2499,
        "totalVotePercentageMax": 0.2499
    }, 
    {
        "paths": [
            {
                "information": {
                    "name": "Person",
                    "identifier": "1111111111",
                    "type": "PERSON"
                },
                "ownership": {
                    "company": {
                        "information": {
                            "name": "Company A",
                            "identifier": "11111111",
                            "type": "VIRKSOMHED"
                        },
                        "ownership": {
                            "company": {
                                "information": {
                                    "name": "Company C",
                                    "identifier": "33333333",
                                    "type": "VIRKSOMHED"
                                },
                                "ownership": null
                            },
                            "totalOwnerPercentageMin": 0.150,
                            "totalVotePercentageMin": 0.150,
                            "totalOwnerPercentageMax": 0.1999,
                            "totalVotePercentageMax": 0.1999,
                            "ownerPercentageMin": 0.15,
                            "ownerPercentageMax": 0.1999,
                            "votePercentageMin": 0.15,
                            "votePercentageMax": 0.1999
                        }
                    },
                    "totalOwnerPercentageMin": 1.0,
                    "totalVotePercentageMin": 1.0,
                    "totalOwnerPercentageMax": 1.0,
                    "totalVotePercentageMax": 1.0,
                    "ownerPercentageMin": 1.0,
                    "ownerPercentageMax": 1.0,
                    "votePercentageMin": 1.0,
                    "votePercentageMax": 1.0
                }
            }
        ],
        "name": "Company C",
        "identifier": "33333333",
        "type": "VIRKSOMHED",
        "totalOwnerPercentageMin": 0.150,
        "totalVotePercentageMin": 0.150,
        "totalOwnerPercentageMax": 0.1999,
        "totalVotePercentageMax": 0.1999
    }
]

The object for describing the graph for a persons ultimate ownership looks like this:

[
    {
        "paths": [ // The paths this person owns this company through
            {
                "information": {
                    "name": STRING, // Name of the person as this is the first level.
                    "identifier": STRING, // Id of the person
                    "type": STRING // "PERSON"
                },
                "ownership": { // The company that this person owns in the next level.
                "company": {
                        "information": {
                            "name": STRING, // Name of the company
                            "identifier": STRING, // Identifier of the company (CVR)
                            "type": STRING // "VIRKSOMHED".
                        },
                        "ownership": {..} // Recursive object of same type (or null) 
                    },
                    "totalOwnerPercentageMin": DECIMAL, // Minimum ownership percentage the previous level owns of the target company through this path.
                    "totalVotePercentageMin": DECIMAL, // Minimum vote right percentage the previous level has over the target company through this path.
                    "totalOwnerPercentageMax": DECIMAL, // Maximum ownership percentage the previous level owns of the target company through this path.
                    "totalVotePercentageMax": DECIMAL, // Maximum vote right percentage the previous level has over the target company through this path.
                    "ownerPercentageMin": DECIMAL, // Minimum ownership percentage previous level has over this company directly.
                    "ownerPercentageMax": DECIMAL, // Maximum ownership percentage previous level has over this company directly.
                    "votePercentageMin": DECIMAL, // Minimum vote right percentage previous level has over this company directly.
                    "votePercentageMax": DECIMAL // Maximum vote right percentage previous level has over this company directly.

                }
            }
        ],
        "name": STRING, // Name of the company that the person owns
        "identifier": STRING, // Identifier of the company that the person owns (CVR)
        "type": STRING, // "VIRKSOMHED"
        "totalOwnerPercentageMin": DECIMAL, // Combined minimum total ownership percentage through all paths of the target company.
        "totalVotePercentageMin": DECIMAL, // Combined minimum total vote right percentage through all paths of the target company.
        "totalOwnerPercentageMax": DECIMAL,  // Combined maximum total ownership percentage through all paths of the target company.
        "totalVotePercentageMax": DECIMAL, // Combined maximum total vote right percentage through all paths of the target company.
    }
]

Like with companies, if you are only interested in a list of companies a person owns at any level, you can ignore the paths object and go straight to the combined values at the bottom.