Assigning Students to Various Organizations

I have a student data set and an organization dataset.

In the student data set, the students are ranked by a "matching score".

In the organization data set, there is a list of organizations that need to fill 'x' number of vacancies (the vacancies vary by organization). The organizations are also ranked by a priority. The higher ranked organizations will be filled first.

I want to match the top ranked students to the highest ranked organization until it's vacancy is filled. Then once the organization is filled, the next student will fill the next organization. So on and so on.

It's pretty straightforward, but I have no idea how to do this. Any ideas?

I have the student version of DOMO. Not sure if it's different than full versions.

Best Answer

  • MarkSnodgrass
    Answer ✓

    Since you already have the rank and priority in each, your ETL will be a little simpler. Here is how I would lay it out.

    The filter tile filters to departments that have a vacancy as I noticed you had one that had no vacancies so they shouldn't get any student.s

    The Rank & Window tile creates a running total using the sum function and select unbounded and 0 following in priority ascending order.

    In the formula tile, I create the start and ending vacancy amounts.

    This will create values like this:

    Create constants for both the student and department flows like this that you will use in the next join tile.

    Join on that Join key with the join tile.

    Finally, use the filter tile to filter down so each student is assigned to the appropriate department based on their rank

    Hope this does the trick for you.

    **Check out my Domo Tips & Tricks Videos

    **Make sure to <3 any users posts that helped you.
    **Please mark as accepted the ones who solved your issue.

Answers

  • This is an interesting one. First, your student version will be the same as the full version, from what I understand.

    I would start by creating a running total of the organization "vacancies" by the highest priority. You would use the rank & window tile for this. This would allow you to create a start and ending amount. For example, if each org had 10 vacancies, the highest priority org would have a start of 0 and ending of 10. The 2nd org would have a start of 11 and ending of 20, etc.

    On the student dataset, you would use the rank & window tile to create a ranking of students based on their score from 1 to x number of students.

    Add a constant to each datastet and then join the two on that constant. This will temporarily link every student to every organization.

    Next, add a filter tile where the student rank is between the organization start and end counts.

    This KB article about Rank & Window will help you.

    https://domo-support.domo.com/s/article/360042922814?language=en_US

    **Check out my Domo Tips & Tricks Videos

    **Make sure to <3 any users posts that helped you.
    **Please mark as accepted the ones who solved your issue.
  • @MarkSnodgrass Awesome solution! I immediately thought that this would have to be a loop in python but I love your non-python solution!

    If I solved your problem, please select "yes" above

  • @MarkSnodgrass Thanks so much for the quick response.

    I think I understand what you're saying. Would I need to have a row for each vacancy spot within an organization/department to do that?

    Here's a couple screenshots of what I'm working with right now (I filtered out some other columns for simplicity):

  • oh, and the non-python solution is definitely appreciated. In my student license version, I'm not seeing the scripting tiles to do python :(

  • MarkSnodgrass
    Answer ✓

    Since you already have the rank and priority in each, your ETL will be a little simpler. Here is how I would lay it out.

    The filter tile filters to departments that have a vacancy as I noticed you had one that had no vacancies so they shouldn't get any student.s

    The Rank & Window tile creates a running total using the sum function and select unbounded and 0 following in priority ascending order.

    In the formula tile, I create the start and ending vacancy amounts.

    This will create values like this:

    Create constants for both the student and department flows like this that you will use in the next join tile.

    Join on that Join key with the join tile.

    Finally, use the filter tile to filter down so each student is assigned to the appropriate department based on their rank

    Hope this does the trick for you.

    **Check out my Domo Tips & Tricks Videos

    **Make sure to <3 any users posts that helped you.
    **Please mark as accepted the ones who solved your issue.
  • @MarkSnodgrass I'll give this a try. Thank you!