As per the design of the report, there is a row for each user+license combination. Hence, if a user has multiple licenses, you would see multiple rows
As per the current logic, every time we get a separate event from onboarding (different in terms of onboard method, timestamp, etc. manual vs self onboarding vs CSV) we show them separately.
Each time an admin imports a CSV that contains this user, then a user update is passed to license service and the onboarding report also listens for this user update.
This user+license combination would produce another row in the report.
As the report is working right now a new event for a user is added regarding the onboarding method for that user by every CSV upload from the admin thus the original onboarding method is lost and will incorrectly show the onboarding method for a user that is self-sign up eventually as CSV bulk upload and the admin will have to search for the first event for this user to check the correct onboarding method which is not ideal.
The onboarding method in the report should not change with every upload of a CSV file