> ## Documentation Index
> Fetch the complete documentation index at: https://developer.kyckr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ownership Discovery: Denmark Ownership Ranges

> Ownership Discovery now carries Danish ownership bands through the ownership tree as ranges, with lower and upper bounds on edges, rollups, the UBO list and the analysis.

## Overview

The Danish Business Authority records a shareholding as a band, such as 10.00% to 14.99%, rather than as an exact figure. Ownership Discovery, available through the UBO Verify API, now carries each band through the ownership tree as a range with a lower and an upper bound. This lets you see the full span a Danish holding can cover, and how that span affects who is listed as a UBO.

Exact holdings, from Denmark and every other register, are returned as before.

## Updating your integration

* Your integration keeps receiving a single figure for every percentage. For a range, that figure is the upper bound, where earlier results gave the lower bound: a holding registered as 10.00% to 14.99% is returned as 14.99% rather than 10.00%.
* To see the full range, read the range flag beside the figure, such as `percentageIsRangeField` or `rollupPercentageIsRangeField`. When it is `true`, the matching lower and upper bound fields give the range. The range fields appear only on a range, so a figure without them is exact.
* Treat the UBO list as everyone who could reach the threshold, and expect its percentages to total more than 100% where ranges are involved.

### What to expect

For a company with Danish holdings in its ownership tree, the UBO list, the `uboAnalysisField` status and the potential beneficial owner figures can differ from earlier results for the same company, because more owners who could reach the threshold are now listed as UBOs and potential beneficial owner figures follow the upper bound.

## New fields

Wherever a value can be a range, three fields sit beside its single figure: a flag that is `true` for a range, a lower bound and an upper bound.

| Location | Range fields |
| - | - |
| `ownershipTreeField.nodesField[].edgesField[]` | `percentageIsRangeField`, `percentageLowerField`, `percentageUpperField` |
| `ownershipTreeField.nodesField[].edgesField[].shareholdingsField[]` | `percentageIsRangeField`, `percentageLowerField`, `percentageUpperField` |
| `ownershipTreeField.nodesField[]` | `rollupPercentageIsRangeField`, `rollupPercentageLowerField`, `rollupPercentageUpperField` |
| `ownershipTreeField.ultimateBeneficialOwnersField[]` | `percentageIsRangeField`, `percentageLowerField`, `percentageUpperField` |
| `uboAnalysisField.metricsField` | `unpurchasedTotalIsRangeField`, `unpurchasedTotalLowerField`, `unpurchasedTotalUpperField` |
| `uboAnalysisField.potentialBeneficialOwnersField[]` | `currentHoldingIsRangeField`, `currentHoldingLowerField`, `currentHoldingUpperField` |
| `uboAnalysisField.potentialBeneficialOwnersField[]` | `totalOwnershipIsRangeField`, `totalOwnershipLowerField`, `totalOwnershipUpperField` |
| `uboAnalysisField.potentialBeneficialOwnersField[].membersField[]` | `ownershipIsRangeField`, `ownershipLowerField`, `ownershipUpperField` |

The total ownership range applies in every jurisdiction. For a group that may reach the threshold with further profile orders, `totalOwnershipLowerField` is what the group is known to hold and `totalOwnershipUpperField` is the most it could hold once untraced ownership is counted.

`currentHoldingField` is also new, in every jurisdiction: the ownership in the root company already traced to the group's members.

Bounds in the UBO list are strings, such as `"38.33"`, matching the existing `percentageField` there. All other bounds are numbers.

Ownership Discovery names its bounds `percentageLowerField` and `percentageUpperField`. Enhanced Profile shareholders name theirs `percentageLowerLimitField` and `percentageUpperLimitField`, with `percentageField` null for a range.

The [Retrieve Ownership Tree](/api-reference/ubo-verify/retrieve-ownership-tree.md) reference describes every field and includes a full example response with ranges.

## How UBOs are decided

Ownership Discovery compares the upper bound of a range with `uboThresholdField`, so everyone who could hold the threshold is listed in `ultimateBeneficialOwnersField`. The percentages in the UBO list can therefore total more than 100%, as they already can when shares are jointly held.

Coverage metrics take the opposite bound. `uboCoverageField` and `shareholdingCoverageField` count each range at its lower bound, so they report only ownership that is certain to be traced.

## Rounding

Ownership Discovery combines bounds through each ownership chain and adds them across every path that leads to the same entity. It then rounds each result outward to two decimal places: lower bounds down, upper bounds up.

The threshold comparison uses the upper bound before rounding. An owner shown with an upper bound equal to the threshold can therefore fall outside the UBO list.

## Worked example

Jane Example owns all of Example Investment ApS, which holds shares in the root company, Example Root ApS, by two paths:

* directly, a band of 5.00% to 9.99%
* through Example Investment II ApS, which Example Investment ApS owns outright and which holds a band of 33.33% to 49.99%

Adding the two paths gives Example Investment ApS, and so Jane Example, a holding of 38.33% to 59.98% in Example Root ApS. With a threshold of 25%, the upper bound of 59.98% reaches the threshold, so she is listed as a UBO:

```json theme={null}
{
  "ultimateBeneficialOwnersField": [
    {
      "idField": "f1c3e5a7-9b2d-4e6f-8a0c-5d7b9e1f3a28",
      "nameField": "Jane Example",
      "percentageField": "59.98",
      "percentageIsRangeField": true,
      "percentageLowerField": "38.33",
      "percentageUpperField": "59.98",
      "entityTypeField": "PERSON"
    }
  ]
}
```

Her node in `nodesField` carries the same range as numbers:

```json theme={null}
{
  "rollupPercentageField": 59.98,
  "rollupPercentageIsRangeField": true,
  "rollupPercentageLowerField": 38.33,
  "rollupPercentageUpperField": 59.98
}
```

Her lower bound of 38.33% is what she adds to `uboCoverageField`.

## Danish root companies

Registration with the Danish Business Authority is required from 5% ownership, so the registered holdings of a Danish company can total less than 100%. A root company registered in Denmark is exempt from the shareholding coverage check behind `INDETERMINATE_INSUFFICIENT_DATA`, and its analysis continues on the holdings that are registered.

## Additional resources

* [Retrieve Ownership Tree API reference](/api-reference/ubo-verify/retrieve-ownership-tree.md)
* [UBO Verify release note](/company-v1/developer-news/2026-07-ubo-verify-release-note)
* [Denmark company data update](/company-v1/developer-news/2026-07-denmark-update)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.