code: def _check_mod_11_2(numeric_string):
      # type: (Text) -> bool
      
      # Strip -
      nums = numeric_string.replace("-", "")
      total = 0
      # skip last (check)digit
      for num in nums[:-1]:
          digit = int(num)
          total = (total+digit)*2
      remainder = total % 11
      result = (12-remainder) % 11
      if result == 10:
          checkdigit = "X"
      else:
          checkdigit = str(result)
      # Compare against last digit or X
      return nums[-1].upper() == checkdigit
docs: Validate numeric_string for its MOD-11-2 checksum.
  
      Any "-" in the numeric_string are ignored.
  
      The last digit of numeric_string is assumed to be the checksum, 0-9 or X.
  
      See ISO/IEC 7064:2003 and
      https://support.orcid.org/knowledgebase/articles/116780-structure-of-the-orcid-identifier