Description
The SP code group is defined in 3GPP TS 21.905 and TS 22.022 as the combination of the SP code and the associated network code. It represents a unique identifier for a Service Provider (SP) within the context of a specific mobile network. The SP code group is stored in the GID1 file on the SIM/USIM and is also stored on the Mobile Equipment (ME). Its primary role is to enable the ME to recognise which service providers are associated with which networks, thereby facilitating correct network selection and supporting personalisation features.
The network code component of the SP code group typically consists of the Mobile Country Code (MCC) and Mobile Network Code (MNC), which together identify the Public Land Mobile Network (PLMN). The SP code component is a code assigned to the service provider. By combining these two elements, the SP code group provides a globally unique reference for a service provider's presence on a particular network. This is particularly important for Mobile Virtual Network Operators (MVNOs), which do not own radio spectrum but provide services over a host network. The SP code group allows the MVNO to be uniquely identified even though it shares the host network's PLMN.
The GID1 file on the SIM/USIM can contain multiple SP code group entries, allowing a single SIM to be associated with several service providers or networks. The ME reads these entries and stores them in its memory. During network selection, the ME can compare the PLMN identity of a candidate network with the network code part of the stored SP code groups. If a match is found, the ME knows that the network is associated with a service provider for which the SIM has a subscription, and it can apply any relevant policies, such as preferring that network or allowing access under specific conditions.
In addition to network selection, the SP code group is used for ME personalisation. A service provider may subsidise a handset and lock it to its network. The ME stores the SP code group(s) that it is locked to. When a SIM is inserted, the ME checks whether the SIM's GID1 file contains a matching SP code group. If not, the ME may restrict access to the network or refuse to operate. This mechanism protects the commercial interests of service providers and ensures that subsidised devices are used with the intended service.
The SP code group is part of a broader framework of (U)SIM-based identifiers and procedures standardised by 3GPP. It is closely related to the SP code, the GID1 file, and the network code. While the SP code alone identifies a service provider, the SP code group provides the necessary context (the network) to make that identification unique. This combination is essential for multi-operator and multi-service-provider environments, where a single network may host multiple service providers, and a single service provider may operate across multiple networks.
From a technical perspective, the SP code group is a simple data structure, but its implications for network selection, roaming, and device personalisation are significant. It enables flexible business models and ensures that devices and SIMs can be correctly matched to the intended service provider, enhancing the user experience and protecting commercial agreements.
Purpose & Motivation
The SP code group was created to provide a unique and unambiguous identifier for a service provider within a specific network. While the SP code alone identifies a service provider, it lacks the context of the network on which the service is provided. Since a service provider may operate on multiple networks (e.g., through roaming agreements or MVNO partnerships), and a single network may host multiple service providers, the combination of SP code and network code is necessary to uniquely identify a service provider-network pair. This uniqueness is crucial for correct network selection and for enforcing ME personalisation policies.
Before the introduction of the SP code group, network selection was based solely on PLMN identity, which identifies the network operator but not the service provider. This was insufficient for MVNOs and other service providers that do not own their own network infrastructure. The SP code group, stored in the GID1 file, allows the SIM and the ME to recognise service provider-network combinations, enabling the ME to select the appropriate network and apply any service provider-specific policies. It also supports the commercial practice of device locking, where a subsidised handset is restricted to a particular service provider.
The SP code group thus solves the problem of identifying service providers in a multi-operator environment. It provides a standardised, SIM-based mechanism that is independent of the core network and can be implemented on any ME. Its definition has remained stable across all 3GPP releases from Rel-4 to Rel-19, demonstrating its enduring utility and the stability of the underlying concepts.
What changed in its specifications
The latest release-to-release comparison of specifications that define SP code group. Each summary describes the whole specification, not only this term.
Rel-18 brings only minor changes to TS 21.905: 0 clauses changed, with no change attributed to a release feature.
Full comparison in TR 21.905 →Release Timeline
Evolution Across Releases
An overview written from the defining specifications, not a verified change history. For the exact text, open the specifications listed below.
Defining Specifications
3GPP specifications that define or reference SP code group, with the latest known release. Sourced from the 3GPP document catalog — see methodology.
| Specification | Title | Release |
|---|---|---|
| TR 21.905 vj20 | 3GPP Terminology and Definitions | Rel-19 read |
| TS 22.022 vj00 | ME Personalisation Features for GSM/3G | Rel-19 read |