Lua Code:
local GetCostForPointAtRank = C_ArtifactUI.GetCostForPointAtRank
local itemID, altItemID, name, icon, artifactXP, pointsSpent, quality, artifactAppearanceID, appearanceModID, itemAppearanceID, altItemAppearanceID, altOnTop, artifactTier = C_ArtifactUI.GetEquippedArtifactInfo()
local pointsAvailable = 0
local xpForNextPoint = GetCostForPointAtRank(pointsSpent + pointsAvailable, artifactTier) or 0
while artifactXP >= xpForNextPoint do
artifactXP = artifactXP - xpForNextPoint
pointsAvailable = pointsAvailable + 1
xpForNextPoint = GetCostForPointAtRank(pointsSpent + pointsAvailable, artifactTier) or 0
end
local text = floor((artifactXP/xpForNextPoint)*100).."%"
You might want to add a check for artifactXP/xpForNextPoint being less than 0 or greater than 1.