I'm using sheetworkers to add up the total of an 'All Combat' row, the repeating rows beneath that, then a 'Melee Combat' row with repeating rows beneath that, and finally a 'Ranged Combat' row with repeating rows beneath that. All of this gets added into a 'Points total' field below. This works fine when adding up the not-repeating attr_ values. It even works with 1 added row in 1 of the categories. However, as soon as I add a specialization in a different row, the math gets strange, even getting smaller sometimes. I've been troubleshooting and finagling with the sheetworkers all day and just not even sure where to begin with this. Usually it will just not work if there's an issue, this is an unexpected result. Here's the sheetworker code in question: on("change:allcombatpoints change:repeating_allcombatSpecz:allcombatSpeczpoints change:meleecombatpoints change:repeating_meleecombatSpecz:meleeCombatSpeczpoints change:rangedcombatpoints change:repeating_rangedcombatSpecz:rangedCombatSpeczpoints sheet:opened", function () { getAttrs([ "allcombatpoints", "repeating_allcombatSpecz_allcombatSpeczpoints", "meleecombatpoints", "repeating_meleecombatSpecz_meleeCombatSpeczpoints", "rangedcombatpoints", "repeating_rangedcombatSpecz_rangedCombatSpeczpoints", ], function (values) { let cppt = +values.allcombatpoints || 0; let cpszpt = +values.repeating_allcombatSpecz_allcombatSpeczpoints || 0; let mlpt = +values.meleecombatpoints || 0; let mtszpt = +values.repeating_meleecombatSpecz_meleeCombatSpeczpoints || 0; let rgpt = +values.rangedcombatpoints || 0; let rgszpt = +values.repeating_rangedcombatSpecz_rangedCombatSpeczpoints || 0; let total = cppt + cpszpt + mlpt + mtszpt + rgpt + rgszpt; setAttrs({pbCombatSkillsTotals: total}); }); }); And the relevant html: <!-- combat skills -->
<div class="skillsfillrepeating"> <!-- class is a misnomer leftover from before -->
<span class="skillnamefieldprimary" name="attr_allcombat">All Combat</span>
<input type="text" class="skilltotalfield" name="attr_allcombatskilltotal" value="">
<span class="skillrollbutton">
<button class="sheet-d6-dice" type="roll" value=
'&{template:dodas} {{name=@{character_name} @{allcombat} }} {{roll +@{allcombatskilltotal} = =[[2d6 + @{allcombatskilltotal}]]}}'
name="roll_skilltotalcolumn"></button> </span>
<input type="text" class="tiercostcolumn" name="attr_allcombattiercost" value="5">
<input type="text" class="costcolumn" name="attr_allcombatpoints" value="">
<input type="number" class="tiersevenfield" name="attr_allcombattierfive" value="">
<input type="number" class="tierfourfield" name="attr_allcombattierfour" value="">
<input type="number" class="tiertwofield" name="attr_allcombattierthree" value="">
<input type="number" class="tieronefield" name="attr_allcombattiertwo" value="">
<input type="number" class="tierstarfield" name="attr_allcombattierone" value="">
<input type="number" class="tierabovesubfield" name="attr_allcombattierabovesub" value="">
<input type="number" class="synergybonusfield" name="attr_allcombatsynergybonus" value="">
<input type="number" class="synergyoffsetfield" name="attr_allcombatsynergyoffset" value="">
<input type="number" class="subtotalfield" name="attr_allcombatgroup" value="">
<input type="text" class="firstskillATRfield" name="attr_allcombatattribute" value="AP">
<input type="text" class="firstATRmodField" name="attr_allcombatattributemodifier" value=""> <!-- sheetworker -->
<input type="text" class="secondATRField" name="attr_allcombatattributetwo" value="">
<input type="text" class="secondATRmod" name="attr_allcombatattributemodifiertwo" value="">
<input type="text" class="otherskillfield" name="attr_allcombatothermodifiersfill" value="">
</div>
<!-- all combat SPECIALIZATIONS -->
<fieldset class="repeating_allcombatSpecz">
<div class="skillsfillrepeatingsecondary">
<input type="text" class="skillnamefield" name="attr_allcombatSpeczskillsandabilities" value="">
<input type="text" class="skilltotalfield" name="attr_allcombatSpeczskilltotal" value="">
<span class="skillrollbutton">
<button class="sheet-d6-dice" type="roll" value=
'&{template:dodas} {{name=@{character_name} @{allcombatSpeczskillsandabilities} }} {{roll +@{allcombatSpeczskilltotal} = =[[2d6 + @{allcombatSpeczskilltotal}]]}}'
name="roll_skilltotalcolumn"></button> </span>
<input type="text" class="tiercostcolumn" name="attr_allcombatSpecztiercost" value="">
<input type="text" class="costcolumn" name="attr_allcombatSpeczpoints" value="">
<input type="number" class="tierfivefield" name="attr_allcombatSpecztierfive" value="">
<input type="number" class="tierfourfield" name="attr_allcombatSpecztierfour" value="">
<input type="number" class="tierthreefield" name="attr_allcombatSpecztierthree" value="">
<input type="number" class="tiertwofield" name="attr_allcombatSpecztiertwo" value="">
<input type="number" class="tieronefield" name="attr_allcombatSpecztierone" value="">
<input type="number" class="tierabovesubfield" name="attr_allcombatSpecztierabovesub" value="">
<input type="number" class="synergybonusfield" name="attr_allcombatSpeczsynergybonus" value="">
<input type="number" class="synergyoffsetfield" name="attr_allcombatSpeczsynergyoffset" value="">
<input type="number" class="subtotalfield" name="attr_allcombatSpeczgroup" value="">
<input type="text" class="firstskillATRfield" name="attr_allcombatSpeczattribute" value="">
<input type="text" class="firstATRmodField" name="attr_allcombatSpeczattributemodifier" value="">
<input type="text" class="secondATRField" name="attr_allcombatSpeczattributetwo" value="">
<input type="text" class="secondATRmod" name="attr_allcombatSpeczattributemodifiertwo" value="">
<input type="text" class="otherskillfield" name="attr_allcombatSpeczothermodifiersfill" value="">
</div>
</fieldset>
<!-- melee combat -->
<div class="skillsfillrepeatingsecondary"> <!-- class is a misnomer leftover from before -->
<span class="skillnamefield" name="attr_meleecombat">Melee Combat</span>
<input type="text" class="skilltotalfield" name="attr_meleecombatskilltotal" value="">
<span class="skillrollbutton">
<button class="sheet-d6-dice" type="roll" value=
'&{template:dodas} {{name=@{character_name} @{meleecombat} }} {{roll +@{meleecombatskilltotal} = =[[2d6 + @{meleecombatskilltotal}]]}}'
name="roll_skilltotalcolumn"></button> </span>
<input type="text" class="tiercostcolumn" name="attr_meleecombattiercost" value="4">
<input type="text" class="costcolumn" name="attr_meleecombatpoints" value="">
<input type="number" class="tierfivefield" name="attr_meleecombattierfive" value="">
<input type="number" class="tierfourfield" name="attr_meleecombattierfour" value="">
<input type="number" class="tierthreefield" name="attr_meleecombattierthree" value="">
<input type="number" class="tiertwofield" name="attr_meleecombattiertwo" value="">
<input type="number" class="tieronefield" name="attr_meleecombattierone" value="">
<input type="number" class="tierabovesubfield" name="attr_meleecombattierabovesub" value="">
<input type="number" class="synergybonusfield" name="attr_meleecombatsynergybonus" value="">
<input type="number" class="synergyoffsetfield" name="attr_meleecombatsynergyoffset" value="">
<input type="number" class="subtotalfield" name="attr_meleecombatgroup" value="">
<input type="text" class="firstskillATRfield" name="attr_meleecombatattribute" value="AP">
<input type="text" class="firstATRmodField" name="attr_meleecombatattributemodifier" value=""> <!-- pull sheetworker value -->
<input type="text" class="secondATRField" name="attr_meleecombatattributetwo" value="">
<input type="text" class="secondATRmod" name="attr_meleecombatattributemodifiertwo" value="">
<input type="text" class="otherskillfield" name="attr_meleecombatothermodifiersfill" value="">
</div>
<!-- Melee Combat SPECIALIZATIONS -->
<fieldset class="repeating_meleecombatSpecz">
<div class="skillsfillrepeatingtertiary">
<input type="text" class="skillnamefield" name="attr_meleeCombatSpeczskillsandabilities" value="">
<input type="text" class="skilltotalfield" name="attr_meleeCombatSpeczskilltotal" value="">
<span class="skillrollbutton">
<button class="sheet-d6-dice" type="roll" value=
'&{template:dodas} {{name=@{character_name} @{meleeCombatSpeczskillsandabilities} }} {{roll +@{meleeCombatSpeczskilltotal} = =[[2d6 + @{meleeCombatSpeczskilltotal}]]}}'
name="roll_skilltotalcolumn"></button> </span>
<input type="text" class="tiercostcolumn" name="attr_meleeCombatSpecztiercost" value="">
<input type="text" class="costcolumn" name="attr_meleeCombatSpeczpoints" value="">
<input type="number" class="tierfivefield" name="attr_meleeCombatSpecztierfive" value="">
<input type="number" class="tierfourfield" name="attr_meleeCombatSpecztierfour" value="">
<input type="number" class="tierthreefield" name="attr_meleeCombatSpecztierthree" value="">
<input type="number" class="tiertwofield" name="attr_meleeCombatSpecztiertwo" value="">
<input type="number" class="tieronefield" name="attr_meleeCombatSpecztierone" value="">
<input type="number" class="tierabovesubfield" name="attr_meleeCombatSpecztierabovesub" value="">
<input type="number" class="synergybonusfield" name="attr_meleeCombatSpeczsynergybonus" value="">
<input type="number" class="synergyoffsetfield" name="attr_meleeCombatSpeczsynergyoffset" value="">
<input type="number" class="subtotalfield" name="attr_meleeCombatSpeczgroup" value="">
<input type="text" class="firstskillATRfield" name="attr_meleeCombatSpeczattribute" value="">
<input type="text" class="firstATRmodField" name="attr_meleeCombatSpeczattributemodifier" value="">
<input type="text" class="secondATRField" name="attr_meleeCombatSpeczattributetwo" value="">
<input type="text" class="secondATRmod" name="attr_meleeCombatSpeczattributemodifiertwo" value="">
<input type="text" class="otherskillfield" name="attr_meleeCombatSpeczothermodifiersfill" value="">
</div>
</fieldset>
<!-- ranged combat -->
<div class="skillsfillrepeatingsecondary"> <!-- class is a misnomer leftover from before -->
<span class="skillnamefield" name="attr_rangedcombat">Ranged Combat</span>
<input type="text" class="skilltotalfield" name="attr_rangedcombatskilltotal" value="">
<span class="skillrollbutton">
<button class="sheet-d6-dice" type="roll" value=
'&{template:dodas} {{name=@{character_name} @{rangedcombat} }} {{roll +@{rangedcombatskilltotal} = =[[2d6 + @{rangedcombatskilltotal}]]}}'
name="roll_skilltotalcolumn"></button> </span>
<input type="text" class="tiercostcolumn" name="attr_rangedcombattiercost" value="4">
<input type="text" class="costcolumn" name="attr_rangedcombatpoints" value="">
<input type="number" class="tierfivefield" name="attr_rangedcombattierfive" value="">
<input type="number" class="tierfourfield" name="attr_rangedcombattierfour" value="">
<input type="number" class="tierthreefield" name="attr_rangedcombattierthree" value="">
<input type="number" class="tiertwofield" name="attr_rangedcombattiertwo" value="">
<input type="number" class="tieronefield" name="attr_rangedcombattierone" value="">
<input type="number" class="tierabovesubfield" name="attr_rangedcombattierabovesub" value="">
<input type="number" class="synergybonusfield" name="attr_rangedcombatsynergybonus" value="">
<input type="number" class="synergyoffsetfield" name="attr_rangedcombatsynergyoffset" value="">
<input type="number" class="subtotalfield" name="attr_rangedcombatgroup" value="">
<input type="text" class="firstskillATRfield" name="attr_rangedcombatattribute" value="AP">
<input type="text" class="firstATRmodField" name="attr_rangedcombatattributemodifier" value="">
<input type="text" class="secondATRField" name="attr_rangedcombatattributetwo" value="">
<input type="text" class="secondATRmod" name="attr_rangedcombatattributemodifiertwo" value="">
<input type="text" class="otherskillfield" name="attr_rangedcombatothermodifiersfill" value="">
</div>
<!-- Ranged Combat SPECIALIZATIONS -->
<fieldset class="repeating_rangedcombatSpecz">
<div class="skillsfillrepeatingtertiary">
<input type="text" class="skillnamefield" name="attr_rangedCombatSpeczskillsandabilities" value="">
<input type="text" class="skilltotalfield" name="attr_rangedCombatSpeczskilltotal" value="">
<span class="skillrollbutton">
<button class="sheet-d6-dice" type="roll" value=
'&{template:dodas} {{name=@{character_name} @{rangedCombatSpeczskillsandabilities} }} {{roll +@{rangedCombatSpeczskilltotal} = =[[2d6 + @{rangedCombatSpeczskilltotal}]]}}'
name="roll_skilltotalcolumn"></button> </span>
<input type="text" class="tiercostcolumn" name="attr_rangedCombatSpecztiercost" value="">
<input type="text" class="costcolumn" name="attr_rangedCombatSpeczpoints" value="">
<input type="number" class="tierfivefield" name="attr_rangedCombatSpecztierfive" value="">
<input type="number" class="tierfourfield" name="attr_rangedCombatSpecztierfour" value="">
<input type="number" class="tierthreefield" name="attr_rangedCombatSpecztierthree" value="">
<input type="number" class="tiertwofield" name="attr_rangedCombatSpecztiertwo" value="">
<input type="number" class="tieronefield" name="attr_rangedCombatSpecztierone" value="">
<input type="number" class="tierabovesubfield" name="attr_rangedCombatSpecztierabovesub" value="">
<input type="number" class="synergybonusfield" name="attr_rangedCombatSpeczsynergybonus" value="">
<input type="number" class="synergyoffsetfield" name="attr_rangedCombatSpeczsynergyoffset" value="">
<input type="number" class="subtotalfield" name="attr_rangedCombatSpeczgroup" value="">
<input type="text" class="firstskillATRfield" name="attr_rangedCombatSpeczattribute" value="">
<input type="text" class="firstATRmodField" name="attr_rangedCombatSpeczattributemodifier" value="">
<input type="text" class="secondATRField" name="attr_rangedCombatSpeczattributetwo" value="">
<input type="text" class="secondATRmod" name="attr_rangedCombatSpeczattributemodifiertwo" value="">
<input type="text" class="otherskillfield" name="attr_rangedCombatSpeczothermodifiersfill" value="">
</div>
</fieldset>
<!-- much later....-->
<div class="pointbuytablerow">
<span class="pbtSkillTable">Combat Skills</span> <!-- COMBAT SKILLS -->
<input type="text" name="attr_pbCombatSkillsTotals" value=""> <!-- TOTALS -->
<input type="text" name="attr_pbCombatSkillsUnspent" value="">
<input type="text" name="attr_pbCombatSkillsSpent" value="">
<input type="text" name="attr_pbCombatSkillsNegative" value="">
<input type="text" name="attr_pbSkillTableNotes" value="">
</div>
Apologies for the long bits of code. I think there's also probably a better way to do all of this with Universal Sheetworkers. I'm not sure if switching to something like that would reduce these issues, or if there's just some dumb typo somewhere. But couldn't find one so here I am. Thanks for any help!