diff --git a/gf-guide/metrics.md b/gf-guide/metrics.md
index a5058dd..0d70ba6 100644
--- a/gf-guide/metrics.md
+++ b/gf-guide/metrics.md
@@ -241,17 +241,27 @@ If the font is already hosted on [fonts.google.com](http://fonts.google.com/), y
 
 ## CJK Vertical Metrics
 
-CJK vertical metrics are based on Source Han Sans and Noto CJK fonts.
+*The following CJK vertical metrics are based on Source Han and Noto CJK fonts.*
 
-The following vertical metric values must be applied to all CJK fonts
+The values for CJK vertical metrics are based on a few core concepts:
+
+1. The OS/2.sTypoAscender and OS/2.sTypoDescender values defines the ideographic em-box, such as CJK ideographs and full-width symbols. Thus, the value of OS/2.sTypoAscender - OS/2.sTypoDescender must equals UPM value, or in other words, the difference of the UPM factors for OS/2.sTypoAscender and OS/2.sTypoDescender should equals 1.
+    > Source Han/Noto CJK uses 880/-120 or 0.88/-0.12. Other usual pairs are 0.85/-0.15 and 0.8/-0.2. The factors may be modified to match the Latin part of the font.
+2. Line gaps should be set to 0 matching Latin font practice. See above [Requirement point 8](#8-linegap-values-must-be-0).
+3. hhea values should be set to look harmonized (excluding extreme vertical height symbols only used in vertical typesetting such as U+3031 and U+3032), including Latin parts (such as hanyu pinyin Ǚ). See above [Requirement point 10](#10-typohheaascender-value-should-leave-open-room-for-stacked-diacritics).
+    * Note that for multi-family fonts, the metrics across family should be consistent. See above [Requirement point 2](#2-vertical-metrics-must-be-consistent-across-a-family).
+    > Source Han Sans/Noto Sans CJK uses 1160/-288.
+4. Disable OS/2.fsSelection bit 7 (Use_Typo_Metrics) as both sType* and usWin* are same.
+
+The following vertical metric values may be applied to CJK fonts. 
 
 | Attrib                                    | Value                                    | Example using 1000upm font |
 |-------------------------------------------|------------------------------------------|----------------------------|
 | OS/2.sTypoAscender                        | 0.88 \* font upm                         | 880                        |
-| OS/2.sTypoDescender                       | -0.12 \* font upm                        | -120                       |
+| OS/2.sTypoDescender                       | -0.12 \* font upm (should be negative) | -120                       |
 | OS/2.sTypoLineGap                         | 0                                        | 0                          |
 | hhea.ascender                             | Set to look comfortable (\~1.16 \* upm)  | 1160                       |
-| hhea.descender                            | Set to look comfortable (\~0.288 \* upm) | -288                       |
+| hhea.descender                            | Set to look comfortable (\~-0.288 \* upm, should be negative) | -288                       |
 | hhea.lineGap                              | 0                                        | 0                          |
 | OS/2.usWinAscent                          | Same as hhea.ascent                      | 1160                       |
 | OS/2.usWinDescent                         | abs(value) of hhea.descent               | 288                        |