A while ago I came across this answer that introduced me to the obscure (at least for me) ISO 5218: a standard for representing human sexes (or is it genders? – thanks @Paul).
For a pet project I’m working on I need my database schema to store the skin color of a person, and I’m wondering if a similar standard exists. All my life I’ve heard people using terms such as “White“, “Caucasian“, “Black“, “Blonde“, “Brunette“, “Afro“, “Albino” and so on, but after some research in Wikipedia I’ve realized that everybody is wrong, because those words can all have different meanings:
- White: yeah, it’s a color
- Caucasian: defines the race
- Black: yet another color
- Blonde: skin or hair color
- Brunette: again, skin or hair color
- Afro: “hairdo”?!
- Albino: also represents more than the skin color
The Wikipedia has the following about human races:
- Caucasoid
- Congoid
- Capoid
- Mongoloid
- Australoid
Seriously, Mongoloid?! I don’t know about the connotations of the English language but in my native language (Portuguese) that’s a synonym for a person who suffers from the Down syndrome disorder…
This Wikipedia page also has some interesting additional information:
Johann Friedrich Blumenbach
(1752-1840), one of the founders of
what some call scientific racism
theories, came up with the five color
typology for humans: white people (the
Caucasian or white race), more or less
black people (the Ethiopian or black
race), yellow people (the Mongolian or
yellow race), cinnamon-brown or flame
colored people (the American or red
race) and brown people (the Malay or
brown race).
The problem with using races (besides the horrific names chosen and scientific racism), is that they don’t necessarily represent the skin color of a person… Take the following photo from Wikipedia:
![]()
The most serious attempt I could find to classify skin color is the Von Luschan’s chromatic scale:

![]()
Most people however, are not aware of their von Luschan’s scale (myself included). I also though of having the user visually specifying the color of their skin tone but that could lead to some problems due to the different color profiles used by the operating systems / monitors.
There is also a more general von Luschan’s scale used to classify sun tanning risk:
- von Luschan 1-5 (very light).
- von Luschan 6-10 (light).
- von Luschan 11-15 (intermediate).
- von Luschan 16-21 (“Mediterranean”).
- von Luschan 22-28 (dark or “brown”).
- von Luschan 29-36 (very dark or “black”).
Since this can become a very sensitive topic for some people I’m wondering what would be the best way to store this information in a normalized database. Is there a correct globally accepted standard to describe skin color without affecting susceptibilities while using straightforward terms and avoiding complicated and unfamiliar definitions such as von Luschan’s scale?
Similar standards exist for eye and hair color. How would you approach the skin tone terminology?

I’d do something like the Nintendo Wii’s Mii Editor and just show several swatches of colors. Even if the monitor isn’t calibrated, if someone sees them all on the screen at once they should be able to make the correct choice.
You can then give the color an internal name and do your data mining on that.