Skip to content

Instantly share code, notes, and snippets.

@olliecheng
Last active August 12, 2023 07:24
Show Gist options
  • Save olliecheng/dcbc4b9f374fa865b843233044d1cb37 to your computer and use it in GitHub Desktop.
Save olliecheng/dcbc4b9f374fa865b843233044d1cb37 to your computer and use it in GitHub Desktop.
View your raw UCAT marks - and a form where you can contribute to the community and help us make conversions more accurate and insightful.

FORM IF THAT'S WHAT YOU'RE AFTER: https://forms.gle/gpfmoVufK8txotjh8


Hi everyone,

This is @denosawr, one of the mods at the /r/UCAT Discord. Recently we had someone in the community tell us that raw score data from your actual UCAT is sent to the client when you open the score page.

This means that, for the first time ever to my knowledge, we have a way of relating raw subtest scores with a normalised score out of 900. This is super exciting and means that we may be able to make more accurate calculators and perform some truly useful analysis for the first time ever. I'm asking for your help to send me your anonymised score data, to make this possible. My goal is not only to have a better idea of score conversion methodology, but also to be able to relate percentiles with indicative UCAT marks. That is, if you're in the top 95% of QR scorers, what will your score be?

console.log(JSON.stringify({
  exam: result.exam,
  anonymised_data: {
    centre: result.registration.centerID,
    date: result.registration.deliveryDate
  }
}, null, 2))

This is the code you need to run. You'll see the output and it won't send your data to anybody, or run any executable code. It will output your scores, testing centre and date, but not your unique student ID or your name. You can run this for your own entertainment and just read the output, but we'd love it if you could upload it to an anonymised form: https://forms.gle/gpfmoVufK8txotjh8

How to use the script

Open the UCAT score report on Pearson Vue and open Inspect Element. To do this in Chrome or Firefox, click the three dots in the top right and select "More Tools" → "(Web) Developer Tools" or press Ctrl + Alt + I or Cmd + Opt + I. You should get something like the below:

Screenshot 2023-08-12 at 12 55 58 pm

Click the Console tab (highlighted in red above) and paste in the code snippet:

console.log(JSON.stringify({
  exam: result.exam,
  anonymised_data: {
    centre: result.registration.centerID,
    date: result.registration.deliveryDate
  }
}, null, 2))

Then, press Enter. It should look like this:

image

Then, select all the text in black which is output by the function (note: you'll have to scroll down), and copy-paste it into the form above.

Thanks for your help everyone! If you have any questions, feel free to reach me on Discord at @denosawr.

(Oh, and one more thing - if you're from Western Australia and are looking for non-UCAT maths tutoring in Methods or Specialist, check out my company at https://checkpointeducation.com.au! All of our tutors are 99.9+ ATAR scorers and have created our curriculum from scratch to help you gain a deeper conceptual understanding of the topics.)

On the topic of copy-pasting code you see on the Internet! It should be obvious, but this is all at your own risk. We have no reason to believe that people who use this are traceable (ultimately, you're just accessing data they send your browser, as opposed to, say, their servers) but the responsibility to use this is up to you. If you don't trust my console.log, you can find the scoreReportData.js file in the Sources tab of Inspect Element. Never run code you don't trust from the internet. If you want to verify that I am a mod, check the #announcements tab of the Discord and you'll see a link to this page exactly.

The text you copy should look like this:

{
  "exam": {
    "reportingGroups": [
      {
        "title": "Verbal",
        "variables": [
          {
            "name": "SCORE",
            "value": "760"
          },
          {
            "name": "RAWSCORE.NORMALIZED",
            "value": "0.875"
          },
          {
            "name": "RAWSCORE",
            "value": "35"
          },
          {
            "name": "RAWSCORE.MIN",
            "value": "0"
          },
          {
            "name": "RAWSCORE.MAX",
            "value": "40"
          },
          {
            "name": "GRADE",
            "value": "taken"
          }
        ]
      },
      {
        "title": "Decision Making",
        "variables": [
          {
            "name": "SCORE",
            "value": "840"
          },
          {
            "name": "RAWSCORE.NORMALIZED",
            "value": "0.882352941176471"
          },
          {
            "name": "RAWSCORE",
            "value": "30"
          },
          {
            "name": "RAWSCORE.MIN",
            "value": "0"
          },
          {
            "name": "RAWSCORE.MAX",
            "value": "34"
          },
          {
            "name": "GRADE",
            "value": "taken"
          }
        ]
      },
      {
        "title": "Quantitative",
        "variables": [
          {
            "name": "SCORE",
            "value": "880"
          },
          {
            "name": "RAWSCORE.NORMALIZED",
            "value": "0.96875"
          },
          {
            "name": "RAWSCORE",
            "value": "31"
          },
          {
            "name": "RAWSCORE.MIN",
            "value": "0"
          },
          {
            "name": "RAWSCORE.MAX",
            "value": "32"
          },
          {
            "name": "GRADE",
            "value": "taken"
          }
        ]
      },
      {
        "title": "Abstract",
        "variables": [
          {
            "name": "SCORE",
            "value": "720"
          },
          {
            "name": "RAWSCORE.NORMALIZED",
            "value": "0.78"
          },
          {
            "name": "RAWSCORE",
            "value": "39"
          },
          {
            "name": "RAWSCORE.MIN",
            "value": "0"
          },
          {
            "name": "RAWSCORE.MAX",
            "value": "50"
          },
          {
            "name": "GRADE",
            "value": "taken"
          }
        ]
      },
      {
        "title": "Situational Judgement",
        "variables": [
          {
            "name": "SCORE",
            "value": "638"
          },
          {
            "name": "Banding",
            "value": "n/a"
          },
          {
            "name": "RAWSCORE.NORMALIZED",
            "value": "0.787755102040816"
          },
          {
            "name": "RAWSCORE",
            "value": "193"
          },
          {
            "name": "RAWSCORE.MIN",
            "value": "0"
          },
          {
            "name": "RAWSCORE.MAX",
            "value": "245"
          },
          {
            "name": "GRADE",
            "value": "taken"
          }
        ]
      },
      {
        "title": "Total Score",
        "variables": [
          {
            "name": "R4_Abstract_Score",
            "value": "720"
          },
          {
            "name": "Total_Score",
            "value": "3200"
          },
          {
            "name": "R4_DecisionMaking_Score",
            "value": "840"
          },
          {
            "name": "R4_Verbal_Score",
            "value": "760"
          },
          {
            "name": "R4_Quantitative_Score",
            "value": "880"
          }
        ]
      }
    ]
  },
  "anonymised_data": {
    "centre": "69702",
    "date": "2021/07/21"
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment