Alphabet completion rate
Python 3, 42 bytes



lambda s:len({*s.upper()}-{*s.lower()})/26


Try it online!

We filter all the non-alphabetic characters out of the string by taking the (set) difference of the uppercase and lowercase representations. Then, we take the length and divide by 26.

Python 3, 46 bytes

lambda s:sum(map(str.isalpha,{*s.lower()}))/26


Try it online!

Count the unique alphabetic (lowercase) characters, and divide by 26. In Python 2 it would require 3 more characters; two for changing {*...} to set(...), and one for making 26 a float: 26., to avoid floor division.

Python 3, 46 bytes

lambda s:sum('`'&lt;c&lt;'{'for c in{*s.lower()})/26


Try it online!

Same length, essentially the same as the previous one, but without "built-in" string method.