Just to add something to this discussion.
Depending on how messy/complicated/awkward you wish to make your spell, you could factor in using the power modifier. The awkward part of this, is the work around it make it only affect the spell you want.
I'll use the destruction as an example.
You create 3 spells and 2 perks,
The 1st spell is just a script effect, does nothing to the target, other than apply an effect for Event OnEffectStart to trigger
The 2nd spell to increase the destruction power modifier and a perk to modify the magnitude by the destruction skill
The 3rd spell is the damaging spell, with the perk to modify the magnitude by the destruction skill.
This is a portion of the script that is attached to the script effect
Spoiler Event OnEffectStart (Actor akCaster, Actor akTarget)player = Game.GetPlayer()DPMod(player) ;applies the spell to increase the destruction power modifier debug.notification("PowerMod cast") utility.wait(0.0001) DPM = player.GetActorValue("DestructionPowerMod") debug.notification(DPM) DLife(akTarget) ;applies the damaging spell utility.wait(0.0001) player.DispelSpell(SP_DevourLifeDestPowMod_NECMAS) ;dispells the destruction power modifierEndEvent Using this method gives you 4 controls over the damage of your spell. The magnitude of each spell plus the Multiplier value of each perk
At destruction skill level 20, my damage over time spell using this method deals 15 damage with a magnitude of 1, however at destruction skill 100 the same spell without any changes does 150.
However if felt this was too high at the top end, just by changing the multiplier value on the Destruction Power Modifier from 0.15 to 0.1 changes the damage at Destruction Skill level 20 to 14.4 and at Destruction Skill level 100 to 120.