The color palette for Material Design specifies hues as well as suitable colored (white/black) text to be used for each backing-hue. So for example in the Red palette there are 10 'primary' (numbered 50, 100, 200, 300, 400, 500, 600, 700, 800, 900) and 4 'accent' hues (numbered A100, A200, A400, A700). The Material Design specs recommend white text for hues 400-900 and A200-A700.
For hue 500 (which is important as it's the default primary hue in material design) the hex is #f44336. Contrast with white is 3.68:1 while contrast with black is 5.7:1.
I've read before (in other attempts to reverse-engineer the hue-selection process for material design) that Google is obviously not taking an algorithmic approach to color selection, instead (presumably) relying on hand picked colors by experienced designers.
Is there any resource explaining why these particular text colors were chosen for these particular hues? Alternatively, is there a different contrast calculation or color selection algorithm I could use to closely approximate the material design text-color selection?
Something else I just tried is to use color brightness and color difference (also defined in contrast ratio), which more closely approximates what google is doing, at least for the red hues, but still differs slightly.
For the 500 hue (#f44336), color brightness is 0.4644745 which would favour white. Color difference is 1.568627 to white, and 1.4313725 to black.
For the 400 hue (#ef5350), color brightness is 0.507066 which would favour black slightly. Color difference is 1.423529 to white and 1.57647 to black.