{"id":193263,"date":"2026-07-11T11:40:20","date_gmt":"2026-07-11T09:40:20","guid":{"rendered":"https:\/\/reginsights.regenesys.net\/?page_id=193263"},"modified":"2026-07-11T14:23:25","modified_gmt":"2026-07-11T12:23:25","slug":"aps-calculator","status":"publish","type":"page","link":"https:\/\/www.regenesys.net\/reginsights\/aps-calculator","title":{"rendered":"APS Calculator"},"content":{"rendered":"\n<div id=\"aps-pathfinder-calculator\"><\/div>\n\n<style>\n  #aps-pathfinder-calculator {\n    --aps-green: #013220;\n    --aps-green-2: #0A4A2F;\n    --aps-gold: #B8860B;\n    --aps-cream: #FFF8E6;\n    --aps-soft: #F7FAF8;\n    --aps-border: #DDE7E1;\n    --aps-text: #1F1F1F;\n    --aps-muted: #52605A;\n    --aps-danger: #A6422A;\n    --aps-ok: #0A6B45;\n    max-width: 1040px;\n    margin: 40px auto;\n    font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n    color: var(--aps-text);\n  }\n\n  #aps-pathfinder-calculator * {\n    box-sizing: border-box;\n  }\n\n  #aps-pathfinder-calculator .aps-shell {\n    border: 1px solid var(--aps-border);\n    border-radius: 26px;\n    background: #fff;\n    overflow: hidden;\n    box-shadow: 0 20px 50px rgba(0,0,0,0.08);\n  }\n\n  #aps-pathfinder-calculator .aps-hero {\n    background:\n      radial-gradient(circle at 84% 10%, rgba(184,134,11,0.22), transparent 32%),\n      linear-gradient(135deg, #013220 0%, #0A4A2F 100%);\n    color: #fff !important;\n    padding: 34px 28px;\n    position: relative;\n    overflow: hidden;\n  }\n\n  #aps-pathfinder-calculator .aps-hero h2,\n  #aps-pathfinder-calculator .aps-hero p,\n  #aps-pathfinder-calculator .aps-hero span,\n  #aps-pathfinder-calculator .aps-hero div {\n    color: #fff !important;\n  }\n\n  #aps-pathfinder-calculator .aps-kicker {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    padding: 8px 13px;\n    border-radius: 999px;\n    background: rgba(255,255,255,0.14);\n    border: 1px solid rgba(255,255,255,0.26);\n    font-weight: 700;\n    font-size: 0.82rem;\n    margin-bottom: 16px;\n  }\n\n  #aps-pathfinder-calculator .aps-hero h2 {\n    font-size: clamp(1.9rem, 3.8vw, 3.25rem);\n    line-height: 1.05;\n    margin: 0 0 12px !important;\n    letter-spacing: -0.045em;\n    max-width: 820px;\n  }\n\n  #aps-pathfinder-calculator .aps-hero p {\n    max-width: 780px;\n    margin: 0 !important;\n    line-height: 1.65;\n    color: rgba(255,255,255,0.9) !important;\n    font-size: 1rem;\n  }\n\n  #aps-pathfinder-calculator .aps-body {\n    padding: 24px;\n    background: linear-gradient(180deg, #ffffff 0%, #f9fbfa 100%);\n  }\n\n  #aps-pathfinder-calculator .aps-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 16px;\n  }\n\n  @media (max-width: 820px) {\n    #aps-pathfinder-calculator .aps-grid {\n      grid-template-columns: 1fr;\n    }\n  }\n\n  #aps-pathfinder-calculator .aps-card {\n    background: #fff;\n    border: 1px solid var(--aps-border);\n    border-radius: 22px;\n    padding: 18px;\n  }\n\n  #aps-pathfinder-calculator .aps-card h3 {\n    color: var(--aps-green) !important;\n    margin: 0 0 8px !important;\n    font-size: 1.18rem;\n  }\n\n  #aps-pathfinder-calculator .aps-card p {\n    color: var(--aps-muted) !important;\n    line-height: 1.55;\n    margin: 0 0 12px !important;\n    font-size: 0.93rem;\n  }\n\n  #aps-pathfinder-calculator label {\n    display: block;\n    font-size: 0.82rem;\n    color: var(--aps-green);\n    font-weight: 800;\n    margin: 12px 0 6px;\n  }\n\n  #aps-pathfinder-calculator input,\n  #aps-pathfinder-calculator select {\n    width: 100%;\n    border: 1px solid #DADFDA;\n    border-radius: 12px;\n    padding: 11px 12px;\n    background: #fff;\n    color: var(--aps-text);\n    font-size: 0.92rem;\n  }\n\n  #aps-pathfinder-calculator input:focus,\n  #aps-pathfinder-calculator select:focus {\n    outline: 3px solid rgba(184,134,11,0.18);\n    border-color: var(--aps-gold);\n  }\n\n  #aps-pathfinder-calculator .aps-subject-table {\n    display: grid;\n    gap: 10px;\n  }\n\n  #aps-pathfinder-calculator .aps-subject-row {\n    display: grid;\n    grid-template-columns: 1.25fr 0.9fr 110px;\n    gap: 10px;\n    align-items: end;\n    padding: 12px;\n    border: 1px solid var(--aps-border);\n    border-radius: 18px;\n    background: #fff;\n  }\n\n  @media (max-width: 720px) {\n    #aps-pathfinder-calculator .aps-subject-row {\n      grid-template-columns: 1fr;\n    }\n  }\n\n  #aps-pathfinder-calculator .aps-subject-row label {\n    margin-top: 0;\n  }\n\n  #aps-pathfinder-calculator .aps-actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    margin-top: 16px;\n  }\n\n  #aps-pathfinder-calculator .aps-btn {\n    border: none;\n    border-radius: 999px;\n    padding: 11px 18px;\n    cursor: pointer;\n    font-weight: 800;\n    font-size: 0.9rem;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    text-decoration: none;\n  }\n\n  #aps-pathfinder-calculator .aps-btn-primary {\n    background: var(--aps-green);\n    color: #fff !important;\n  }\n\n  #aps-pathfinder-calculator .aps-btn-gold {\n    background: var(--aps-gold);\n    color: #fff !important;\n  }\n\n  #aps-pathfinder-calculator .aps-btn-soft {\n    background: #EFF4F1;\n    color: var(--aps-green) !important;\n  }\n\n  #aps-pathfinder-calculator .aps-error {\n    display: none;\n    margin-top: 12px;\n    color: var(--aps-danger);\n    background: #fff3ef;\n    border: 1px solid #f0c9bd;\n    border-radius: 14px;\n    padding: 10px 12px;\n    font-size: 0.88rem;\n  }\n\n  #aps-pathfinder-calculator .aps-error.is-visible {\n    display: block;\n  }\n\n  #aps-pathfinder-calculator .aps-result {\n    margin-top: 18px;\n    display: none;\n  }\n\n  #aps-pathfinder-calculator .aps-result.is-visible {\n    display: block;\n  }\n\n  #aps-pathfinder-calculator .aps-score-hero {\n    display: grid;\n    grid-template-columns: 210px 1fr;\n    gap: 18px;\n    background: linear-gradient(135deg, #013220 0%, #0A4A2F 100%);\n    color: #fff;\n    border-radius: 24px;\n    padding: 22px;\n    margin-bottom: 16px;\n    align-items: center;\n  }\n\n  @media (max-width: 720px) {\n    #aps-pathfinder-calculator .aps-score-hero {\n      grid-template-columns: 1fr;\n    }\n  }\n\n  #aps-pathfinder-calculator .aps-score-circle {\n    width: 170px;\n    height: 170px;\n    border-radius: 50%;\n    display: grid;\n    place-items: center;\n    margin: auto;\n    background: radial-gradient(circle at top left, #fff8e6, #B8860B);\n    color: #013220;\n    box-shadow: 0 18px 40px rgba(0,0,0,0.22);\n  }\n\n  #aps-pathfinder-calculator .aps-score-circle strong {\n    display: block;\n    font-size: 3.3rem;\n    line-height: 1;\n  }\n\n  #aps-pathfinder-calculator .aps-score-circle span {\n    font-weight: 800;\n    font-size: 0.8rem;\n    text-transform: uppercase;\n  }\n\n  #aps-pathfinder-calculator .aps-score-hero h3 {\n    color: #fff !important;\n    font-size: 1.7rem;\n    margin: 0 0 8px !important;\n  }\n\n  #aps-pathfinder-calculator .aps-score-hero p {\n    color: rgba(255,255,255,0.9) !important;\n    margin: 0 !important;\n    line-height: 1.58;\n  }\n\n  #aps-pathfinder-calculator .aps-pill {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    border-radius: 999px;\n    padding: 7px 11px;\n    background: #EAF4EF;\n    color: var(--aps-green);\n    font-weight: 800;\n    font-size: 0.78rem;\n    margin: 4px 6px 4px 0;\n  }\n\n  #aps-pathfinder-calculator .aps-pill-gold {\n    background: var(--aps-cream);\n    color: #674600;\n    border: 1px solid #E8D89E;\n  }\n\n  #aps-pathfinder-calculator .aps-programme-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 14px;\n    margin-top: 14px;\n  }\n\n  @media (max-width: 980px) {\n    #aps-pathfinder-calculator .aps-programme-grid {\n      grid-template-columns: 1fr;\n    }\n  }\n\n  #aps-pathfinder-calculator .aps-programme-card {\n    background: #fff;\n    border: 1px solid var(--aps-border);\n    border-radius: 20px;\n    padding: 16px;\n  }\n\n  #aps-pathfinder-calculator .aps-programme-card h4 {\n    margin: 0 0 8px !important;\n    color: var(--aps-green) !important;\n    font-size: 1rem;\n  }\n\n  #aps-pathfinder-calculator .aps-programme-card p {\n    color: var(--aps-muted) !important;\n    font-size: 0.88rem;\n    line-height: 1.5;\n    margin: 0 0 8px !important;\n  }\n\n  #aps-pathfinder-calculator .aps-status {\n    display: inline-flex;\n    border-radius: 999px;\n    padding: 5px 9px;\n    font-size: 0.72rem;\n    font-weight: 900;\n    margin-bottom: 8px;\n  }\n\n  #aps-pathfinder-calculator .aps-status-yes {\n    background: #EAF4EF;\n    color: #0A6B45;\n  }\n\n  #aps-pathfinder-calculator .aps-status-check {\n    background: #FFF8E6;\n    color: #6C4B00;\n  }\n\n  #aps-pathfinder-calculator .aps-status-no {\n    background: #FFF3EF;\n    color: #A6422A;\n  }\n\n  #aps-pathfinder-calculator .aps-mini-table {\n    display: grid;\n    gap: 8px;\n    margin-top: 10px;\n  }\n\n  #aps-pathfinder-calculator .aps-mini-row {\n    display: grid;\n    grid-template-columns: 1fr 70px 60px;\n    gap: 8px;\n    padding: 8px 10px;\n    border-radius: 12px;\n    background: #F7FAF8;\n    font-size: 0.85rem;\n    color: var(--aps-muted);\n  }\n\n  #aps-pathfinder-calculator .aps-note {\n    background: #F7FAF8;\n    border: 1px solid var(--aps-border);\n    border-radius: 18px;\n    padding: 14px;\n    color: var(--aps-muted) !important;\n    line-height: 1.55;\n    font-size: 0.9rem;\n  }\n\n  #aps-pathfinder-calculator .aps-note strong {\n    color: var(--aps-green);\n  }\n\n  #aps-pathfinder-calculator .aps-report-help {\n    margin-top: 10px;\n    color: var(--aps-muted) !important;\n    font-size: 0.84rem;\n    line-height: 1.45;\n  }\n\n  #aps-pathfinder-calculator .aps-programme-title-link,\n  #aps-pathfinder-calculator .aps-route-link {\n    color: var(--aps-green) !important;\n    font-weight: 900;\n    text-decoration: none !important;\n  }\n\n  #aps-pathfinder-calculator .aps-programme-title-link:hover,\n  #aps-pathfinder-calculator .aps-route-link:hover {\n    text-decoration: underline !important;\n  }\n\n  #aps-pathfinder-calculator .aps-route-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 12px;\n    margin-top: 12px;\n  }\n\n  @media (max-width: 980px) {\n    #aps-pathfinder-calculator .aps-route-grid {\n      grid-template-columns: 1fr;\n    }\n  }\n\n  #aps-pathfinder-calculator .aps-route-card {\n    border: 1px solid var(--aps-border);\n    border-radius: 18px;\n    background: linear-gradient(135deg, #ffffff 0%, #f7faf8 100%);\n    padding: 14px;\n  }\n\n  #aps-pathfinder-calculator .aps-route-card h4 {\n    margin: 0 0 7px !important;\n    color: var(--aps-green) !important;\n    font-size: 0.98rem;\n    line-height: 1.25;\n  }\n\n  #aps-pathfinder-calculator .aps-route-card p {\n    margin: 0 0 8px !important;\n    color: var(--aps-muted) !important;\n    font-size: 0.84rem;\n    line-height: 1.45;\n  }\n\n<\/style>\n\n<script>\n(function() {\n  const mount = document.getElementById(\"aps-pathfinder-calculator\");\n  if (!mount) return;\n\n  const LINKS = {\n    programmes: \"https:\/\/www.regenesys.net\/all-academic-programmes?utm_source=reginsights&utm_medium=aps_calculator&utm_campaign=aps_calculator_tool&utm_content=explore_programmes\",\n    advisor: \"https:\/\/www.regenesys.net\/contact-us-for-admissions-and-other-queries-regenesys?utm_source=reginsights&utm_medium=aps_calculator&utm_campaign=aps_calculator_tool&utm_content=speak_to_advisor\"\n  };\n\n  const PROGRAMME_LINKS = {\n    \"Bachelor of Education in Senior Phase and FET Teaching\": \"https:\/\/www.regenesys.net\/school-of-education\",\n    \"Data Science with AI\": \"https:\/\/www.digitalregenesys.com\/online-courses\/data-science\",\n    \"Bachelor of Information Technology in Interactive Design\": \"https:\/\/www.regenesys.net\/bachelor-of-information-technology-in-interactive-design\",\n    \"Occupational Certificate: Training and Development Practitioner\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-training-and-development-practitioner\/\",\n    \"Bachelor of Laws\": \"https:\/\/www.regenesys.net\/bachelor-of-laws\",\n    \"Bachelor of Business Administration\": \"https:\/\/www.regenesys.net\/bachelor-of-business-administration\",\n    \"Bachelor of Commerce in Politics, Philosophy and Economics\": \"https:\/\/www.regenesys.net\/bachelor-of-commerce-in-philosophy-politics-and-economics\",\n    \"Occupational Certificate: Social Counselling Worker\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-social-counselling-worker\/\",\n    \"Digital Health & Data Literacy\": \"https:\/\/www.regenesys.net\/digital-health-and-data-literarcy\",\n    \"Bachelor of Accounting Science\": \"https:\/\/www.regenesys.net\/bachelor-of-accounting-science\",\n    \"Design Thinking\": \"https:\/\/www.digitalregenesys.com\/online-courses\/design-thinking\",\n    \"Higher Certificate in Information Systems Support\": \"https:\/\/www.regenesys.net\/higher-certificate-in-information-systems-support\",\n    \"UI\/UX and Graphic Design with GenAI\": \"https:\/\/www.digitalregenesys.com\/online-courses\/ui-ux-and-graphic-design-course\",\n    \"Healthcare Business Mastery Programme\": \"https:\/\/www.digitalregenesys.com\/online-courses\/healthcare-business-mastery-programme\",\n    \"Occupational Certificate: Financial Advisor\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-financial-advisor\/\",\n    \"Product Management\": \"https:\/\/www.digitalregenesys.com\/online-courses\/product-management\",\n    \"Occupational Certificate: Project Manager\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-project-manager\/\",\n    \"Occupational Certificate: Cybersecurity Analyst\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-cybersecurity-analyst\/\",\n    \"Bachelor of Public Management\": \"https:\/\/www.regenesys.net\/bachelor-of-public-management\",\n    \"Occupational Certificate: Home Based Care Assistant\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-home-based-care-assistant\/\",\n    \"Higher Certificate in Public Management\": \"https:\/\/www.regenesys.net\/higher-certificate-in-public-management\",\n    \"Digital Marketing with AI\": \"https:\/\/www.digitalregenesys.com\/online-courses\/digital-marketing-course\",\n    \"Bachelor of Science in Computer Science\": \"https:\/\/www.regenesys.net\/bachelor-of-science-in-computer-science\",\n    \"Higher Certificate in Business Management\": \"https:\/\/www.regenesys.net\/higher-certificate-in-business-management\",\n    \"Artificial Intelligence\": \"https:\/\/www.digitalregenesys.com\/online-courses\/artificial-intelligence\",\n    \"Mental Health First Aid\": \"https:\/\/www.regenesys.net\/mental-health-first-aid\",\n    \"Occupational Certificate: Retail Store Manager\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-retail-manager-general\/\",\n    \"Occupational Certificate: Supply Chain Practitioner\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-supply-chain-practitioner\/\",\n    \"Cybersecurity with AI\": \"https:\/\/www.digitalregenesys.com\/online-courses\/cyber-security\",\n    \"ESG Leadership Programme\": \"https:\/\/www.digitalregenesys.com\/online-courses\/esg-course\",\n    \"Bachelor of Commerce in Banking and Financial Services\": \"https:\/\/www.regenesys.net\/bachelor-of-commerce-in-banking-and-financial-services\",\n    \"Full Stack Development with AI\": \"https:\/\/www.digitalregenesys.com\/online-courses\/full-stack-development\",\n    \"Occupational Certificate: Data Science Practitioner\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-data-science-practitioner\/\",\n    \"Project Management Powered by AI\": \"https:\/\/www.digitalregenesys.com\/online-courses\/project-management\",\n    \"Occupational Certificate: Software Developer\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-software-developer\/\",\n    \"Management Advancement Programme\": \"https:\/\/www.digitalregenesys.com\/online-courses\/management-advancement-programme\",\n    \"Occupational Certificate: Early Childhood Development Practitioner\": \"https:\/\/skillsacademy.regenesys.net\/occupational-certificate-early-childhood-development-practitioner\/\",\n    \"DevOps and Cloud Computing with AI\": \"https:\/\/www.digitalregenesys.com\/online-courses\/cloud-computing-and-devops-course\",\n    \"Advanced Certificate in Business Management\": \"https:\/\/www.regenesys.net\/advanced-certificate-in-business-management\",\n    \"Postgraduate Diploma in Business Management\": \"https:\/\/www.regenesys.net\/postgraduate-diploma-in-business-management\",\n    \"Postgraduate Diploma in Project Management\": \"https:\/\/www.regenesys.net\/postgraduate-diploma-in-project-management\",\n    \"Postgraduate Diploma in Digital Marketing\": \"https:\/\/www.regenesys.net\/postgraduate-diploma-in-digital-marketing\",\n    \"Master of Business Administration\": \"https:\/\/www.regenesys.net\/master-of-business-administration\",\n    \"Master of Public Management\": \"https:\/\/www.regenesys.net\/master-of-public-management\"\n};\n\n  const PROGRAMME_ALIASES = {\n    \"Bachelor of Commerce in Politics, Philosophy and Economics\": \"Bachelor of Commerce in Politics, Philosophy and Economics\",\n    \"Bachelor of Commerce in Banking and Financial Services\": \"Bachelor of Commerce in Banking and Financial Services\",\n    \"BSc Computer Science\": \"Bachelor of Science in Computer Science\",\n    \"Data Science with AI\": \"Data Science with AI\",\n    \"Cybersecurity with AI\": \"Cybersecurity with AI\",\n    \"Artificial Intelligence\": \"Artificial Intelligence\",\n    \"Digital Marketing with AI\": \"Digital Marketing with AI\",\n    \"Project Management Powered by AI\": \"Project Management Powered by AI\",\n    \"Full Stack Development with AI\": \"Full Stack Development with AI\",\n    \"DevOps and Cloud Computing with AI\": \"DevOps and Cloud Computing with AI\",\n    \"UI\/UX and Graphic Design with GenAI\": \"UI\/UX and Graphic Design with GenAI\",\n    \"Product Management\": \"Product Management\",\n    \"Design Thinking\": \"Design Thinking\",\n    \"Management Advancement Programme\": \"Management Advancement Programme\",\n    \"ESG Leadership Programme\": \"ESG Leadership Programme\",\n    \"Healthcare Business Mastery Programme\": \"Healthcare Business Mastery Programme\",\n    \"Occupational Certificate: Project Manager\": \"Occupational Certificate: Project Manager\",\n    \"Occupational Certificate: Supply Chain Practitioner\": \"Occupational Certificate: Supply Chain Practitioner\",\n    \"Occupational Certificate: Software Developer\": \"Occupational Certificate: Software Developer\",\n    \"Occupational Certificate: Cybersecurity Analyst\": \"Occupational Certificate: Cybersecurity Analyst\",\n    \"Occupational Certificate: Data Science Practitioner\": \"Occupational Certificate: Data Science Practitioner\",\n    \"Occupational Certificate: Financial Advisor\": \"Occupational Certificate: Financial Advisor\",\n    \"Occupational Certificate: Retail Store Manager\": \"Occupational Certificate: Retail Store Manager\",\n    \"Occupational Certificate: Social Counselling Worker\": \"Occupational Certificate: Social Counselling Worker\",\n    \"Occupational Certificate: Training and Development Practitioner\": \"Occupational Certificate: Training and Development Practitioner\",\n    \"Occupational Certificate: Early Childhood Development Practitioner\": \"Occupational Certificate: Early Childhood Development Practitioner\",\n    \"Occupational Certificate: Home Based Care Assistant\": \"Occupational Certificate: Home Based Care Assistant\",\n    \"Mental Health First Aid\": \"Mental Health First Aid\",\n    \"Digital Health & Data Literacy\": \"Digital Health & Data Literacy\"\n};\n\n  const SMART_ROUTES = [\n    {\n        \"name\": \"Data Science with AI\",\n        \"group\": \"Technology\",\n        \"interests\": [\n            \"technology\",\n            \"finance\",\n            \"business\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Skills route\",\n        \"note\": \"Useful if you are interested in data, analytics and future-facing digital skills.\"\n    },\n    {\n        \"name\": \"Cybersecurity with AI\",\n        \"group\": \"Technology\",\n        \"interests\": [\n            \"technology\",\n            \"law\",\n            \"business\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Skills route\",\n        \"note\": \"Worth exploring if you like digital systems, risk, security and problem-solving.\"\n    },\n    {\n        \"name\": \"Artificial Intelligence\",\n        \"group\": \"Technology\",\n        \"interests\": [\n            \"technology\",\n            \"business\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Skills route\",\n        \"note\": \"A future-skills route for learners interested in AI tools, automation and innovation.\"\n    },\n    {\n        \"name\": \"Digital Marketing with AI\",\n        \"group\": \"Marketing\",\n        \"interests\": [\n            \"business\",\n            \"technology\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Skills route\",\n        \"note\": \"A practical option if you are drawn to brands, campaigns, content and digital growth.\"\n    },\n    {\n        \"name\": \"Project Management Powered by AI\",\n        \"group\": \"Business\",\n        \"interests\": [\n            \"business\",\n            \"public\",\n            \"technology\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Skills route\",\n        \"note\": \"A useful route if you enjoy organising work, timelines, teams and delivery.\"\n    },\n    {\n        \"name\": \"Occupational Certificate: Project Manager\",\n        \"group\": \"Skills Academy\",\n        \"interests\": [\n            \"business\",\n            \"public\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Occupational route\",\n        \"note\": \"A practical route to ask about if you want workplace-ready project skills.\"\n    },\n    {\n        \"name\": \"Occupational Certificate: Supply Chain Practitioner\",\n        \"group\": \"Skills Academy\",\n        \"interests\": [\n            \"business\",\n            \"public\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Occupational route\",\n        \"note\": \"A practical option if you are interested in operations, logistics or procurement.\"\n    },\n    {\n        \"name\": \"Occupational Certificate: Software Developer\",\n        \"group\": \"Skills Academy\",\n        \"interests\": [\n            \"technology\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Occupational route\",\n        \"note\": \"Worth asking about if you are interested in coding and software development.\"\n    },\n    {\n        \"name\": \"Occupational Certificate: Cybersecurity Analyst\",\n        \"group\": \"Skills Academy\",\n        \"interests\": [\n            \"technology\",\n            \"law\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Occupational route\",\n        \"note\": \"A focused skills route for learners interested in cybersecurity and digital risk.\"\n    },\n    {\n        \"name\": \"Occupational Certificate: Financial Advisor\",\n        \"group\": \"Finance\",\n        \"interests\": [\n            \"finance\",\n            \"business\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Occupational route\",\n        \"note\": \"Worth exploring if you like finance, planning, advice and client-facing work.\"\n    },\n    {\n        \"name\": \"Occupational Certificate: Early Childhood Development Practitioner\",\n        \"group\": \"Education\",\n        \"interests\": [\n            \"education\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Occupational route\",\n        \"note\": \"A practical education route if you are interested in early learning and child development.\"\n    },\n    {\n        \"name\": \"Occupational Certificate: Social Counselling Worker\",\n        \"group\": \"Psychology and Support\",\n        \"interests\": [\n            \"education\",\n            \"health\",\n            \"public\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Occupational route\",\n        \"note\": \"A people-support route to ask about if you are interested in counselling and community care.\"\n    },\n    {\n        \"name\": \"Digital Health & Data Literacy\",\n        \"group\": \"Health Sciences\",\n        \"interests\": [\n            \"health\",\n            \"technology\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Health route\",\n        \"note\": \"A useful route if you are interested in healthcare, data and digital health systems.\"\n    },\n    {\n        \"name\": \"Mental Health First Aid\",\n        \"group\": \"Health Sciences\",\n        \"interests\": [\n            \"health\",\n            \"education\",\n            \"public\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\",\n            \"nsc\"\n        ],\n        \"label\": \"Health route\",\n        \"note\": \"Worth exploring if you are drawn to wellbeing, support and mental health awareness.\"\n    },\n    {\n        \"name\": \"Management Advancement Programme\",\n        \"group\": \"Business\",\n        \"interests\": [\n            \"business\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\"\n        ],\n        \"label\": \"Future progression\",\n        \"note\": \"Better as a future professional growth route once you have some study or work experience.\"\n    },\n    {\n        \"name\": \"ESG Leadership Programme\",\n        \"group\": \"Sustainability\",\n        \"interests\": [\n            \"public\",\n            \"business\"\n        ],\n        \"passFit\": [\n            \"bachelor\",\n            \"diploma\",\n            \"higher\"\n        ],\n        \"label\": \"Future progression\",\n        \"note\": \"A future route if you care about sustainability, governance and responsible organisations.\"\n    }\n];\n\n\n  \/* Full subject dropdown: includes common South African NSC\/CAPS subjects plus an 'Other recognised 20-credit subject' fallback. *\/\n  const SUBJECT_OPTIONS = [\n    { value: \"english_hl\", label: \"English Home Language\", display: \"English Home Language\" },\n    { value: \"english_fal\", label: \"English First Additional Language\", display: \"English First Additional Language\" },\n    { value: \"english_sal\", label: \"English Second Additional Language\", display: \"English Second Additional Language\" },\n\n    { value: \"home_language\", label: \"Afrikaans Home Language\", display: \"Afrikaans Home Language\" },\n    { value: \"first_additional_language\", label: \"Afrikaans First Additional Language\", display: \"Afrikaans First Additional Language\" },\n    { value: \"second_additional_language\", label: \"Afrikaans Second Additional Language\", display: \"Afrikaans Second Additional Language\" },\n\n    { value: \"home_language\", label: \"isiZulu Home Language\", display: \"isiZulu Home Language\" },\n    { value: \"first_additional_language\", label: \"isiZulu First Additional Language\", display: \"isiZulu First Additional Language\" },\n    { value: \"second_additional_language\", label: \"isiZulu Second Additional Language\", display: \"isiZulu Second Additional Language\" },\n\n    { value: \"home_language\", label: \"isiXhosa Home Language\", display: \"isiXhosa Home Language\" },\n    { value: \"first_additional_language\", label: \"isiXhosa First Additional Language\", display: \"isiXhosa First Additional Language\" },\n    { value: \"second_additional_language\", label: \"isiXhosa Second Additional Language\", display: \"isiXhosa Second Additional Language\" },\n\n    { value: \"home_language\", label: \"isiNdebele Home Language\", display: \"isiNdebele Home Language\" },\n    { value: \"first_additional_language\", label: \"isiNdebele First Additional Language\", display: \"isiNdebele First Additional Language\" },\n    { value: \"second_additional_language\", label: \"isiNdebele Second Additional Language\", display: \"isiNdebele Second Additional Language\" },\n\n    { value: \"home_language\", label: \"Sepedi Home Language\", display: \"Sepedi Home Language\" },\n    { value: \"first_additional_language\", label: \"Sepedi First Additional Language\", display: \"Sepedi First Additional Language\" },\n    { value: \"second_additional_language\", label: \"Sepedi Second Additional Language\", display: \"Sepedi Second Additional Language\" },\n\n    { value: \"home_language\", label: \"Sesotho Home Language\", display: \"Sesotho Home Language\" },\n    { value: \"first_additional_language\", label: \"Sesotho First Additional Language\", display: \"Sesotho First Additional Language\" },\n    { value: \"second_additional_language\", label: \"Sesotho Second Additional Language\", display: \"Sesotho Second Additional Language\" },\n\n    { value: \"home_language\", label: \"Setswana Home Language\", display: \"Setswana Home Language\" },\n    { value: \"first_additional_language\", label: \"Setswana First Additional Language\", display: \"Setswana First Additional Language\" },\n    { value: \"second_additional_language\", label: \"Setswana Second Additional Language\", display: \"Setswana Second Additional Language\" },\n\n    { value: \"home_language\", label: \"siSwati Home Language\", display: \"siSwati Home Language\" },\n    { value: \"first_additional_language\", label: \"siSwati First Additional Language\", display: \"siSwati First Additional Language\" },\n    { value: \"second_additional_language\", label: \"siSwati Second Additional Language\", display: \"siSwati Second Additional Language\" },\n\n    { value: \"home_language\", label: \"Tshivenda Home Language\", display: \"Tshivenda Home Language\" },\n    { value: \"first_additional_language\", label: \"Tshivenda First Additional Language\", display: \"Tshivenda First Additional Language\" },\n    { value: \"second_additional_language\", label: \"Tshivenda Second Additional Language\", display: \"Tshivenda Second Additional Language\" },\n\n    { value: \"home_language\", label: \"XiTsonga Home Language\", display: \"XiTsonga Home Language\" },\n    { value: \"first_additional_language\", label: \"XiTsonga First Additional Language\", display: \"XiTsonga First Additional Language\" },\n    { value: \"second_additional_language\", label: \"XiTsonga Second Additional Language\", display: \"XiTsonga Second Additional Language\" },\n\n    { value: \"home_language\", label: \"South African Sign Language Home Language\", display: \"South African Sign Language Home Language\" },\n\n    { value: \"math\", label: \"Mathematics\", display: \"Mathematics\" },\n    { value: \"math_lit\", label: \"Mathematical Literacy\", display: \"Mathematical Literacy\" },\n    { value: \"technical_math\", label: \"Technical Mathematics\", display: \"Technical Mathematics\" },\n    { value: \"life_orientation\", label: \"Life Orientation\", display: \"Life Orientation\" },\n\n    { value: \"accounting\", label: \"Accounting\", display: \"Accounting\" },\n    { value: \"agricultural_management_practices\", label: \"Agricultural Management Practices\", display: \"Agricultural Management Practices\" },\n    { value: \"agricultural_sciences\", label: \"Agricultural Sciences\", display: \"Agricultural Sciences\" },\n    { value: \"agricultural_technology\", label: \"Agricultural Technology\", display: \"Agricultural Technology\" },\n    { value: \"business_studies\", label: \"Business Studies\", display: \"Business Studies\" },\n    { value: \"civil_technology\", label: \"Civil Technology\", display: \"Civil Technology\" },\n    { value: \"civil_technology_construction\", label: \"Civil Technology: Construction\", display: \"Civil Technology: Construction\" },\n    { value: \"civil_technology_civil_services\", label: \"Civil Technology: Civil Services\", display: \"Civil Technology: Civil Services\" },\n    { value: \"civil_technology_woodworking\", label: \"Civil Technology: Woodworking\", display: \"Civil Technology: Woodworking\" },\n    { value: \"cat\", label: \"Computer Applications Technology\", display: \"Computer Applications Technology\" },\n    { value: \"consumer_studies\", label: \"Consumer Studies\", display: \"Consumer Studies\" },\n    { value: \"dance_studies\", label: \"Dance Studies\", display: \"Dance Studies\" },\n    { value: \"design\", label: \"Design\", display: \"Design\" },\n    { value: \"dramatic_arts\", label: \"Dramatic Arts\", display: \"Dramatic Arts\" },\n    { value: \"economics\", label: \"Economics\", display: \"Economics\" },\n    { value: \"electrical_technology\", label: \"Electrical Technology\", display: \"Electrical Technology\" },\n    { value: \"electrical_technology_digital_systems\", label: \"Electrical Technology: Digital Systems\", display: \"Electrical Technology: Digital Systems\" },\n    { value: \"electrical_technology_electronics\", label: \"Electrical Technology: Electronics\", display: \"Electrical Technology: Electronics\" },\n    { value: \"electrical_technology_power_systems\", label: \"Electrical Technology: Power Systems\", display: \"Electrical Technology: Power Systems\" },\n    { value: \"egd\", label: \"Engineering Graphics and Design\", display: \"Engineering Graphics and Design\" },\n    { value: \"geography\", label: \"Geography\", display: \"Geography\" },\n    { value: \"history\", label: \"History\", display: \"History\" },\n    { value: \"hospitality_studies\", label: \"Hospitality Studies\", display: \"Hospitality Studies\" },\n    { value: \"information_technology\", label: \"Information Technology\", display: \"Information Technology\" },\n    { value: \"life_sciences\", label: \"Life Sciences\", display: \"Life Sciences\" },\n    { value: \"marine_sciences\", label: \"Marine Sciences\", display: \"Marine Sciences\" },\n    { value: \"mechanical_technology\", label: \"Mechanical Technology\", display: \"Mechanical Technology\" },\n    { value: \"mechanical_technology_automotive\", label: \"Mechanical Technology: Automotive\", display: \"Mechanical Technology: Automotive\" },\n    { value: \"mechanical_technology_fitting\", label: \"Mechanical Technology: Fitting and Machining\", display: \"Mechanical Technology: Fitting and Machining\" },\n    { value: \"mechanical_technology_welding\", label: \"Mechanical Technology: Welding and Metalwork\", display: \"Mechanical Technology: Welding and Metalwork\" },\n    { value: \"music\", label: \"Music\", display: \"Music\" },\n    { value: \"nautical_sciences\", label: \"Nautical Sciences\", display: \"Nautical Sciences\" },\n    { value: \"physical_science\", label: \"Physical Sciences\", display: \"Physical Sciences\" },\n    { value: \"religion_studies\", label: \"Religion Studies\", display: \"Religion Studies\" },\n    { value: \"technical_science\", label: \"Technical Sciences\", display: \"Technical Sciences\" },\n    { value: \"tourism\", label: \"Tourism\", display: \"Tourism\" },\n    { value: \"visual_arts\", label: \"Visual Arts\", display: \"Visual Arts\" },\n    { value: \"sport_and_exercise_science\", label: \"Sport and Exercise Science\", display: \"Sport and Exercise Science\" },\n\n    { value: \"other\", label: \"Other recognised 20-credit subject\", display: \"\" }\n  ];\n\n  const DEFAULT_ROWS = [\n    { name: \"English Home Language\", type: \"english_hl\", mark: \"\" },\n    { name: \"First Additional Language\", type: \"first_additional_language\", mark: \"\" },\n    { name: \"Mathematics\", type: \"math\", mark: \"\" },\n    { name: \"Life Orientation\", type: \"life_orientation\", mark: \"\" },\n    { name: \"Subject 5\", type: \"other\", mark: \"\" },\n    { name: \"Subject 6\", type: \"other\", mark: \"\" },\n    { name: \"Subject 7\", type: \"other\", mark: \"\" },\n    { name: \"Additional subject 1\", type: \"other\", mark: \"\" },\n    { name: \"Additional subject 2\", type: \"other\", mark: \"\" },\n    { name: \"Additional subject 3\", type: \"other\", mark: \"\" }\n  ];\n\n  const PROGRAMMES = [\n    {\n      name: \"Higher Certificate in Business Management\",\n      group: \"Business and Management\",\n      level: \"Higher Certificate\",\n      requiresPass: [\"higher\", \"diploma\", \"bachelor\"],\n      requiresMath: \"basic\",\n      requiresScience: false,\n      requiresEnglish: \"basic\",\n      note: \"A practical route into business studies and management fundamentals.\"\n    },\n    {\n      name: \"Higher Certificate in Public Management\",\n      group: \"Public Management\",\n      level: \"Higher Certificate\",\n      requiresPass: [\"higher\", \"diploma\", \"bachelor\"],\n      requiresMath: \"basic\",\n      requiresScience: false,\n      requiresEnglish: \"basic\",\n      note: \"A starting route for public service, governance and development-focused careers.\"\n    },\n    {\n      name: \"Higher Certificate in Information Systems Support\",\n      group: \"Technology\",\n      level: \"Higher Certificate\",\n      requiresPass: [\"higher\", \"diploma\", \"bachelor\"],\n      requiresMath: \"basic\",\n      requiresScience: true,\n      requiresEnglish: \"basic\",\n      note: \"A good first step if you are interested in IT support, systems and technology.\"\n    },\n    {\n      name: \"Bachelor of Business Administration\",\n      group: \"Business and Management\",\n      level: \"Bachelor's Degree\",\n      requiresPass: [\"bachelor\"],\n      requiresMath: \"basic\",\n      requiresScience: false,\n      requiresEnglish: \"basic\",\n      note: \"A broad business degree for management, entrepreneurship, operations and leadership pathways.\"\n    },\n    {\n      name: \"Bachelor of Public Management\",\n      group: \"Public Management\",\n      level: \"Bachelor's Degree\",\n      requiresPass: [\"bachelor\"],\n      requiresMath: \"basic\",\n      requiresScience: false,\n      requiresEnglish: \"basic\",\n      note: \"For students drawn to public service, policy, governance and community impact.\"\n    },\n    {\n      name: \"Bachelor of Laws\",\n      group: \"Law\",\n      level: \"Bachelor's Degree\",\n      requiresPass: [\"bachelor\"],\n      requiresMath: \"basic\",\n      requiresScience: false,\n      requiresEnglish: \"law\",\n      note: \"For students interested in law, justice, rights, governance and compliance.\"\n    },\n    {\n      name: \"Bachelor of Education in Senior Phase and FET Teaching\",\n      group: \"Education\",\n      level: \"Bachelor's Degree\",\n      requiresPass: [\"bachelor\"],\n      requiresMath: \"basic\",\n      requiresScience: false,\n      requiresEnglish: \"basic\",\n      note: \"For future teachers. Subject and phase requirements must be checked with an advisor.\"\n    },\n    {\n      name: \"Bachelor of Science in Computer Science\",\n      group: \"Technology\",\n      level: \"Bachelor's Degree\",\n      requiresPass: [\"bachelor\"],\n      requiresMath: \"math\",\n      requiresScience: false,\n      requiresEnglish: \"basic\",\n      note: \"For students interested in software, systems, programming and computational thinking.\"\n    },\n    {\n      name: \"Bachelor of Information Technology in Interactive Design\",\n      group: \"Technology and Design\",\n      level: \"Bachelor's Degree\",\n      requiresPass: [\"bachelor\"],\n      requiresMath: \"math_or_check\",\n      requiresScience: true,\n      requiresEnglish: \"basic\",\n      note: \"For students interested in digital design, user experience and technology-enabled creativity.\"\n    },\n    {\n      name: \"Bachelor of Commerce in Banking and Financial Services\",\n      group: \"Economics and Finance\",\n      level: \"Bachelor's Degree\",\n      requiresPass: [\"bachelor\"],\n      requiresMath: \"math\",\n      requiresScience: false,\n      requiresEnglish: \"basic\",\n      note: \"For students interested in banking, finance, risk, credit and financial services.\"\n    },\n    {\n      name: \"Bachelor of Accounting Science\",\n      group: \"Accounting and Finance\",\n      level: \"Bachelor's Degree\",\n      requiresPass: [\"bachelor\"],\n      requiresMath: \"math\",\n      requiresScience: false,\n      requiresEnglish: \"basic\",\n      note: \"For students drawn to accounting, auditing, financial reporting and taxation.\"\n    },\n    {\n      name: \"Bachelor of Commerce in Politics, Philosophy and Economics\",\n      group: \"Economics and Society\",\n      level: \"Bachelor's Degree\",\n      requiresPass: [\"bachelor\"],\n      requiresMath: \"math\",\n      requiresScience: false,\n      requiresEnglish: \"basic\",\n      note: \"For students interested in economics, politics, ethics, public affairs and analytical thinking.\"\n    }\n  ];\n\n  const PROGRESSION = [\n    \"Advanced Certificate in Business Management\",\n    \"Postgraduate Diploma in Business Management\",\n    \"Postgraduate Diploma in Project Management\",\n    \"Postgraduate Diploma in Digital Marketing\",\n    \"Postgraduate Diploma in Data Science\",\n    \"Master of Business Administration\",\n    \"Master of Public Management\"\n  ];\n\n  function el(tag, className, text) {\n    const node = document.createElement(tag);\n    if (className) node.className = className;\n    if (text !== undefined) node.textContent = text;\n    return node;\n  }\n\n  function canonicalProgrammeName(name) {\n    return PROGRAMME_LINKS[name] ? name : (PROGRAMME_ALIASES[name] || name);\n  }\n\n  function programmeURL(name, contentTag) {\n    const canonical = canonicalProgrammeName(name);\n    const base = PROGRAMME_LINKS[canonical] || LINKS.programmes;\n    const separator = base.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n    const safeTag = String(contentTag || canonical || \"programme\")\n      .toLowerCase()\n      .replace(\/&\/g, \"and\")\n      .replace(\/[^a-z0-9]+\/g, \"_\")\n      .replace(\/^_+|_+$\/g, \"\")\n      .slice(0, 90);\n\n    return base + separator +\n      \"utm_source=reginsights&utm_medium=aps_calculator&utm_campaign=aps_calculator_tool&utm_content=\" +\n      encodeURIComponent(safeTag);\n  }\n\n  function courseLinkElement(name, className, contentTag) {\n    const link = el(\"a\", className || \"\", name);\n    link.href = programmeURL(name, contentTag);\n    link.target = \"_blank\";\n    link.rel = \"noopener\";\n    return link;\n  }\n\n  function getSmartRoutes(data) {\n    const primary = {};\n    data.programmes.slice(0, 9).forEach(p => primary[canonicalProgrammeName(p.name)] = true);\n\n    return SMART_ROUTES.map(route => {\n      let score = 0;\n      if (route.passFit.indexOf(data.pass) !== -1) score += 20;\n      if (data.interest === \"unsure\") score += 4;\n      if (route.interests.indexOf(data.interest) !== -1) score += 20;\n      if (primary[canonicalProgrammeName(route.name)]) score -= 40;\n\n      if (data.pass === \"bachelor\" && route.label === \"Future progression\") score += 4;\n      if ((data.pass === \"higher\" || data.pass === \"diploma\" || data.pass === \"nsc\") && route.label !== \"Future progression\") score += 6;\n\n      return Object.assign({}, route, { score: score });\n    })\n    .filter(route => route.score > 16)\n    .sort((a, b) => b.score - a.score)\n    .slice(0, 6);\n  }\n\n  function renderSmartRoutes(data) {\n    const routes = getSmartRoutes(data);\n    if (!routes.length) return null;\n\n    const section = el(\"div\", \"aps-card\");\n    section.style.marginTop = \"16px\";\n    section.appendChild(el(\"h3\", \"\", \"Other smart routes to ask about\"));\n    section.appendChild(el(\"p\", \"\", \"These are not automatic admission matches. They are practical or future routes that fit your interest area and result profile.\"));\n\n    const grid = el(\"div\", \"aps-route-grid\");\n    routes.forEach((route, index) => {\n      const card = el(\"div\", \"aps-route-card\");\n      card.appendChild(el(\"span\", \"aps-status aps-status-check\", route.label));\n\n      const h4 = el(\"h4\");\n      h4.appendChild(courseLinkElement(route.name, \"aps-route-link\", \"smart_route_\" + (index + 1)));\n      card.appendChild(h4);\n\n      card.appendChild(el(\"p\", \"\", route.group));\n      card.appendChild(el(\"p\", \"\", route.note));\n      grid.appendChild(card);\n    });\n\n    section.appendChild(grid);\n    return section;\n  }\n\n\n  function apsPoints(mark) {\n    const value = Number(mark);\n    if (isNaN(value)) return 0;\n    if (value >= 80) return 7;\n    if (value >= 70) return 6;\n    if (value >= 60) return 5;\n    if (value >= 50) return 4;\n    if (value >= 40) return 3;\n    if (value >= 30) return 2;\n    return 1;\n  }\n\n  function cleanMark(value) {\n    const n = Number(value);\n    if (isNaN(n)) return null;\n    return Math.max(0, Math.min(100, n));\n  }\n\n  function render() {\n    mount.innerHTML = \"\";\n\n    const shell = el(\"div\", \"aps-shell\");\n\n    const hero = el(\"div\", \"aps-hero\");\n    hero.appendChild(el(\"div\", \"aps-kicker\", \"APS Calculator\"));\n    hero.appendChild(el(\"h2\", \"\", \"Calculate your APS score and see which study routes may fit your marks\"));\n    hero.appendChild(el(\"p\", \"\", \"Enter your Grade 12 results or latest marks to calculate your APS out of 42. You will also get practical guidance on possible study routes, subject checks and your next step.\"));\n    shell.appendChild(hero);\n\n    const body = el(\"div\", \"aps-body\");\n\n    const introGrid = el(\"div\", \"aps-grid\");\n\n    const detailsCard = el(\"div\", \"aps-card\");\n    detailsCard.appendChild(el(\"h3\", \"\", \"Your result details\"));\n    detailsCard.appendChild(el(\"p\", \"\", \"For the most accurate guidance, choose the pass type shown on your statement of results. If you are still waiting for final results, choose \u201cNot sure yet\u201d and use your latest marks.\"));\n\n    const passLabel = el(\"label\", \"\", \"Matric pass type \/ endorsement\");\n    const passSelect = el(\"select\");\n    passSelect.id = \"aps-pass-type\";\n    [\n      [\"unknown\", \"Not sure yet\"],\n      [\"bachelor\", \"Bachelor pass\"],\n      [\"diploma\", \"Diploma pass\"],\n      [\"higher\", \"Higher Certificate pass\"],\n      [\"nsc\", \"NSC pass only \/ no endorsement\"]\n    ].forEach(opt => {\n      const o = el(\"option\", \"\", opt[1]);\n      o.value = opt[0];\n      passSelect.appendChild(o);\n    });\n    detailsCard.appendChild(passLabel);\n    detailsCard.appendChild(passSelect);\n\n    const interestLabel = el(\"label\", \"\", \"Area you are most interested in\");\n    const interestSelect = el(\"select\");\n    interestSelect.id = \"aps-interest\";\n    [\n      [\"unsure\", \"Not sure yet\"],\n      [\"business\", \"Business and management\"],\n      [\"law\", \"Law\"],\n      [\"technology\", \"Technology, AI or digital\"],\n      [\"finance\", \"Accounting, banking or finance\"],\n      [\"public\", \"Public management\"],\n      [\"education\", \"Education\"],\n      [\"health\", \"Health, psychology or people-focused work\"]\n    ].forEach(opt => {\n      const o = el(\"option\", \"\", opt[1]);\n      o.value = opt[0];\n      interestSelect.appendChild(o);\n    });\n    detailsCard.appendChild(interestLabel);\n    detailsCard.appendChild(interestSelect);\n\n    const explainCard = el(\"div\", \"aps-card\");\n    explainCard.appendChild(el(\"h3\", \"\", \"How this calculator works\"));\n    explainCard.appendChild(el(\"p\", \"\", \"The standard APS method adds your best six recognised 20-credit subjects and excludes Life Orientation. Each subject is converted to a score from 1 to 7.\"));\n    const table = el(\"div\", \"aps-mini-table\");\n    [\n      [\"80\u2013100%\", \"7\", \"Level 7\"],\n      [\"70\u201379%\", \"6\", \"Level 6\"],\n      [\"60\u201369%\", \"5\", \"Level 5\"],\n      [\"50\u201359%\", \"4\", \"Level 4\"],\n      [\"40\u201349%\", \"3\", \"Level 3\"],\n      [\"30\u201339%\", \"2\", \"Level 2\"],\n      [\"0\u201329%\", \"1\", \"Level 1\"]\n    ].forEach(row => {\n      const r = el(\"div\", \"aps-mini-row\");\n      r.appendChild(el(\"span\", \"\", row[0]));\n      r.appendChild(el(\"strong\", \"\", row[1]));\n      r.appendChild(el(\"span\", \"\", row[2]));\n      table.appendChild(r);\n    });\n    explainCard.appendChild(table);\n\n    introGrid.appendChild(detailsCard);\n    introGrid.appendChild(explainCard);\n    body.appendChild(introGrid);\n\n    const subjectsCard = el(\"div\", \"aps-card\");\n    subjectsCard.style.marginTop = \"16px\";\n    subjectsCard.appendChild(el(\"h3\", \"\", \"Select your subjects and enter your marks\"));\n    subjectsCard.appendChild(el(\"p\", \"\", \"Use percentages, not symbols. The list includes common South African NSC subjects such as Geography, History, Accounting, Business Studies, Economics, Life Sciences, Physical Sciences, CAT, IT, Tourism, Visual Arts, technical subjects and official languages. Life Orientation is entered for guidance, but excluded from the APS total.\"));\n\n    const subjectWrap = el(\"div\", \"aps-subject-table\");\n    subjectWrap.id = \"aps-subjects\";\n\n    DEFAULT_ROWS.forEach((row, index) => {\n      const rowNode = el(\"div\", \"aps-subject-row\");\n\n      const nameWrap = el(\"div\");\n      const nameLabel = el(\"label\", \"\", index >= 7 ? \"Subject name (optional)\" : \"Subject name\");\n      const nameInput = el(\"input\");\n      nameInput.type = \"text\";\n      nameInput.value = row.name;\n      nameInput.setAttribute(\"data-field\", \"name\");\n      nameWrap.appendChild(nameLabel);\n      nameWrap.appendChild(nameInput);\n\n      const typeWrap = el(\"div\");\n      const typeLabel = el(\"label\", \"\", \"Subject\");\n      const typeSelect = el(\"select\");\n      typeSelect.setAttribute(\"data-field\", \"type\");\n\n      SUBJECT_OPTIONS.forEach((item, subjectIndex) => {\n        const o = el(\"option\", \"\", item.label);\n        o.value = item.value;\n        o.setAttribute(\"data-display\", item.display || item.label);\n        if (item.value === row.type && (row.type !== \"other\" || subjectIndex === SUBJECT_OPTIONS.length - 1)) o.selected = true;\n        typeSelect.appendChild(o);\n      });\n\n      typeSelect.onchange = function() {\n        const selected = typeSelect.options[typeSelect.selectedIndex];\n        const displayName = selected.getAttribute(\"data-display\");\n        if (displayName) nameInput.value = displayName;\n      };\n\n      typeWrap.appendChild(typeLabel);\n      typeWrap.appendChild(typeSelect);\n\n      const markWrap = el(\"div\");\n      const markLabel = el(\"label\", \"\", \"Mark %\");\n      const markInput = el(\"input\");\n      markInput.type = \"number\";\n      markInput.min = \"0\";\n      markInput.max = \"100\";\n      markInput.placeholder = \"0\u2013100\";\n      markInput.value = row.mark;\n      markInput.setAttribute(\"data-field\", \"mark\");\n      markWrap.appendChild(markLabel);\n      markWrap.appendChild(markInput);\n\n      rowNode.appendChild(nameWrap);\n      rowNode.appendChild(typeWrap);\n      rowNode.appendChild(markWrap);\n      subjectWrap.appendChild(rowNode);\n    });\n\n    subjectsCard.appendChild(subjectWrap);\n\n    const actions = el(\"div\", \"aps-actions\");\n    const calcBtn = el(\"button\", \"aps-btn aps-btn-primary\", \"Calculate APS\");\n    calcBtn.type = \"button\";\n    calcBtn.onclick = calculateAndRender;\n\n    const resetBtn = el(\"button\", \"aps-btn aps-btn-soft\", \"Reset\");\n    resetBtn.type = \"button\";\n    resetBtn.onclick = render;\n\n    actions.appendChild(calcBtn);\n    actions.appendChild(resetBtn);\n    subjectsCard.appendChild(actions);\n\n    const error = el(\"div\", \"aps-error\", \"Please enter at least six subjects with valid marks, excluding Life Orientation.\");\n    error.id = \"aps-error\";\n    subjectsCard.appendChild(error);\n\n    body.appendChild(subjectsCard);\n\n    const result = el(\"div\", \"aps-result\");\n    result.id = \"aps-result\";\n    body.appendChild(result);\n\n    shell.appendChild(body);\n    mount.appendChild(shell);\n  }\n\n  function readSubjects() {\n    const rows = Array.from(mount.querySelectorAll(\".aps-subject-row\"));\n    return rows.map(row => {\n      const name = row.querySelector('[data-field=\"name\"]').value.trim();\n      const type = row.querySelector('[data-field=\"type\"]').value;\n      const mark = cleanMark(row.querySelector('[data-field=\"mark\"]').value);\n      return { name, type, mark, points: mark === null ? 0 : apsPoints(mark) };\n    }).filter(s => s.name || s.mark !== null);\n  }\n\n  function calculateAPS(subjects) {\n    const counted = subjects\n      .filter(s => s.mark !== null && s.type !== \"life_orientation\")\n      .sort((a, b) => b.points - a.points)\n      .slice(0, 6);\n\n    const aps = counted.reduce((sum, s) => sum + s.points, 0);\n    return { aps, counted };\n  }\n\n  function getSubject(subjects, types) {\n    return subjects.find(s => types.includes(s.type) && s.mark !== null);\n  }\n\n  function inferPassType(subjects) {\n    const nonLO = subjects.filter(s => s.mark !== null && s.type !== \"life_orientation\");\n    const homeLang = getSubject(subjects, [\"english_hl\", \"home_language\"]);\n    const fortyOrMore = nonLO.filter(s => s.mark >= 40).length;\n    const fiftyOrMore = nonLO.filter(s => s.mark >= 50).length;\n    const thirtyOrMore = nonLO.filter(s => s.mark >= 30).length;\n\n    if (homeLang && homeLang.mark >= 40 && fiftyOrMore >= 4 && thirtyOrMore >= 6) return \"bachelor\";\n    if (homeLang && homeLang.mark >= 40 && fortyOrMore >= 4 && thirtyOrMore >= 6) return \"diploma\";\n    if (homeLang && homeLang.mark >= 40 && fortyOrMore >= 3 && thirtyOrMore >= 6) return \"higher\";\n    if (thirtyOrMore >= 5) return \"nsc\";\n    return \"unknown\";\n  }\n\n  function passLabel(pass) {\n    if (pass === \"bachelor\") return \"Bachelor pass\";\n    if (pass === \"diploma\") return \"Diploma pass\";\n    if (pass === \"higher\") return \"Higher Certificate pass\";\n    if (pass === \"nsc\") return \"NSC pass only\";\n    return \"Not confirmed\";\n  }\n\n  function subjectReadiness(subjects) {\n    const englishHL = getSubject(subjects, [\"english_hl\"]);\n    const englishFAL = getSubject(subjects, [\"english_fal\"]);\n    const englishAny = englishHL || englishFAL || getSubject(subjects, [\"home_language\"]);\n    const math = getSubject(subjects, [\"math\"]);\n    const mathLit = getSubject(subjects, [\"math_lit\", \"technical_math\"]);\n    const science = getSubject(subjects, [\"physical_science\", \"technical_science\", \"life_sciences\", \"marine_sciences\"]);\n\n    return {\n      englishBasic: !!(englishAny && englishAny.mark >= 40),\n      lawEnglish: !!((englishHL && englishHL.mark >= 50) || (englishFAL && englishFAL.mark >= 60)),\n      mathBasic: !!((math && math.mark >= 40) || (mathLit && mathLit.mark >= 40)),\n      mathStrong: !!(math && math.mark >= 40),\n      mathType: math ? \"Mathematics\" : (mathLit ? \"Mathematical Literacy \/ Technical Mathematics\" : \"Not entered\"),\n      scienceBasic: !!(science && science.mark >= 40),\n      englishText: englishHL ? \"English Home Language \" + englishHL.mark + \"%\" : (englishFAL ? \"English First Additional Language \" + englishFAL.mark + \"%\" : \"English not clearly entered\")\n    };\n  }\n\n  function evaluateProgramme(programme, pass, readiness) {\n    const hasPass = programme.requiresPass.includes(pass);\n\n    let subjectStatus = \"yes\";\n    const reasons = [];\n\n    if (!hasPass) {\n      reasons.push(\"Requires \" + (programme.requiresPass.includes(\"bachelor\") ? \"a Bachelor pass\" : \"a Higher Certificate, Diploma or Bachelor pass\") + \".\");\n    }\n\n    if (programme.requiresEnglish === \"law\" && !readiness.lawEnglish) {\n      subjectStatus = \"check\";\n      reasons.push(\"Law usually needs English Home Language 50% or English First Additional Language 60%.\");\n    } else if (programme.requiresEnglish === \"basic\" && !readiness.englishBasic) {\n      subjectStatus = \"check\";\n      reasons.push(\"English competence at NQF Level 4 should be checked.\");\n    }\n\n    if (programme.requiresMath === \"math\" && !readiness.mathStrong) {\n      subjectStatus = \"check\";\n      reasons.push(\"This route needs Mathematics competence. If you took Mathematical Literacy, speak to an advisor.\");\n    }\n\n    if (programme.requiresMath === \"math_or_check\" && !readiness.mathStrong) {\n      subjectStatus = \"check\";\n      reasons.push(\"Mathematics, science or foundation readiness may need to be checked.\");\n    }\n\n    if (programme.requiresMath === \"basic\" && !readiness.mathBasic) {\n      subjectStatus = \"check\";\n      reasons.push(\"Mathematics or numeracy readiness should be checked.\");\n    }\n\n    if (programme.requiresScience && !readiness.scienceBasic) {\n      subjectStatus = \"check\";\n      reasons.push(\"Science readiness may be required or recommended.\");\n    }\n\n    if (hasPass && reasons.length === 0) {\n      return { status: \"yes\", label: \"Likely aligned\", reasons: [\"Your entered result appears aligned with the general entry route.\"] };\n    }\n\n    if (hasPass && subjectStatus === \"check\") {\n      return { status: \"check\", label: \"Check subjects\", reasons };\n    }\n\n    return { status: \"no\", label: \"Pathway route\", reasons };\n  }\n\n  function scoreMessage(aps) {\n    if (aps >= 32) return \"A strong APS. Your next focus should be subject requirements, pass type and choosing a path that fits your goals.\";\n    if (aps >= 26) return \"A solid APS. You may have several options, but programme-specific subject requirements still matter.\";\n    if (aps >= 20) return \"A workable APS for many access and certificate routes. Use this result to explore smart stepping-stone options.\";\n    return \"Your score may still give you options. The right next step may be a higher certificate, occupational route, skills programme or advisor discussion.\";\n  }\n\n  function calculateAndRender() {\n    const subjects = readSubjects();\n    const { aps, counted } = calculateAPS(subjects);\n    const error = mount.querySelector(\"#aps-error\");\n    const result = mount.querySelector(\"#aps-result\");\n    const selectedPass = mount.querySelector(\"#aps-pass-type\").value;\n    const interest = mount.querySelector(\"#aps-interest\").value;\n\n    if (counted.length < 6) {\n      error.classList.add(\"is-visible\");\n      result.classList.remove(\"is-visible\");\n      result.innerHTML = \"\";\n      return;\n    }\n\n    error.classList.remove(\"is-visible\");\n\n    const inferredPass = inferPassType(subjects);\n    const pass = selectedPass === \"unknown\" ? inferredPass : selectedPass;\n    const readiness = subjectReadiness(subjects);\n\n    let programmes = PROGRAMMES.map(p => {\n      const evaluation = evaluateProgramme(p, pass, readiness);\n      let priority = 0;\n      if (evaluation.status === \"yes\") priority += 3;\n      if (evaluation.status === \"check\") priority += 2;\n      if (interest !== \"unsure\") {\n        const text = (p.group + \" \" + p.name).toLowerCase();\n        if (interest === \"business\" && text.includes(\"business\")) priority += 3;\n        if (interest === \"law\" && text.includes(\"law\")) priority += 3;\n        if (interest === \"technology\" && (text.includes(\"technology\") || text.includes(\"computer\") || text.includes(\"information\"))) priority += 3;\n        if (interest === \"finance\" && (text.includes(\"finance\") || text.includes(\"accounting\") || text.includes(\"commerce\") || text.includes(\"banking\"))) priority += 3;\n        if (interest === \"public\" && text.includes(\"public\")) priority += 3;\n        if (interest === \"education\" && text.includes(\"education\")) priority += 3;\n      }\n      return Object.assign({}, p, { evaluation, priority, url: programmeURL(p.name, \"aps_result_\" + p.name) });\n    }).sort((a, b) => b.priority - a.priority);\n\n    renderResults({ subjects, aps, counted, pass, inferredPass, selectedPass, readiness, programmes, interest });\n  }\n\n  function renderResults(data) {\n    const result = mount.querySelector(\"#aps-result\");\n    result.innerHTML = \"\";\n    result.classList.add(\"is-visible\");\n\n    const scoreHero = el(\"div\", \"aps-score-hero\");\n\n    const circle = el(\"div\", \"aps-score-circle\");\n    const inner = el(\"div\");\n    inner.appendChild(el(\"strong\", \"\", String(data.aps)));\n    inner.appendChild(el(\"span\", \"\", \"out of 42\"));\n    circle.appendChild(inner);\n\n    const summary = el(\"div\");\n    summary.appendChild(el(\"h3\", \"\", \"Your APS score is \" + data.aps + \" out of 42\"));\n    summary.appendChild(el(\"p\", \"\", scoreMessage(data.aps)));\n\n    const pills = el(\"div\");\n    pills.style.marginTop = \"12px\";\n    pills.appendChild(el(\"span\", \"aps-pill aps-pill-gold\", \"Result type: \" + passLabel(data.pass)));\n    pills.appendChild(el(\"span\", \"aps-pill\", \"English: \" + data.readiness.englishText));\n    pills.appendChild(el(\"span\", \"aps-pill\", \"Maths: \" + data.readiness.mathType));\n    summary.appendChild(pills);\n\n    scoreHero.appendChild(circle);\n    scoreHero.appendChild(summary);\n    result.appendChild(scoreHero);\n\n    const grid = el(\"div\", \"aps-grid\");\n\n    const countedCard = el(\"div\", \"aps-card\");\n    countedCard.appendChild(el(\"h3\", \"\", \"Subjects counted in your APS\"));\n    countedCard.appendChild(el(\"p\", \"\", \"These are your best six non-Life Orientation subjects used for the APS total.\"));\n    const table = el(\"div\", \"aps-mini-table\");\n    data.counted.forEach(s => {\n      const row = el(\"div\", \"aps-mini-row\");\n      row.appendChild(el(\"span\", \"\", s.name || \"Subject\"));\n      row.appendChild(el(\"strong\", \"\", s.mark + \"%\"));\n      row.appendChild(el(\"span\", \"\", s.points + \" pts\"));\n      table.appendChild(row);\n    });\n    countedCard.appendChild(table);\n\n    const insightCard = el(\"div\", \"aps-card\");\n    insightCard.appendChild(el(\"h3\", \"\", \"What to check next\"));\n    const notes = [];\n    if (data.selectedPass === \"unknown\") notes.push(\"Your pass type was estimated from your marks. Use the endorsement on your official statement of results for final decisions.\");\n    if (!data.readiness.lawEnglish) notes.push(\"If you are interested in law, check whether your English mark meets the specific English requirement.\");\n    if (!data.readiness.mathStrong) notes.push(\"Some commerce, accounting and technology degrees may require Mathematics rather than Mathematical Literacy.\");\n    if (!data.readiness.scienceBasic) notes.push(\"Technology and IT routes may require or recommend science readiness.\");\n    if (!notes.length) notes.push(\"Your entered marks look ready for a meaningful programme conversation. Final admission is still subject to official review.\");\n    const noteList = el(\"ul\");\n    notes.forEach(n => noteList.appendChild(el(\"li\", \"\", n)));\n    insightCard.appendChild(noteList);\n\n    grid.appendChild(countedCard);\n    grid.appendChild(insightCard);\n    result.appendChild(grid);\n\n    const recCard = el(\"div\", \"aps-card\");\n    recCard.style.marginTop = \"16px\";\n    recCard.appendChild(el(\"h3\", \"\", \"Study routes worth exploring\"));\n    recCard.appendChild(el(\"p\", \"\", \"These results are guidance, not final admission. Use them to shortlist routes and speak to an advisor with more confidence.\"));\n\n    const programmeGrid = el(\"div\", \"aps-programme-grid\");\n    data.programmes.slice(0, 9).forEach(p => {\n      const card = el(\"div\", \"aps-programme-card\");\n      const statusClass = p.evaluation.status === \"yes\" ? \"aps-status-yes\" : (p.evaluation.status === \"check\" ? \"aps-status-check\" : \"aps-status-no\");\n      card.appendChild(el(\"span\", \"aps-status \" + statusClass, p.evaluation.label));\n      const title = el(\"h4\");\n      title.appendChild(courseLinkElement(p.name, \"aps-programme-title-link\", \"aps_result_card_\" + (p.name || \"programme\")));\n      card.appendChild(title);\n      card.appendChild(el(\"p\", \"\", p.group + \" \u2022 \" + p.level));\n      card.appendChild(el(\"p\", \"\", p.note));\n      const reasonList = el(\"ul\");\n      p.evaluation.reasons.slice(0, 2).forEach(r => reasonList.appendChild(el(\"li\", \"\", r)));\n      card.appendChild(reasonList);\n      programmeGrid.appendChild(card);\n    });\n    recCard.appendChild(programmeGrid);\n\n    const future = el(\"div\", \"aps-note\");\n    future.style.marginTop = \"14px\";\n    future.innerHTML = \"<strong>Future progression:<\/strong> after your first qualification, you may also explore advanced certificates, postgraduate diplomas, management programmes and master\u2019s pathways depending on your qualification level and experience.\";\n    recCard.appendChild(future);\n\n    const actions = el(\"div\", \"aps-actions\");\n    const explore = el(\"a\", \"aps-btn aps-btn-primary\", \"Explore programmes\");\n    explore.href = LINKS.programmes;\n    explore.target = \"_blank\";\n    explore.rel = \"noopener\";\n\n    const advisor = el(\"a\", \"aps-btn aps-btn-gold\", \"Speak to an advisor\");\n    advisor.href = LINKS.advisor;\n    advisor.target = \"_blank\";\n    advisor.rel = \"noopener\";\n\n    const download = el(\"button\", \"aps-btn aps-btn-soft\", \"Download APS report\");\n    download.type = \"button\";\n    download.onclick = function() {\n      downloadReport(data);\n    };\n\n    const openPrintable = el(\"button\", \"aps-btn aps-btn-soft\", \"Open report\");\n    openPrintable.type = \"button\";\n    openPrintable.onclick = function() {\n      openReport(data);\n    };\n\n    actions.appendChild(explore);\n    actions.appendChild(advisor);\n    actions.appendChild(download);\n    actions.appendChild(openPrintable);\n    recCard.appendChild(actions);\n\n    const reportHelp = el(\"div\", \"aps-report-help\", \"Your report downloads as a styled HTML file. Open it in your browser to print or save as PDF.\");\n    recCard.appendChild(reportHelp);\n\n    result.appendChild(recCard);\n\n    const smartRoutes = renderSmartRoutes(data);\n    if (smartRoutes) result.appendChild(smartRoutes);\n\n    const disclaimer = el(\"div\", \"aps-note\");\n    disclaimer.style.marginTop = \"16px\";\n    disclaimer.innerHTML = \"<strong>Important:<\/strong> This APS calculator is a guidance tool for NSC\/IEB-style results using the standard APS method. Final admission depends on official results, programme-specific requirements, available space and admissions review.\";\n    result.appendChild(disclaimer);\n\n    result.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n  }\n\n  function safeHTML(value) {\n    return String(value === undefined || value === null ? \"\" : value)\n      .replace(\/&\/g, \"&amp;\")\n      .replace(\/<\/g, \"&lt;\")\n      .replace(\/>\/g, \"&gt;\")\n      .replace(\/\"\/g, \"&quot;\")\n      .replace(\/'\/g, \"&#039;\");\n  }\n\n  function attrString(attrs) {\n    if (!attrs) return \"\";\n    return Object.keys(attrs).map(function(key) {\n      if (attrs[key] === false || attrs[key] === null || attrs[key] === undefined) return \"\";\n      if (attrs[key] === true) return \" \" + key;\n      return \" \" + key + \"='\" + safeHTML(attrs[key]) + \"'\";\n    }).join(\"\");\n  }\n\n  function node(tagName, attrs, content) {\n    const lt = String.fromCharCode(60);\n    const gt = String.fromCharCode(62);\n    return lt + tagName + attrString(attrs) + gt + (content || \"\") + lt + \"\/\" + tagName + gt;\n  }\n\n  function voidNode(tagName, attrs) {\n    const lt = String.fromCharCode(60);\n    const gt = String.fromCharCode(62);\n    return lt + tagName + attrString(attrs) + gt;\n  }\n\n  function reportStatusLabel(status) {\n    if (status === \"yes\") return \"Likely aligned\";\n    if (status === \"check\") return \"Check requirements\";\n    return \"Pathway route\";\n  }\n\n  function reportStatusClass(status) {\n    if (status === \"yes\") return \"yes\";\n    if (status === \"check\") return \"check\";\n    return \"route\";\n  }\n\n  function buildStyledReportHTML(data) {\n    const generated = new Date().toLocaleDateString(\"en-ZA\", {\n      year: \"numeric\",\n      month: \"long\",\n      day: \"numeric\"\n    });\n\n    const css = [\n      \"body{margin:0;background:#f4f6f3;color:#1f1f1f;font-family:Arial,Helvetica,sans-serif;}\",\n      \".page{max-width:980px;margin:28px auto;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.10);}\",\n      \".hero{background:linear-gradient(135deg,#013220,#0A4A2F);color:#fff;padding:34px 38px;}\",\n      \".kicker{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:8px 13px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:18px;}\",\n      \"h1{font-size:42px;line-height:1.05;margin:0 0 10px;letter-spacing:-.03em;}\",\n      \".hero p{font-size:16px;line-height:1.55;margin:0;max-width:760px;color:rgba(255,255,255,.90);}\",\n      \".content{padding:30px 38px 38px;}\",\n      \".score-wrap{display:grid;grid-template-columns:210px 1fr;gap:24px;align-items:center;margin-bottom:26px;}\",\n      \".score{width:178px;height:178px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at top left,#FFF8E6,#B8860B);color:#013220;box-shadow:0 12px 30px rgba(0,0,0,.18);}\",\n      \".score strong{display:block;font-size:58px;line-height:1;}\",\n      \".score span{font-size:13px;font-weight:700;text-transform:uppercase;}\",\n      \".summary h2{font-size:25px;margin:0 0 8px;color:#013220;}\",\n      \".summary p{margin:0 0 12px;color:#52605A;line-height:1.55;}\",\n      \".pill{display:inline-block;border-radius:999px;background:#EAF4EF;color:#013220;font-weight:700;font-size:12px;padding:7px 10px;margin:3px 5px 3px 0;}\",\n      \".section{font-size:22px;color:#013220;margin:28px 0 12px;}\",\n      \"table{width:100%;border-collapse:collapse;border:1px solid #DDE7E1;border-radius:14px;overflow:hidden;margin-bottom:22px;}\",\n      \"th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #DDE7E1;font-size:14px;}\",\n      \"th{background:#F7FAF8;color:#013220;font-size:12px;text-transform:uppercase;letter-spacing:.05em;}\",\n      \"tr:last-child td{border-bottom:none;}\",\n      \".grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}\",\n      \".programme-card{border:1px solid #DDE7E1;border-radius:18px;padding:16px;background:#fff;}\",\n      \".programme-card h3{font-size:16px;line-height:1.25;margin:8px 0 6px;color:#013220;}\",\n      \".programme-card a{color:#013220;text-decoration:none;font-weight:800;}\",\n      \".programme-card a:hover{text-decoration:underline;}\",\n      \".programme-card p{font-size:13px;line-height:1.45;color:#52605A;margin:0 0 8px;}\",\n      \".meta{font-size:12px!important;font-weight:700;color:#6C4B00!important;}\",\n      \".programme-card ul{margin:8px 0 0 18px;padding:0;color:#52605A;font-size:12px;line-height:1.45;}\",\n      \".status{display:inline-block;border-radius:999px;font-size:11px;font-weight:800;padding:5px 9px;}\",\n      \".status.yes{background:#EAF4EF;color:#0A6B45;}\",\n      \".status.check{background:#FFF8E6;color:#6C4B00;}\",\n      \".status.route{background:#FFF3EF;color:#A6422A;}\",\n      \".note{border:1px solid #DDE7E1;background:#F7FAF8;border-radius:18px;padding:16px;color:#52605A;line-height:1.55;font-size:14px;margin-top:18px;}\",\n      \".note strong{color:#013220;}\",\n      \".checks{margin:0 0 20px 20px;color:#52605A;line-height:1.55;}\",\n      \".footer{border-top:1px solid #DDE7E1;padding-top:18px;margin-top:24px;color:#52605A;font-size:13px;line-height:1.5;}\",\n      \".actions{margin:24px 0 0;display:flex;gap:10px;flex-wrap:wrap;}\",\n      \".btn{display:inline-block;border-radius:999px;padding:11px 16px;background:#013220;color:#fff;text-decoration:none;font-weight:800;font-size:13px;border:none;cursor:pointer;}\",\n      \".btn.gold{background:#B8860B;}\",\n      \"@media(max-width:760px){.page{margin:0;border-radius:0}.content,.hero{padding:24px}.score-wrap{grid-template-columns:1fr}.grid{grid-template-columns:1fr}h1{font-size:34px}}\",\n      \"@media print{body{background:#fff}.page{box-shadow:none;margin:0;max-width:none;border-radius:0}.actions{display:none}}\"\n    ].join(\"\");\n\n    const countedRows = data.counted.map(function(s) {\n      return node(\"tr\", {}, \n        node(\"td\", {}, safeHTML(s.name || \"Subject\")) +\n        node(\"td\", {}, safeHTML(s.mark + \"%\")) +\n        node(\"td\", {}, node(\"strong\", {}, safeHTML(s.points + \" pts\")))\n      );\n    }).join(\"\");\n\n    const checkItems = [];\n    if (data.selectedPass === \"unknown\") {\n      checkItems.push(\"Your pass type was estimated from the marks entered. Use the endorsement on your official statement of results for final decisions.\");\n    }\n    if (!data.readiness.lawEnglish) {\n      checkItems.push(\"If you are interested in law, check whether your English mark meets the specific English requirement.\");\n    }\n    if (!data.readiness.mathStrong) {\n      checkItems.push(\"Some commerce, accounting and technology degrees may require Mathematics rather than Mathematical Literacy.\");\n    }\n    if (!data.readiness.scienceBasic) {\n      checkItems.push(\"Technology and IT routes may require or recommend science readiness.\");\n    }\n    if (!checkItems.length) {\n      checkItems.push(\"Your entered marks look ready for a meaningful programme conversation. Final admission is still subject to official review.\");\n    }\n\n    const checkList = checkItems.map(function(item) {\n      return node(\"li\", {}, safeHTML(item));\n    }).join(\"\");\n\n    const programmeCards = data.programmes.slice(0, 9).map(function(p) {\n      const reasons = p.evaluation.reasons.map(function(r) {\n        return node(\"li\", {}, safeHTML(r));\n      }).join(\"\");\n\n      return node(\"article\", { \"class\": \"programme-card\" },\n        node(\"span\", { \"class\": \"status \" + reportStatusClass(p.evaluation.status) }, safeHTML(reportStatusLabel(p.evaluation.status))) +\n        node(\"h3\", {}, node(\"a\", {\n          href: programmeURL(p.name, \"aps_report_\" + p.name),\n          target: \"_blank\",\n          rel: \"noopener\"\n        }, safeHTML(p.name))) +\n        node(\"p\", { \"class\": \"meta\" }, safeHTML(p.group + \" \u2022 \" + p.level)) +\n        node(\"p\", {}, safeHTML(p.note)) +\n        node(\"ul\", {}, reasons)\n      );\n    }).join(\"\");\n\n    const smartRouteCards = getSmartRoutes(data).map(function(route, index) {\n      return node(\"article\", { \"class\": \"programme-card\" },\n        node(\"span\", { \"class\": \"status check\" }, safeHTML(route.label)) +\n        node(\"h3\", {}, node(\"a\", {\n          href: programmeURL(route.name, \"aps_report_smart_route_\" + (index + 1)),\n          target: \"_blank\",\n          rel: \"noopener\"\n        }, safeHTML(route.name))) +\n        node(\"p\", { \"class\": \"meta\" }, safeHTML(route.group)) +\n        node(\"p\", {}, safeHTML(route.note))\n      );\n    }).join(\"\");\n\n    const head =\n      voidNode(\"meta\", { charset: \"utf-8\" }) +\n      voidNode(\"meta\", { name: \"viewport\", content: \"width=device-width, initial-scale=1\" }) +\n      node(\"title\", {}, \"APS Score Report\") +\n      node(\"style\", {}, css);\n\n    const hero =\n      node(\"section\", { \"class\": \"hero\" },\n        node(\"div\", { \"class\": \"kicker\" }, \"APS Score Report\") +\n        node(\"h1\", {}, \"Your APS score is \" + safeHTML(data.aps) + \" out of 42\") +\n        node(\"p\", {}, \"This report summarises your Admission Point Score, the subjects counted, important subject checks and study routes worth exploring.\")\n      );\n\n    const scoreBlock =\n      node(\"div\", { \"class\": \"score-wrap\" },\n        node(\"div\", { \"class\": \"score\" }, node(\"div\", {}, node(\"strong\", {}, safeHTML(data.aps)) + node(\"span\", {}, \"APS \/ 42\"))) +\n        node(\"div\", { \"class\": \"summary\" },\n          node(\"h2\", {}, \"What your score means\") +\n          node(\"p\", {}, safeHTML(scoreMessage(data.aps))) +\n          node(\"span\", { \"class\": \"pill\" }, \"Result type used: \" + safeHTML(passLabel(data.pass))) +\n          node(\"span\", { \"class\": \"pill\" }, \"English: \" + safeHTML(data.readiness.englishText)) +\n          node(\"span\", { \"class\": \"pill\" }, \"Maths: \" + safeHTML(data.readiness.mathType)) +\n          node(\"span\", { \"class\": \"pill\" }, \"Generated: \" + safeHTML(generated))\n        )\n      );\n\n    const content =\n      node(\"section\", { \"class\": \"content\" },\n        scoreBlock +\n        node(\"h2\", { \"class\": \"section\" }, \"Subjects counted in your APS\") +\n        node(\"table\", {},\n          node(\"thead\", {}, node(\"tr\", {}, node(\"th\", {}, \"Subject\") + node(\"th\", {}, \"Mark\") + node(\"th\", {}, \"APS points\"))) +\n          node(\"tbody\", {}, countedRows)\n        ) +\n        node(\"h2\", { \"class\": \"section\" }, \"What to check next\") +\n        node(\"ul\", { \"class\": \"checks\" }, checkList) +\n        node(\"h2\", { \"class\": \"section\" }, \"Study routes worth exploring\") +\n        node(\"div\", { \"class\": \"grid\" }, programmeCards) +\n        (smartRouteCards ? node(\"h2\", { \"class\": \"section\" }, \"Other smart routes to ask about\") + node(\"div\", { \"class\": \"grid\" }, smartRouteCards) : \"\") +\n        node(\"div\", { \"class\": \"note\" }, node(\"strong\", {}, \"Important:\") + \" This report is a guidance tool. Final admission depends on official results, programme-specific requirements, available space and admissions review.\") +\n        node(\"div\", { \"class\": \"footer\" }, \"Use this report to compare options and have a clearer conversation with an admissions advisor. Your APS is a starting point, not the whole decision.\") +\n        node(\"div\", { \"class\": \"actions\" },\n          node(\"button\", { \"class\": \"btn\", onclick: \"window.print()\" }, \"Print or save as PDF\") +\n          node(\"a\", { \"class\": \"btn gold\", href: \"https:\/\/www.regenesys.net\/all-academic-programmes?utm_source=reginsights&utm_medium=aps_report&utm_campaign=aps_calculator&utm_content=explore_programmes\", target: \"_blank\", rel: \"noopener\" }, \"Explore programmes\")\n        )\n      );\n\n    const body = node(\"body\", {}, node(\"main\", { \"class\": \"page\" }, hero + content));\n    const doc = String.fromCharCode(60) + \"!doctype html\" + String.fromCharCode(62) +\n      node(\"html\", { lang: \"en\" }, node(\"head\", {}, head) + body);\n\n    return doc;\n  }\n\n  function downloadReport(data) {\n    const html = buildStyledReportHTML(data);\n    const blob = new Blob([html], { type: \"text\/html;charset=utf-8\" });\n    const url = URL.createObjectURL(blob);\n    const a = document.createElement(\"a\");\n    const dateSlug = new Date().toISOString().slice(0, 10);\n    a.href = url;\n    a.download = \"aps-score-report-\" + dateSlug + \".html\";\n    document.body.appendChild(a);\n    a.click();\n    a.remove();\n    URL.revokeObjectURL(url);\n  }\n\n  function openReport(data) {\n    const html = buildStyledReportHTML(data);\n    const win = window.open(\"\", \"_blank\");\n    if (!win) {\n      downloadReport(data);\n      return;\n    }\n    win.document.open();\n    win.document.write(html);\n    win.document.close();\n  }\n\n  render();\n})();\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">What Is an APS Score?<\/h2>\n\n\n\n<p>APS stands for Admission Point Score. It is a points-based score used by many South African higher education institutions to help assess whether applicants meet the academic entry requirements for certain programmes.<\/p>\n\n\n\n<p>Your APS is calculated by converting your subject percentages into points and adding them together. A higher APS may open more study options, but your APS is only one part of the admissions process. Your pass type, subject choices, English mark, Mathematics mark and specific programme requirements also matter.<\/p>\n\n\n\n<p>For example, some degree routes require a Bachelor pass, while certain programmes may also require Mathematics, English or specific subject readiness. The BSc Computer Science page lists a Bachelor pass or relevant NQF Level 5 route as part of its admission requirements, while the BEd page also notes that subject and phase requirements should be checked with an advisor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Calculate Your APS Score<\/h2>\n\n\n\n<p>Most standard APS calculations use your best six recognised 20-credit subjects and exclude Life Orientation.<\/p>\n\n\n\n<p>Each subject percentage is converted into points:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>80\u2013100% = 7 points<\/li>\n\n\n\n<li>70\u201379% = 6 points<\/li>\n\n\n\n<li>60\u201369% = 5 points<\/li>\n\n\n\n<li>50\u201359% = 4 points<\/li>\n\n\n\n<li>40\u201349% = 3 points<\/li>\n\n\n\n<li>30\u201339% = 2 points<\/li>\n\n\n\n<li>0\u201329% = 1 point<\/li>\n<\/ul>\n\n\n\n<p>The highest standard APS is usually <strong>42<\/strong>, calculated from six subjects worth a maximum of 7 points each.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"819\" height=\"1024\" src=\"https:\/\/reginsights.regenesys.net\/wp-content\/uploads\/2026\/07\/aps-points-scale-819x1024-under-100kb.webp\" alt=\"APS points scale showing how matric percentages convert to admission points\" class=\"wp-image-193264\" srcset=\"https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/aps-points-scale-819x1024-under-100kb.webp 819w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/aps-points-scale-819x1024-under-100kb-240x300.webp 240w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/aps-points-scale-819x1024-under-100kb-64x80.webp 64w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/aps-points-scale-819x1024-under-100kb-768x960.webp 768w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/aps-points-scale-819x1024-under-100kb-150x188.webp 150w\" sizes=\"(max-width: 819px) 100vw, 819px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How This APS Calculator Works<\/h2>\n\n\n\n<p>This calculator is designed to give you more than a number.<\/p>\n\n\n\n<p><strong>It helps you:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Download your APS Score Report<\/li>\n\n\n\n<li>Enter your subjects and marks<\/li>\n\n\n\n<li>Exclude Life Orientation from the APS total<\/li>\n\n\n\n<li>Calculate your score out of 42<\/li>\n\n\n\n<li>See which six subjects were counted<\/li>\n\n\n\n<li>Check your pass type<\/li>\n\n\n\n<li>Review English, Mathematics and Science readiness<\/li>\n\n\n\n<li>Explore possible study routes<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"819\" height=\"1024\" src=\"https:\/\/reginsights.regenesys.net\/wp-content\/uploads\/2026\/07\/how-aps-is-calculated-819x1024-under-100kb.webp\" alt=\"how APS is calculated using best six subjects excluding Life Orientation\" class=\"wp-image-193265\" srcset=\"https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/how-aps-is-calculated-819x1024-under-100kb.webp 819w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/how-aps-is-calculated-819x1024-under-100kb-240x300.webp 240w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/how-aps-is-calculated-819x1024-under-100kb-64x80.webp 64w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/how-aps-is-calculated-819x1024-under-100kb-768x960.webp 768w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/how-aps-is-calculated-819x1024-under-100kb-150x188.webp 150w\" sizes=\"(max-width: 819px) 100vw, 819px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Does Life Orientation Count for APS?<\/h2>\n\n\n\n<p>In many standard APS calculations, Life Orientation is not included in the final APS total. This calculator asks you to enter Life Orientation for context, but it excludes it from the APS calculation. Your final APS is based on your best six recognised subjects.<\/p>\n\n\n\n<p>This gives you a clearer view of your score while still helping you keep your full subject profile in one place.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Can I Study With My APS Score?<\/h2>\n\n\n\n<p>Your APS score can help you identify possible study routes, but it should not be used in isolation.<\/p>\n\n\n\n<p>A student with a strong APS may still need to meet subject-specific requirements. A student with a lower APS may still have access to higher certificate, skills-based or alternative entry routes.<\/p>\n\n\n\n<p>That is why this calculator gives guidance in three ways:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Your APS score<\/li>\n\n\n\n<li>Your pass type<\/li>\n\n\n\n<li>Your subject readiness<\/li>\n<\/ol>\n\n\n\n<p>For example, the LLB requires a Bachelor pass or equivalent, with English 1st at 50% or English 2nd at 60%. The Bachelor of Accounting Science requires a Bachelor pass or relevant NQF Level 5 route, plus Mathematics and English competence.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"819\" height=\"1024\" src=\"https:\/\/reginsights.regenesys.net\/wp-content\/uploads\/2026\/07\/aps-study-route-map-819x1024-under-100kb-1.webp\" alt=\"study routes to explore after calculating your APS score\" class=\"wp-image-193266\" srcset=\"https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/aps-study-route-map-819x1024-under-100kb-1.webp 819w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/aps-study-route-map-819x1024-under-100kb-1-240x300.webp 240w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/aps-study-route-map-819x1024-under-100kb-1-64x80.webp 64w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/aps-study-route-map-819x1024-under-100kb-1-768x960.webp 768w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/aps-study-route-map-819x1024-under-100kb-1-150x188.webp 150w\" sizes=\"(max-width: 819px) 100vw, 819px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">APS Score and Study Route Guide<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Higher Certificate routes<\/h3>\n\n\n\n<p>If your marks do not yet meet Bachelor degree entry requirements, a higher certificate can be a smart starting point. It can help you build confidence, earn credits and work towards further study.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Diploma-ready pathways<\/h3>\n\n\n\n<p>A diploma pass may open applied study routes. You should still check the exact programme requirements before making a decision.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bachelor\u2019s degree routes<\/h3>\n\n\n\n<p>A Bachelor pass can open access to degree-level study, but you still need to check subject requirements. Some degrees may require Mathematics, English or other specific academic readiness.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Skills and occupational routes<\/h3>\n\n\n\n<p>Your APS is not the only way forward. Skills programmes, occupational certificates and workplace-focused learning can help you build practical capability and move towards a career goal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Advisor conversation<\/h3>\n\n\n\n<p>Your APS report gives you a stronger starting point. Instead of asking, \u201cWhat can I study?\u201d, you can ask, \u201cGiven my APS, pass type, subjects and interests, which route makes the most sense?\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What to Do After Calculating Your APS<\/h2>\n\n\n\n<p>Once you have your APS result, do not stop at the number.<\/p>\n\n\n\n<p>Use your result to ask better questions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Do I have a Bachelor, Diploma or Higher Certificate pass?<\/li>\n\n\n\n<li>Which subjects were counted in my APS?<\/li>\n\n\n\n<li>Does my English mark meet the requirement?<\/li>\n\n\n\n<li>Did I take Mathematics or Mathematical Literacy?<\/li>\n\n\n\n<li>Do my marks fit the programme I am interested in?<\/li>\n\n\n\n<li>Is there a better stepping-stone route?<\/li>\n\n\n\n<li>Should I speak to an advisor before applying?<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"819\" height=\"1024\" src=\"https:\/\/reginsights.regenesys.net\/wp-content\/uploads\/2026\/07\/after-your-aps-result-819x1024-under-100kb.webp\" alt=\"what to do after calculating your APS score\" class=\"wp-image-193267\" srcset=\"https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/after-your-aps-result-819x1024-under-100kb.webp 819w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/after-your-aps-result-819x1024-under-100kb-240x300.webp 240w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/after-your-aps-result-819x1024-under-100kb-64x80.webp 64w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/after-your-aps-result-819x1024-under-100kb-768x960.webp 768w, https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/after-your-aps-result-819x1024-under-100kb-150x188.webp 150w\" sizes=\"(max-width: 819px) 100vw, 819px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Download Your APS Score Report<\/h2>\n\n\n\n<p>After calculating your score, you can download your APS Score Report.<\/p>\n\n\n\n<p>Your report includes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Your APS score out of 42<\/li>\n\n\n\n<li>Your subjects counted<\/li>\n\n\n\n<li>Your points per subject<\/li>\n\n\n\n<li>Your pass type guidance<\/li>\n\n\n\n<li>Subject checks<\/li>\n\n\n\n<li>Study routes worth exploring<\/li>\n\n\n\n<li>Practical next steps<\/li>\n<\/ul>\n\n\n\n<p>Keep this report and use it when comparing programmes or speaking to an advisor.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Explore Study Options That Match Your Marks<\/h2>\n\n\n\n<p>Your APS score is not just a number. It is a starting point. Once you know your score, you can explore study routes that fit your marks, interests and goals.<\/p>\n\n\n\n<p><a>Explore Programmes<\/a><\/p>\n\n\n\n<p><a>Speak to an Advisor<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Career Aptitude Test FAQs<\/h2>\n\n\n\n<div class=\"wp-block-essential-blocks-accordion  root-eb-accordion-ogpz4\"><div class=\"eb-parent-wrapper eb-parent-eb-accordion-ogpz4 \"><div class=\"eb-accordion-container eb-accordion-ogpz4\" data-accordion-type=\"accordion\" data-tab-icon=\"fas fa-angle-right\" data-expanded-icon=\"fas fa-angle-down\" data-transition-duration=\"500\"><div class=\"eb-accordion-inner\">\n<div class=\"wp-block-essential-blocks-accordion-item eb-accordion-item-ocp10 eb-accordion-wrapper\" data-clickable=\"false\"><div class=\"eb-accordion-title-wrapper eb-accordion-title-wrapper-eb-accordion-ogpz4\" tabindex=\"0\"><span class=\"eb-accordion-icon-wrapper eb-accordion-icon-wrapper-eb-accordion-ogpz4\"><span class=\"fas fa-angle-right eb-accordion-icon\"><\/span><\/span><div class=\"eb-accordion-title-content-wrap title-content-eb-accordion-ogpz4\"><h3 class=\"eb-accordion-title\">What is an APS calculator?<\/h3><\/div><\/div><div class=\"eb-accordion-content-wrapper eb-accordion-content-wrapper-eb-accordion-ogpz4\"><div class=\"eb-accordion-content\">\n<p>An APS calculator is a tool that helps you calculate your Admission Point Score by converting your school subject marks into points.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-accordion-item eb-accordion-item-95svh eb-accordion-wrapper\" data-clickable=\"false\"><div class=\"eb-accordion-title-wrapper eb-accordion-title-wrapper-eb-accordion-ogpz4\" tabindex=\"0\"><span class=\"eb-accordion-icon-wrapper eb-accordion-icon-wrapper-eb-accordion-ogpz4\"><span class=\"fas fa-angle-right eb-accordion-icon\"><\/span><\/span><div class=\"eb-accordion-title-content-wrap title-content-eb-accordion-ogpz4\"><h3 class=\"eb-accordion-title\">How is APS calculated?<\/h3><\/div><\/div><div class=\"eb-accordion-content-wrapper eb-accordion-content-wrapper-eb-accordion-ogpz4\"><div class=\"eb-accordion-content\">\n<p>APS is calculated by converting each subject percentage into a point score and adding the selected subjects together. Many standard APS methods use the best six subjects and exclude Life Orientation.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-accordion-item eb-accordion-item-jsng0 eb-accordion-wrapper\" data-clickable=\"false\"><div class=\"eb-accordion-title-wrapper eb-accordion-title-wrapper-eb-accordion-ogpz4\" tabindex=\"0\"><span class=\"eb-accordion-icon-wrapper eb-accordion-icon-wrapper-eb-accordion-ogpz4\"><span class=\"fas fa-angle-right eb-accordion-icon\"><\/span><\/span><div class=\"eb-accordion-title-content-wrap title-content-eb-accordion-ogpz4\"><h3 class=\"eb-accordion-title\">Does Life Orientation count for APS?<\/h3><\/div><\/div><div class=\"eb-accordion-content-wrapper eb-accordion-content-wrapper-eb-accordion-ogpz4\"><div class=\"eb-accordion-content\">\n<p>In many standard APS calculations, Life Orientation is excluded. This calculator excludes Life Orientation from your APS total.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-accordion-item eb-accordion-item-f03hi eb-accordion-wrapper\" data-clickable=\"false\"><div class=\"eb-accordion-title-wrapper eb-accordion-title-wrapper-eb-accordion-ogpz4\" tabindex=\"0\"><span class=\"eb-accordion-icon-wrapper eb-accordion-icon-wrapper-eb-accordion-ogpz4\"><span class=\"fas fa-angle-right eb-accordion-icon\"><\/span><\/span><div class=\"eb-accordion-title-content-wrap title-content-eb-accordion-ogpz4\"><h3 class=\"eb-accordion-title\">What is the highest APS score?<\/h3><\/div><\/div><div class=\"eb-accordion-content-wrapper eb-accordion-content-wrapper-eb-accordion-ogpz4\"><div class=\"eb-accordion-content\">\n<p>Using the standard best-six method, the highest APS score is 42.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-accordion-item eb-accordion-item-97p1g eb-accordion-wrapper\" data-clickable=\"false\"><div class=\"eb-accordion-title-wrapper eb-accordion-title-wrapper-eb-accordion-ogpz4\" tabindex=\"0\"><span class=\"eb-accordion-icon-wrapper eb-accordion-icon-wrapper-eb-accordion-ogpz4\"><span class=\"fas fa-angle-right eb-accordion-icon\"><\/span><\/span><div class=\"eb-accordion-title-content-wrap title-content-eb-accordion-ogpz4\"><h3 class=\"eb-accordion-title\">Can I use Grade 11 marks?<\/h3><\/div><\/div><div class=\"eb-accordion-content-wrapper eb-accordion-content-wrapper-eb-accordion-ogpz4\"><div class=\"eb-accordion-content\">\n<p>Yes. You can use Grade 11 marks for planning, but final admission decisions normally depend on official final results and programme requirements.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-accordion-item eb-accordion-item-80k90 eb-accordion-wrapper\" data-clickable=\"false\"><div class=\"eb-accordion-title-wrapper eb-accordion-title-wrapper-eb-accordion-ogpz4\" tabindex=\"0\"><span class=\"eb-accordion-icon-wrapper eb-accordion-icon-wrapper-eb-accordion-ogpz4\"><span class=\"fas fa-angle-right eb-accordion-icon\"><\/span><\/span><div class=\"eb-accordion-title-content-wrap title-content-eb-accordion-ogpz4\"><h3 class=\"eb-accordion-title\">Does a high APS guarantee admission?<\/h3><\/div><\/div><div class=\"eb-accordion-content-wrapper eb-accordion-content-wrapper-eb-accordion-ogpz4\"><div class=\"eb-accordion-content\">\n<p>No. A high APS does not guarantee admission. Final admission depends on your official results, pass type, subject requirements, available space and admissions review.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-accordion-item eb-accordion-item-5j8ms eb-accordion-wrapper\" data-clickable=\"false\"><div class=\"eb-accordion-title-wrapper eb-accordion-title-wrapper-eb-accordion-ogpz4\" tabindex=\"0\"><span class=\"eb-accordion-icon-wrapper eb-accordion-icon-wrapper-eb-accordion-ogpz4\"><span class=\"fas fa-angle-right eb-accordion-icon\"><\/span><\/span><div class=\"eb-accordion-title-content-wrap title-content-eb-accordion-ogpz4\"><h3 class=\"eb-accordion-title\">What if my APS is low?<\/h3><\/div><\/div><div class=\"eb-accordion-content-wrapper eb-accordion-content-wrapper-eb-accordion-ogpz4\"><div class=\"eb-accordion-content\">\n<p>A lower APS does not mean you have no options. You may still be able to explore higher certificate routes, occupational qualifications, skills programmes or alternative study pathways.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-accordion-item eb-accordion-item-65jd3 eb-accordion-wrapper\" data-clickable=\"false\"><div class=\"eb-accordion-title-wrapper eb-accordion-title-wrapper-eb-accordion-ogpz4\" tabindex=\"0\"><span class=\"eb-accordion-icon-wrapper eb-accordion-icon-wrapper-eb-accordion-ogpz4\"><span class=\"fas fa-angle-right eb-accordion-icon\"><\/span><\/span><div class=\"eb-accordion-title-content-wrap title-content-eb-accordion-ogpz4\"><h3 class=\"eb-accordion-title\">Why do subject requirements matter?<\/h3><\/div><\/div><div class=\"eb-accordion-content-wrapper eb-accordion-content-wrapper-eb-accordion-ogpz4\"><div class=\"eb-accordion-content\">\n<p>Some programmes need specific subject readiness. For example, law may require a certain English mark, while accounting, finance or technology programmes may require Mathematics or strong numeracy.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-essential-blocks-accordion-item eb-accordion-item-1bld0 eb-accordion-wrapper\" data-clickable=\"false\"><div class=\"eb-accordion-title-wrapper eb-accordion-title-wrapper-eb-accordion-ogpz4\" tabindex=\"0\"><span class=\"eb-accordion-icon-wrapper eb-accordion-icon-wrapper-eb-accordion-ogpz4\"><span class=\"fas fa-angle-right eb-accordion-icon\"><\/span><\/span><div class=\"eb-accordion-title-content-wrap title-content-eb-accordion-ogpz4\"><h3 class=\"eb-accordion-title\">Can this calculator tell me exactly what I qualify for?<\/h3><\/div><\/div><div class=\"eb-accordion-content-wrapper eb-accordion-content-wrapper-eb-accordion-ogpz4\"><div class=\"eb-accordion-content\">\n<p>It gives guidance based on your APS, pass type and subject information. Final confirmation should always be done through the official admissions process.<\/p>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Start With Your Score. Then Find Your Direction.<\/h2>\n\n\n\n<p class=\"has-text-align-center\">Your APS score can help you understand where you stand. But the real value comes from knowing what to do next.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What Is an APS Score? APS stands for Admission Point Score. It is a points-based score used by many South African higher education institutions to help assess whether applicants meet the academic entry requirements for certain programmes. Your APS is calculated by converting your subject percentages into points and adding them together. A higher APS<\/p>\n","protected":false},"author":60,"featured_media":193269,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_eb_attr":"","_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"class_list":["post-193263","page","type-page","status-publish","has-post-thumbnail"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>APS Calculator - RegInsights<\/title>\n<meta name=\"description\" content=\"Use this free APS calculator to work out your score, understand what it means and explore study routes that may fit your marks.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.regenesys.net\/reginsights\/aps-calculator\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"APS Calculator - RegInsights\" \/>\n<meta property=\"og:description\" content=\"Use this free APS calculator to work out your score, understand what it means and explore study routes that may fit your marks.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.regenesys.net\/reginsights\/aps-calculator\" \/>\n<meta property=\"og:site_name\" content=\"RegInsights\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RegenesysBusinessSchool\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-11T12:23:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"750\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@RegenesysB\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/aps-calculator\",\"url\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/aps-calculator\",\"name\":\"APS Calculator - RegInsights\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/aps-calculator#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/aps-calculator#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/premium-aps-calculator-hero-1920x750-under-100kb.webp\",\"datePublished\":\"2026-07-11T09:40:20+00:00\",\"dateModified\":\"2026-07-11T12:23:25+00:00\",\"description\":\"Use this free APS calculator to work out your score, understand what it means and explore study routes that may fit your marks.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/aps-calculator#breadcrumb\"},\"inLanguage\":\"en-ZA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/aps-calculator\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-ZA\",\"@id\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/aps-calculator#primaryimage\",\"url\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/premium-aps-calculator-hero-1920x750-under-100kb.webp\",\"contentUrl\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/premium-aps-calculator-hero-1920x750-under-100kb.webp\",\"width\":1920,\"height\":750,\"caption\":\"APS calculator illustration showing score panel, subject summary and study route guidance\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/aps-calculator#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"APS Calculator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/#website\",\"url\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/\",\"name\":\"RegInsights\",\"description\":\"Thought Leadership\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.regenesys.net\\\/reginsights\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-ZA\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"APS Calculator - RegInsights","description":"Use this free APS calculator to work out your score, understand what it means and explore study routes that may fit your marks.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.regenesys.net\/reginsights\/aps-calculator","og_locale":"en_US","og_type":"article","og_title":"APS Calculator - RegInsights","og_description":"Use this free APS calculator to work out your score, understand what it means and explore study routes that may fit your marks.","og_url":"https:\/\/www.regenesys.net\/reginsights\/aps-calculator","og_site_name":"RegInsights","article_publisher":"https:\/\/www.facebook.com\/RegenesysBusinessSchool\/","article_modified_time":"2026-07-11T12:23:25+00:00","og_image":[{"width":1920,"height":750,"url":"https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_site":"@RegenesysB","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.regenesys.net\/reginsights\/aps-calculator","url":"https:\/\/www.regenesys.net\/reginsights\/aps-calculator","name":"APS Calculator - RegInsights","isPartOf":{"@id":"https:\/\/www.regenesys.net\/reginsights\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.regenesys.net\/reginsights\/aps-calculator#primaryimage"},"image":{"@id":"https:\/\/www.regenesys.net\/reginsights\/aps-calculator#primaryimage"},"thumbnailUrl":"https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp","datePublished":"2026-07-11T09:40:20+00:00","dateModified":"2026-07-11T12:23:25+00:00","description":"Use this free APS calculator to work out your score, understand what it means and explore study routes that may fit your marks.","breadcrumb":{"@id":"https:\/\/www.regenesys.net\/reginsights\/aps-calculator#breadcrumb"},"inLanguage":"en-ZA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.regenesys.net\/reginsights\/aps-calculator"]}]},{"@type":"ImageObject","inLanguage":"en-ZA","@id":"https:\/\/www.regenesys.net\/reginsights\/aps-calculator#primaryimage","url":"https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp","contentUrl":"https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp","width":1920,"height":750,"caption":"APS calculator illustration showing score panel, subject summary and study route guidance"},{"@type":"BreadcrumbList","@id":"https:\/\/www.regenesys.net\/reginsights\/aps-calculator#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.regenesys.net\/reginsights\/"},{"@type":"ListItem","position":2,"name":"APS Calculator"}]},{"@type":"WebSite","@id":"https:\/\/www.regenesys.net\/reginsights\/#website","url":"https:\/\/www.regenesys.net\/reginsights\/","name":"RegInsights","description":"Thought Leadership","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.regenesys.net\/reginsights\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-ZA"}]}},"rttpg_featured_image_url":{"full":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp",1920,750,false],"landscape":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp",1920,750,false],"portraits":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp",1920,750,false],"thumbnail":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-80x31.webp",80,31,true],"medium":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-300x117.webp",300,117,true],"large":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-1024x400.webp",770,301,true],"1536x1536":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-1536x600.webp",1536,600,true],"2048x2048":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp",1920,750,false],"post-thumbnail":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-270x180.webp",270,180,true],"contentberg-main":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-770x515.webp",770,515,true],"contentberg-main-full":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-1170x508.webp",1170,508,true],"contentberg-slider-stylish":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-900x515.webp",900,515,true],"contentberg-slider-carousel":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-370x370.webp",370,370,true],"contentberg-slider-grid-b":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-554x466.webp",554,466,true],"contentberg-slider-grid-b-sm":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-306x466.webp",306,466,true],"contentberg-slider-bold-sm":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-150x150.webp",150,150,true],"contentberg-grid":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-370x245.webp",370,245,true],"contentberg-list":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-260x200.webp",260,200,true],"contentberg-list-b":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-370x305.webp",370,305,true],"contentberg-thumb":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-87x67.webp",87,67,true],"contentberg-thumb-alt":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-150x150.webp",150,150,true],"gform-image-choice-sm":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp",300,117,false],"gform-image-choice-md":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp",400,156,false],"gform-image-choice-lg":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb.webp",600,234,false],"web-stories-poster-portrait":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-640x750.webp",640,750,true],"web-stories-publisher-logo":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-96x96.webp",96,96,true],"web-stories-thumbnail":["https:\/\/www.regenesys.net\/reginsights\/wp-content\/uploads\/2026\/07\/premium-aps-calculator-hero-1920x750-under-100kb-150x59.webp",150,59,true]},"rttpg_author":{"display_name":"Thabiso Makekele","author_link":"https:\/\/www.regenesys.net\/reginsights\/author\/thabiso"},"rttpg_comment":0,"rttpg_category":null,"rttpg_excerpt":"What Is an APS Score? APS stands for Admission Point Score. It is a points-based score used by many South African higher education institutions to help assess whether applicants meet the academic entry requirements for certain programmes. Your APS is calculated by converting your subject percentages into points and adding them together. A higher APS","_links":{"self":[{"href":"https:\/\/www.regenesys.net\/reginsights\/wp-json\/wp\/v2\/pages\/193263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.regenesys.net\/reginsights\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.regenesys.net\/reginsights\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.regenesys.net\/reginsights\/wp-json\/wp\/v2\/users\/60"}],"replies":[{"embeddable":true,"href":"https:\/\/www.regenesys.net\/reginsights\/wp-json\/wp\/v2\/comments?post=193263"}],"version-history":[{"count":10,"href":"https:\/\/www.regenesys.net\/reginsights\/wp-json\/wp\/v2\/pages\/193263\/revisions"}],"predecessor-version":[{"id":194975,"href":"https:\/\/www.regenesys.net\/reginsights\/wp-json\/wp\/v2\/pages\/193263\/revisions\/194975"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.regenesys.net\/reginsights\/wp-json\/wp\/v2\/media\/193269"}],"wp:attachment":[{"href":"https:\/\/www.regenesys.net\/reginsights\/wp-json\/wp\/v2\/media?parent=193263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}