# 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>
