The artifact data from what I can tell doesn't fire at login which is why I ended up using a timer and forcing a function call.
ie:
Code:
local events_a = CreateFrame("Frame")
events_a:RegisterEvent("ARTIFACT_XP_UPDATE")
events_a:RegisterEvent("PLAYER_ENTERING_WORLD")
events_a:RegisterEvent("UNIT_INVENTORY_CHANGED")
events_a:SetScript("OnEvent", ArtifactBar_Update)
C_Timer.After(3, ArtifactBar_Update)