# SCTID Constraints

The permissible value for the [SCTID](https://docs.snomed.org/snomed-ct-specifications/snomed-ct-release-file-specification/appendices/appendix-b.-specification-reference-information/s/sctid-data-type)s are limited by the following rules:

* Only positive integer values that are greater than 105 and less than 1018 are permitted.
* The only valid [string](https://docs.snomed.org/snomed-ct-specifications/snomed-ct-release-file-specification/appendices/appendix-b.-specification-reference-information/s/string-data-type) renderings of the identifier value are String of decimal digits (0-9), commencing with a non zero digit.
* The second and third digits from the right hand end of the string rendering of the identifier must match one of the partition-identifier values specified in this guide.
* The rightmost digit of the string rendering is a check-digit and must match the value calculated using the specified check-digit computation.

{% hint style="info" %}
**Note**

* As a result of these rules, many 64-bit integers are not valid SCTIDs. The value limitations enable any valid SCTID to be stored in either a signed or unsigned 64-bit integer.
* The rules also ensure that an SCTID can be distinguished from code from one of the antecedent code systems Read Codes(which are 4 or 5 characters in length) and legacy Identifiers from SNOMED RT and it predecessors (which always start with a letter).
* SNOMED RT identifiers are SCTIDs identical to those used in SNOMED CT but in some cases will now refer to inactive concepts. In these cases, data in the [900000000000489007 |Concept inactivation indicator reference set|](http://snomed.info/id/900000000000489007) and [900000000000522004 |Historical association reference set|](http://snomed.info/id/900000000000522004) can be used to find the identifier of the closest equivalent active concept.
  {% endhint %}

{% hint style="danger" %}
**Warning**

In some systems and frameworks the default numeric data type is a floating point representation according to IEEE 754. For example, as of today in JavaScript the number type (by default) is a double precision floating precision data type allowing representation of 53-bit integers, which is not sufficient for SCTIDs.

It is recommended that you specify a 64-bit integer type for representing SCTIDs rather than using a default numeric data type. Where a 64-bit integer data type is not available, please use a string data type to represent the SCTIDs.
{% endhint %}

<a href="https://docs.google.com/forms/d/e/1FAIpQLScTmbZIf0UEQwYDkY27EEWBkaiYkHSbR0_9DmFrMLXoQLyL7Q/viewform?usp=pp_url&#x26;entry.1767247133=Release+File+Specification&#x26;entry.670899847=SCTID%20Constraints" class="button primary">Provide Feedback</a>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.snomed.org/snomed-ct-specifications/snomed-ct-release-file-specification/snomed-ct-identifiers/6.3-sctid-constraints.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
