You have guessed the reason it's not showing correctly. The best way to get the value to show, is to use a sheet worker to update it. This should do it: on ( 'change:psionic_ability' , () => { const section = 'SECTION' ; repeatingSectionIds ( `repeating_ ${ section } ` , idarray => { const fieldnames = idarray . reduce (( rows , id ) => [... rows , `repeating_ ${ section } _ ${ id } _psionic_ability` ], '' ); getAttrs ([ 'psionic_ability' , ... fieldnames ], v => { const output = {}; idarray . forEach ( id => { output [ `repeating_ ${ section } _ ${ id } _psionic_ability` ] = v . psionic_ability ; }); setAttrs ( output ); }); }); }); Just change one thing: the section at the start needs to be set to your repeating section name, the bit after repeating_. If you have multiple external attributes you want to show in a repeating section, here's a worker for that. Just change the section variable at the start, like above, and add the attributes in the array below it. You only have to change those first 2 lines. const section = `SECTION` ; const repeating_stats = [ 'psionic_ability' ]; const changes = repeating_stats . reduce (( str , stat ) => ` ${ str } change: ${ stat . toLowerCase () } ` , 'sheet:opened' ); on ( changes , () => { getSectionIDs ( `repeating_ ${ section } ` , idarray => { const fieldnames = idarray . reduce (( rows , id ) => [... rows , ... repeating_stats . map ( stat => `repeating_ ${ section } _ ${ id } _ ${ stat } ` )], []); getAttrs ([... repeating_stats , ... fieldnames ], v => { const output = {}; idarray . forEach ( id => { repeating_stats . forEach ( stat => { output [ `repeating_ ${ section } _ ${ id } _ ${ stat } ` ] = v [ stat ]; }); }); setAttrs ( output ); }); }); });