2 added 471 characters in body
source | link

Japt, 13 bytes (non-competing)

£T±Xc)/°Y r d

Test it online!

How it works

£   T± Xc)/° Y r d
mXY{T+=Xc)/++Y r d}
                     // Implicit: U = input string, T = 0
mXY{              }  // Replace each char X and index Y in the string by this function:
    T+=Xc            //   Add X.charCodeAt() to T.
         )/++Y       //   Take T / (Y + 1).
               r d   //   Round, and convert to a character.
                     // Implicit: output result of last expression

Japt, 13 bytes (non-competing)

£T±Xc)/°Y r d

Test it online!

Japt, 13 bytes (non-competing)

£T±Xc)/°Y r d

Test it online!

How it works

£   T± Xc)/° Y r d
mXY{T+=Xc)/++Y r d}
                     // Implicit: U = input string, T = 0
mXY{              }  // Replace each char X and index Y in the string by this function:
    T+=Xc            //   Add X.charCodeAt() to T.
         )/++Y       //   Take T / (Y + 1).
               r d   //   Round, and convert to a character.
                     // Implicit: output result of last expression
1
source | link

Japt, 13 bytes (non-competing)

£T±Xc)/°Y r d

Test it online!