If you are going to be working on sheets for other games I figured I would post my unfinished additions to your one here, so you can look at incorporating what you need into the CoC one.
The layout is horrible but I was looking at the code to do the calculations for us. This calculates the Characteristic DM via the long Lookup (we can not use something like the simple `_str_dm$=+floor(str/3)-2` because of the out of character 0), it also recalculates the Score and the DM after Damage.
[spoiler="Initial Stat Values"][table=stats grid zebra compact]
STR | [_str_init=1] | | INT | [_int_init=13]
DEX | [_dex_init=10] | | EDU | [_edu_init=14]
END | [_end_init=9] | | SOC | [_soc_init=6][/table][/spoiler]
[table=stats grid zebra compact]
STR | [_str_dmg=0] | | INT | [_int_dmg=3]
DEX | [_dex_dmg=1] | | EDU | [_edu_dmg=4]
END | [_end_dmg=2] | | SOC | [_soc_dmg=6]
[/table]
[table=stats grid zebra compact htl]
Stat | Damage | Score | DM
STR | -[_str_dmg=0] | [_str$=str_init-str_dmg] | [b][_str_dm$=+lookupBonus(str, 0,0,-3, 1,2,-2, 3,5,-1, 6,8,0, 9,11,1, 12,14,2, 15,17,3)][/b]
DEX | -[_dex_dmg=1] | [_dex$=dex_init-dex_dmg] | [b][_dex_dm$=+lookupBonus(dex, 0,0,-3, 1,2,-2, 3,5,-1, 6,8,0, 9,11,1, 12,14,2, 15,17,3)][/b]
[b]END[/b] | -[_end_dmg=2] | [_end$=end_init-end_dmg] | [b][_end_dm$=+lookupBonus(end, 0,0,-3, 1,2,-2, 3,5,-1, 6,8,0, 9,11,1, 12,14,2, 15,17,3)][/b]
INT | -[_int_dmg=3] | [_int$=int_init-int_dmg] | [b][_int_dm$=+lookupBonus(int, 0,0,-3, 1,2,-2, 3,5,-1, 6,8,0, 9,11,1, 12,14,2, 15,17,3)][/b]
EDU | -[_edu_dmg=4] | [_edu$=edu_init-edu_dmg] | [b][_edu_dm$=+lookupBonus(edu, 0,0,-3, 1,2,-2, 3,5,-1, 6,8,0, 9,11,1, 12,14,2, 15,17,3)][/b]
SOC | -[_soc_dmg=6] | [_soc$=soc_init-soc_dmg] | [b][_soc_dm$=+lookupBonus(soc, 0,0,-3, 1,2,-2, 3,5,-1, 6,8,0, 9,11,1, 12,14,2, 15,17,3)][/b]
[/table]