{"id":15595,"date":"2026-10-29T12:22:29","date_gmt":"2026-10-29T16:22:29","guid":{"rendered":"https:\/\/hesamkazemi.com\/?page_id=15595"},"modified":"2026-11-01T12:59:34","modified_gmt":"2026-11-01T17:59:34","slug":"crs-calculator","status":"publish","type":"page","link":"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/","title":{"rendered":"CRS Calculator"},"content":{"rendered":"<section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_top type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"w-html\"><!-- ENGLISH CRS CALCULATOR v14 \u2014 complete replacement with live pool position, section meters and personalised score opportunities. -->\n<style>@import url('https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap');\nhtml[lang^=\"en\"] .l-section:has(#hk-crs-stage){padding-top:0!important;padding-bottom:0!important}\n#hk-crs-stage{--red:#ed1c24;--text:#536073;--heading:#0f172a;--muted:#536073;--border:#dfe3e8;--soft:#f5f7fa;--surface-ice:#edf5fb;--border-ice:#c9ddeb;--surface-lilac:#f4f0fa;--border-lilac:#ded4ec;--surface-khaki:#f3efe5;--border-khaki:#ddd2bc;--green:#357e62;--surface-green:#edf7f2;--border-green:#a8d1bf;--question-bg:var(--surface-ice);--question-border:var(--border-ice);width:100vw;margin-left:calc(50% - 50vw);background:#fff;color:var(--text);direction:ltr;text-align:left;overflow-x:clip;font-family:\"Plus Jakarta Sans\",Arial,sans-serif;font-size:16px;font-weight:500;line-height:1.85}\n#hk-crs-stage *,#hk-crs-stage *::before,#hk-crs-stage *::after{box-sizing:border-box}\n#hk-crs-stage *{font-family:inherit}\n#hk-crs-stage [hidden],#hk-crs-en .hidden{display:none!important}\n#hk-crs-stage .crs-container,#hk-crs-en{width:100%;max-width:1360px;margin:0 auto;padding:0 28px}\n#hk-crs-stage .crs-hero{padding:32px 0 42px}\n#hk-crs-stage .crs-eyebrow{display:flex;align-items:center;gap:11px;margin-bottom:16px;color:var(--red);font-size:12px;font-weight:800;letter-spacing:1.3px;line-height:1.5;text-transform:uppercase}\n#hk-crs-stage .crs-eyebrow::before{content:\"\";flex:0 0 27px;height:3px;border-radius:3px;background:var(--red)}\n#hk-crs-stage h1{max-width:1000px;margin:0 0 24px!important;color:var(--heading);font-size:clamp(44px,4.4vw,65px);font-weight:800;line-height:1.1;letter-spacing:-2.5px;text-align:left}\n#hk-crs-stage h1 span{color:var(--red)}\n#hk-crs-stage .crs-intro{max-width:900px;margin:0;font-size:17px;line-height:1.8}\n#hk-crs-stage .crs-hero-meta{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:24px;font-size:13px;font-weight:600}\n#hk-crs-stage .crs-hero-meta span{display:flex;align-items:center;gap:8px}\n#hk-crs-stage .crs-hero-meta span::before{content:\"\";width:6px;height:6px;border-radius:50%;background:var(--red)}\n#hk-crs-en{padding-bottom:64px;font-size:15px;line-height:1.85;color:var(--text)}\n#hk-crs-en h2,#hk-crs-en h3{margin:0 0 12px!important;padding:0;color:var(--heading);font-weight:800;text-align:left;letter-spacing:-.5px;line-height:1.4}\n#hk-crs-en h2{font-size:26px}#hk-crs-en h3{font-size:22px}\n#hk-crs-en p{margin:0 0 12px;text-align:left;line-height:1.85}\n#hk-crs-en .wrap{border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 12px 40px rgba(15,23,42,.045)}\n#hk-crs-en .head{padding:26px 30px;border-bottom:1px solid var(--border);background:var(--soft)}\n#hk-crs-en .kicker{color:var(--red);font-size:12px;letter-spacing:1px;font-weight:800;margin-bottom:8px}\n#hk-crs-en .head .sub{width:100%;max-width:none;margin:0!important;font-size:15px;line-height:1.8;text-align:left!important}\n#hk-crs-en .progress{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:0 30px;margin:0;background:#fff;border-bottom:1px solid var(--border)}\n#hk-crs-en .progress-item span{display:flex;flex:0 0 28px;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:50%;color:var(--muted);font-size:12px;line-height:1}\n#hk-crs-en .progress-item.done span{color:var(--green);border-color:var(--border-green);background:#fff}\n#hk-crs-en .body{padding:30px}\n#hk-crs-en .form-shell{padding:0;background:#fff}\n#hk-crs-en .step{display:none;padding:0;background:#fff}\n#hk-crs-en .step.active{display:block}\n#hk-crs-en .step-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid var(--border)}\n#hk-crs-en .step-number{display:flex;flex:0 0 38px;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid #f4bfc1;border-radius:50%;background:#fff6f6;color:var(--red);font-size:13px;font-weight:800;line-height:1}\n#hk-crs-en .step-title p{max-width:850px;margin:0;color:var(--muted)}\n#hk-crs-en .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 26px;align-items:stretch}\n#hk-crs-en .grid>.field>label{min-height:var(--crs-label-height,0px)}\n#hk-crs-en .field>.noc-help{display:flex;width:fit-content;margin:12px 0 0}\n#hk-crs-en .work-rules{margin-top:20px;padding:18px 20px;background:var(--surface-khaki);border-color:var(--border-khaki)}\n#hk-crs-en .field{min-width:0;padding:19px 20px;border:1px solid var(--question-border);border-radius:9px;background:var(--question-bg);transition:border-color .18s,box-shadow .18s,background-color .18s}\n#hk-crs-en .grid>.field.tone-left{background:var(--surface-ice);border-color:var(--border-ice)}\n#hk-crs-en .grid>.field.tone-right{background:var(--surface-lilac);border-color:var(--border-lilac)}\n#hk-crs-en .field:focus-within{border-color:#d99195;box-shadow:0 0 0 3px rgba(237,28,36,.08)}\n#hk-crs-en label{display:block;margin:0 0 9px;color:var(--heading);font-size:15px;font-weight:700;line-height:1.65}\n#hk-crs-en select,#hk-crs-en input{display:block;width:100%;min-height:52px;height:auto;margin:0;padding:12px 14px;border:1px solid #ccd2dc;border-radius:6px;background:#fff;color:var(--heading);font-size:15px;font-weight:500;line-height:1.5;box-shadow:none;direction:ltr;text-align:left}\n#hk-crs-en select{-webkit-appearance:none!important;appearance:none!important;padding-right:46px!important;background-color:#fff!important;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23536073' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='m5 7.5 5 5 5-5'\/%3E%3C\/svg%3E\")!important;background-repeat:no-repeat!important;background-position:right 17px center!important;background-size:15px 15px!important}\n#hk-crs-en select:focus,#hk-crs-en input:focus{outline:2px solid rgba(237,28,36,.25);outline-offset:2px;border-color:var(--red)}\n#hk-crs-en .note,#hk-crs-en .box{margin-top:18px;padding:16px 18px;border:1px solid var(--border-khaki);border-radius:7px;background:var(--surface-khaki);color:var(--muted);font-size:14px;line-height:1.85}\n#hk-crs-en .box .field+.field{margin-top:20px}\n#hk-crs-en .box .note{padding:0;border:0}\n#hk-crs-en a{color:var(--red);text-underline-offset:4px}\n#hk-crs-en .badge{display:inline-block;margin-left:7px;color:var(--muted);font-size:12px;font-weight:600}\n#hk-crs-en .lang-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}\n#hk-crs-en .lang-panel{border:1px solid var(--border);border-radius:9px;overflow:hidden;background:#fff}\n#hk-crs-en .lang-panel.lang-en{border-color:var(--border-ice)}\n#hk-crs-en .lang-panel.lang-fr{border-color:var(--border-lilac)}\n#hk-crs-en .lang-panel.lang-spouse{margin-top:24px;border-color:var(--border-ice)}\n#hk-crs-en .lang-head{padding:18px 20px;background:var(--soft);border-bottom:1px solid var(--border)}\n#hk-crs-en .lang-panel.lang-en .lang-head{background:var(--surface-ice);border-color:var(--border-ice)}\n#hk-crs-en .lang-panel.lang-fr .lang-head{background:var(--surface-lilac);border-color:var(--border-lilac)}\n#hk-crs-en .lang-panel.lang-spouse .lang-head{background:var(--surface-ice);border-color:var(--border-ice)}\n#hk-crs-en .lang-head strong{display:block;color:var(--heading);font-size:17px;font-weight:800}\n#hk-crs-en .lang-head small{display:block;font-size:12px;font-weight:500;margin-top:4px}\n#hk-crs-en .lang-body{padding:20px}\n#hk-crs-en .skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}\n#hk-crs-en .skill-label{margin-bottom:8px;color:var(--heading);font-weight:700;font-size:14px;line-height:1.5}\n#hk-crs-en .skill-label small{display:none}\n#hk-crs-en .actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;margin:30px 0 0;padding-top:22px;border-top:1px solid var(--border)}\n#hk-crs-en button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;margin:0;padding:12px 24px;border:1px solid var(--border);border-radius:5px;background:#fff;color:var(--heading);font-size:14px;font-weight:700;line-height:1.5;cursor:pointer;transition:transform .2s,border-color .2s,background .2s}\n#hk-crs-en .actions button{width:250px;flex:0 0 250px;max-width:100%;min-width:0!important;height:56px;min-height:56px;padding:12px 18px}\n#hk-crs-en button.primary{background:var(--red);color:#fff;border-color:var(--red)}\n#hk-crs-en button:hover{transform:translateY(-2px);border-color:var(--red)}\n#hk-crs-en button.primary:hover{background:#c9141b}\n#hk-crs-en button:focus-visible{outline:3px solid #0f172a;outline-offset:3px}\n#hk-crs-en button:disabled{opacity:.6;cursor:wait;transform:none}\n#hk-crs-en .error,#hk-crs-en .success{display:none;margin-top:18px;padding:14px 17px;border:1px solid #edb8bc;border-radius:6px;background:#fff6f6;color:#a91821;font-size:14px;line-height:1.7}\n#hk-crs-en .success{border-color:var(--border-green);background:var(--surface-green);color:#276b55}\n#hk-crs-en .output-shell{display:none;margin-top:40px}\n#hk-crs-en .output-intro{margin-bottom:22px}\n#hk-crs-en .output-intro p{margin:0}\n#hk-crs-en .result{display:none;border:1px solid var(--border);border-radius:10px;overflow:hidden}\n#hk-crs-en .result-top{padding:28px;text-align:center;background:var(--soft);border-bottom:1px solid var(--border)}\n#hk-crs-en .total-label,#hk-crs-en .total-sub{font-size:14px}\n#hk-crs-en .total{margin:10px 0;color:var(--red);font-size:64px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}\n#hk-crs-en .score-breakdown{padding:27px 24px;border-bottom:1px solid var(--border);background:#fff}\n#hk-crs-en .score-breakdown-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}\n#hk-crs-en .score-breakdown-head p{max-width:640px;margin:0!important;font-size:13px;line-height:1.75}\n#hk-crs-en .score-breakdown-list{display:grid;gap:15px}\n#hk-crs-en .score-meter{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(260px,1.4fr) 112px;align-items:center;gap:20px;padding:17px 18px;border:1px solid var(--meter-border,var(--border-ice));border-radius:8px;background:var(--meter-bg,var(--surface-ice))}\n#hk-crs-en .score-meter[data-tone=\"ice\"]{--meter-bg:var(--surface-ice);--meter-border:var(--border-ice);--meter-fill:#4f7896}\n#hk-crs-en .score-meter[data-tone=\"lilac\"]{--meter-bg:var(--surface-lilac);--meter-border:var(--border-lilac);--meter-fill:#8d72ad}\n#hk-crs-en .score-meter[data-tone=\"khaki\"]{--meter-bg:var(--surface-khaki);--meter-border:var(--border-khaki);--meter-fill:#a47b37}\n#hk-crs-en .score-meter[data-tone=\"green\"]{--meter-bg:var(--surface-green);--meter-border:var(--border-green);--meter-fill:var(--green)}\n#hk-crs-en .score-meter[data-tone=\"red\"]{--meter-bg:#fff3f4;--meter-border:#f2c8ca;--meter-fill:var(--red)}\n#hk-crs-en .score-meter-label strong{display:block;color:var(--heading);font-size:14px;font-weight:800;line-height:1.55}\n#hk-crs-en .score-meter-label span{display:block;margin-top:3px;font-size:11px;line-height:1.55}\n#hk-crs-en .score-meter-track{height:11px;border-radius:999px;background:rgba(83,96,115,.16);overflow:hidden}\n#hk-crs-en .score-meter-fill{display:block;width:0;height:100%;border-radius:inherit;background:var(--meter-fill);transition:width .5s ease}\n#hk-crs-en .score-meter-value{text-align:right;color:var(--heading);font-size:18px;font-weight:800;line-height:1.4;font-variant-numeric:tabular-nums}\n#hk-crs-en .score-meter-value small{color:var(--muted);font-size:12px;font-weight:600}\n#hk-crs-en .improvements{padding:28px 24px;border-bottom:1px solid var(--border);background:var(--soft)}\n#hk-crs-en .improvements-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}\n#hk-crs-en .improvements-head p{max-width:660px;margin:0!important;font-size:13px;line-height:1.75}\n#hk-crs-en .improvement-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}\n#hk-crs-en .improvement-item{display:grid;grid-template-columns:84px minmax(0,1fr);gap:16px;align-items:center;min-height:112px;padding:18px;border:1px solid var(--border);border-radius:8px;background:#fff}\n#hk-crs-en .improvement-gain{display:flex;align-items:center;justify-content:center;min-height:58px;border-radius:7px;background:var(--surface-green);color:var(--green);font-size:24px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}\n#hk-crs-en .improvement-copy strong{display:block;color:var(--heading);font-size:14px;font-weight:800;line-height:1.55}\n#hk-crs-en .improvement-copy span{display:block;margin-top:5px;font-size:12px;line-height:1.65}\n#hk-crs-en .improvement-copy .improvement-result{color:var(--heading);font-weight:800}\n#hk-crs-en .improvement-note{margin:17px 0 0!important;padding:14px 16px;border:1px solid var(--border-khaki);border-radius:7px;background:var(--surface-khaki);font-size:12px;line-height:1.75}\n#hk-crs-en .score-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--border)}\n#hk-crs-en .score-card{padding:22px 16px;text-align:center;border-right:1px solid var(--border)}\n#hk-crs-en .score-card:last-child{border:0}\n#hk-crs-en .score-card span{display:block;font-size:13px;line-height:1.6}\n#hk-crs-en .score-card strong{display:block;margin-top:7px;color:var(--heading);font-size:27px;font-weight:800;font-variant-numeric:tabular-nums}\n#hk-crs-en .pool-rank{padding:26px 24px;border-bottom:1px solid var(--border);background:#fff}\n#hk-crs-en .pool-rank[hidden]{display:none!important}\n#hk-crs-en .pool-rank-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:22px}\n#hk-crs-en .pool-rank-kicker{display:block;margin-bottom:6px;color:var(--red);font-size:11px;font-weight:800;line-height:1.5;letter-spacing:1px;text-transform:uppercase}\n#hk-crs-en .pool-rank-head h3{margin:0!important}\n#hk-crs-en .pool-rank-date{flex:0 0 auto;padding:8px 11px;border:1px solid var(--border-khaki);border-radius:999px;background:var(--surface-khaki);color:var(--heading);font-size:12px;font-weight:700;line-height:1.4}\n#hk-crs-en .pool-rank-grid{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);gap:24px;align-items:stretch}\n#hk-crs-en .pool-rank-position{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:24px;border:1px solid var(--border-ice);border-radius:9px;background:var(--surface-ice);text-align:center}\n#hk-crs-en .pool-rank-position>span{display:block;width:100%;color:var(--muted);font-size:13px;font-weight:700;line-height:1.6;text-align:center}\n#hk-crs-en .pool-rank-position>strong{display:block;margin:7px 0 9px;color:var(--heading);font-size:clamp(27px,3vw,42px);font-weight:800;line-height:1.2;letter-spacing:-1.2px}\n#hk-crs-en .pool-rank-position>strong em{color:var(--red);font-style:normal}\n#hk-crs-en .pool-rank-total{width:100%;margin:-2px 0 12px;color:var(--heading);font-size:15px;font-weight:700;line-height:1.5;text-align:center}\n#hk-crs-en .pool-rank-higher{margin:0 0 7px!important;color:var(--heading);font-size:14px!important;line-height:1.7!important}\n#hk-crs-en .pool-rank-position p{width:100%;margin:0!important;font-size:13px;line-height:1.75;text-align:center!important}\n#hk-crs-en .pool-rank-position p strong{display:inline;color:var(--heading);font-size:inherit;font-weight:800;line-height:inherit;letter-spacing:0}\n#hk-crs-en .pool-rank-chart{display:grid;grid-template-rows:auto minmax(150px,1fr) auto;align-items:stretch;min-width:0;padding:22px 22px 18px;border:1px solid var(--border-lilac);border-radius:9px;background:var(--surface-lilac)}\n#hk-crs-en .pool-rank-chart-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;color:var(--heading);font-size:13px;font-weight:800;line-height:1.5}\n#hk-crs-en .pool-rank-range{color:var(--red);font-size:12px;font-weight:800}\n#hk-crs-en .pool-bars{display:flex;align-items:flex-end;align-self:stretch;gap:7px;height:auto;min-height:150px;padding:0 2px 8px;border-bottom:1px solid #cbd3df}\n#hk-crs-en .pool-bar{position:relative;display:block;flex:1;min-width:7px;height:var(--bar-height);border-radius:5px 5px 0 0;background:#c8d5e5}\n#hk-crs-en .pool-bar.is-current{background:var(--red);box-shadow:0 0 0 3px rgba(237,28,36,.12)}\n#hk-crs-en .pool-bar::after{content:attr(data-label);position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);color:var(--muted);font-size:9px;font-weight:700;line-height:1;white-space:nowrap}\n#hk-crs-en .pool-rank-copy{align-self:end;margin:40px 0 0!important;font-size:13px;line-height:1.75}\n#hk-crs-en .pool-rank-context{margin:18px 0 0!important;padding:15px 17px;border:1px solid var(--border-green);border-radius:7px;background:var(--surface-green);color:var(--text);font-size:13px;line-height:1.75}\n#hk-crs-en .pool-rank-context strong{display:block;margin-bottom:3px;color:var(--heading);font-weight:800}\n#hk-crs-en .pool-rank-note{margin:12px 0 0;padding:14px 16px;border:1px solid var(--border-khaki);border-radius:7px;background:var(--surface-khaki);font-size:12px;line-height:1.75}\n#hk-crs-en .pool-rank-loading{padding:22px;border:1px solid var(--border);border-radius:8px;background:var(--soft);color:var(--muted);font-size:14px;line-height:1.7}\n#hk-crs-en .summary{padding:24px}\n#hk-crs-en .summary-title{margin-bottom:20px}\n#hk-crs-en .detail-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}\n#hk-crs-en .detail-section{border:1px solid var(--border);border-radius:7px;overflow:hidden}\n#hk-crs-en .detail-head,#hk-crs-en .detail-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:13px 16px;font-size:14px;line-height:1.7}\n#hk-crs-en .detail-head{background:var(--soft);color:var(--heading)}\n#hk-crs-en .detail-row{border-top:1px solid var(--border)}\n#hk-crs-en .detail-row span:last-child,#hk-crs-en .detail-total{flex-shrink:0;font-weight:700;font-variant-numeric:tabular-nums}\n#hk-crs-en .disclaimer{border-top:1px solid var(--border);padding:18px 24px;font-size:13px;line-height:1.8}\n#hk-crs-en .email-box{display:none;margin-top:26px;padding:28px;border:1px solid var(--border);border-radius:10px;background:#fff}\n#hk-crs-en .email-top{display:flex;align-items:center;gap:22px;margin-bottom:20px}\n\n#hk-crs-en .email-title p{margin:0}\n#hk-crs-en .email-pitch{margin:0 0 22px;color:var(--muted);font-size:15px}\n#hk-crs-en .email-pitch strong{color:var(--heading);font-weight:700}\n#hk-crs-en .consent{cursor:pointer;display:flex!important;align-items:flex-start;gap:12px;margin:18px 0 0!important;color:var(--text);font-size:13px;font-weight:500;line-height:1.8}\n#hk-crs-en .consent input{\n  -webkit-appearance:none!important;\n  appearance:none!important;\n  display:grid!important;\n  place-content:center!important;\n  width:22px!important;\n  height:22px!important;\n  min-width:22px!important;min-height:22px!important;padding:0!important;\n  flex:0 0 22px!important;\n  margin:1px 0 0!important;\n  border:1.5px solid #bdc6d1!important;\n  border-radius:6px!important;\n  background:#fff!important;\n  box-shadow:none!important;\n  cursor:pointer!important;\n  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease!important;\n}\n#hk-crs-en .consent input::before,#hk-crs-en .consent input::after{display:none!important;content:none!important}\n#hk-crs-en .consent input:checked{\n  border-color:var(--red)!important;\n  background-color:var(--red)!important;\n  background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4 4L19 7'\/%3E%3C\/svg%3E\")!important;\n  background-repeat:no-repeat!important;\n  background-position:center!important;\n  background-size:16px 16px!important;\n}\n#hk-crs-en .consent input:focus-visible{outline:none!important;box-shadow:0 0 0 4px rgba(237,28,36,.14)!important}\n\n#hk-crs-en .consent::before,#hk-crs-en .consent::after{display:none!important}\n#hk-crs-en .crs-security{display:flex;justify-content:center;margin-top:22px;min-height:65px}\n#hk-crs-en .crs-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}\n#hk-crs-en .noc-help{min-height:24px;padding:0;margin:0 0 10px;background:none;border:0;color:var(--red);text-decoration:underline;text-underline-offset:4px;font-size:14px}\n#hk-crs-en .noc-dialog{width:min(900px,calc(100vw - 40px));max-width:none;max-height:85dvh;padding:26px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);font:inherit;line-height:1.8;text-align:left;overflow:auto;overscroll-behavior:contain}\n#hk-crs-en .noc-dialog::backdrop{background:rgba(15,23,42,.45)}\n#hk-crs-en .noc-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}\n#hk-crs-en .noc-close{min-height:36px;padding:5px 12px}\n#hk-crs-en .noc-tools{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin:20px 0}\n#hk-crs-en .noc-group{margin-top:18px;border:1px solid var(--border);border-radius:7px;overflow:hidden}\n#hk-crs-en .noc-group-title{padding:14px 16px;background:var(--soft);color:var(--heading);font-weight:800}\n#hk-crs-en .noc-group-title small{display:block;font-size:12px;font-weight:500;color:var(--muted)}\n#hk-crs-en .noc-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:15px;padding:14px 16px;border-top:1px solid var(--border)}\n#hk-crs-en .noc-row b{display:block;color:var(--red);font-size:14px}\n#hk-crs-en .noc-title{display:block;font-size:14px;line-height:1.7}\n#hk-crs-en .noc-select{min-height:38px;padding:7px 12px;color:var(--red);font-size:12px}\n#hk-crs-en .noc-count{font-size:13px;margin-bottom:12px}\n@media(max-width:1000px){#hk-crs-en .progress{grid-template-columns:repeat(3,minmax(0,1fr))}}\n@media(max-width:700px){\n #hk-crs-stage .crs-container,#hk-crs-en{padding-left:24px;padding-right:24px}\n #hk-crs-stage .crs-hero{padding:26px 0 30px}\n #hk-crs-stage h1{font-size:clamp(36px,10vw,46px);letter-spacing:-1.6px;line-height:1.12}\n #hk-crs-stage .crs-eyebrow{font-size:10px;letter-spacing:1px}\n #hk-crs-stage .crs-intro{font-size:16px}\n #hk-crs-en .head,#hk-crs-en .body{padding:20px 16px}\n #hk-crs-en .progress{padding:0 8px;grid-template-columns:repeat(3,minmax(0,1fr))}\n #hk-crs-en .progress-item span{width:24px;height:24px;flex-basis:24px;font-size:11px}\n #hk-crs-en h2{font-size:23px}#hk-crs-en h3{font-size:20px}\n #hk-crs-en .grid,#hk-crs-en .lang-panels,#hk-crs-en .detail-sections,#hk-crs-en .noc-tools{grid-template-columns:1fr}\n #hk-crs-en .skill-grid{grid-template-columns:1fr}\n #hk-crs-en .step-head{gap:12px}#hk-crs-en .step-number{width:30px;height:30px;flex-basis:30px;font-size:11px}\n #hk-crs-en select,#hk-crs-en input{font-size:16px}\n #hk-crs-en .note,#hk-crs-en .box{padding:13px 14px;font-size:13px}\n #hk-crs-en .lang-head,#hk-crs-en .lang-body{padding:16px}\n #hk-crs-en .score-breakdown,#hk-crs-en .improvements{padding:22px 16px}\n #hk-crs-en .score-breakdown-head,#hk-crs-en .improvements-head{display:block;margin-bottom:18px}\n #hk-crs-en .score-breakdown-head p,#hk-crs-en .improvements-head p{margin-top:8px!important}\n #hk-crs-en .score-meter{grid-template-columns:1fr auto;gap:10px 14px;padding:15px}\n #hk-crs-en .score-meter-track{grid-column:1\/-1;grid-row:2}\n #hk-crs-en .score-meter-value{grid-column:2;grid-row:1}\n #hk-crs-en .improvement-list{grid-template-columns:1fr}\n #hk-crs-en .improvement-item{grid-template-columns:74px minmax(0,1fr);min-height:100px;padding:15px}\n #hk-crs-en .improvement-gain{font-size:21px}\n #hk-crs-en .score-overview{grid-template-columns:repeat(2,minmax(0,1fr))}\n #hk-crs-en .score-card{padding:16px 12px;border-bottom:1px solid var(--border)}\n #hk-crs-en .score-card:nth-child(2){border-right:0}#hk-crs-en .score-card:nth-child(n+3){border-bottom:0}\n #hk-crs-en .pool-rank{padding:22px 16px}\n #hk-crs-en .pool-rank-head{display:block;margin-bottom:18px}\n #hk-crs-en .pool-rank-date{display:inline-flex;margin-top:10px}\n #hk-crs-en .pool-rank-grid{grid-template-columns:1fr;gap:16px}\n #hk-crs-en .pool-rank-position,#hk-crs-en .pool-rank-chart{padding:18px 16px}\n #hk-crs-en .pool-rank-chart{grid-template-rows:auto 92px auto}\n #hk-crs-en .pool-bars{height:auto;min-height:0;gap:5px}\n #hk-crs-en .pool-bar::after{font-size:8px;transform:translateX(-50%) rotate(-38deg);transform-origin:top center;bottom:-38px}\n #hk-crs-en .pool-rank-copy{margin-top:48px!important}\n #hk-crs-en .summary{padding:16px}#hk-crs-en .detail-row,#hk-crs-en .detail-head{padding:12px;font-size:13px}\n #hk-crs-en .email-box{padding:22px 16px}#hk-crs-en .email-top{flex-direction:column;align-items:flex-start;gap:16px}\n #hk-crs-en .actions{gap:12px}\n #hk-crs-en .actions button{width:100%;flex-basis:auto}#hk-crs-en .actions .primary{order:-1}\n #hk-crs-en .noc-dialog{padding:18px}#hk-crs-en .noc-row{padding:12px}\n}\n@media(prefers-reduced-motion:reduce){#hk-crs-en *{scroll-behavior:auto!important;transition:none!important}}\n\/* Parent-page breadcrumb: shared typography and balanced vertical spacing. *\/\n#hk-crs-stage .hk-page-breadcrumb,#hk-crs-stage .hk-page-breadcrumb *{box-sizing:border-box}\n#hk-crs-stage .hk-page-breadcrumb{display:block;position:relative!important;top:auto!important;bottom:auto!important;transform:none!important;float:none!important;clear:both;flex-shrink:0;width:100%;margin:16px 0 0!important;padding:0!important;border-top:1px solid #eef0f2;border-bottom:1px solid #dfe3e8;background:#fff;direction:ltr;text-align:left}\n#hk-crs-stage .hk-page-breadcrumb-inner{width:100%;max-width:1360px;margin:0 auto;padding:0 28px}\n#hk-crs-stage .hk-page-breadcrumb ol{position:static!important;transform:none!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:0!important;width:100%;height:auto!important;min-height:0!important;margin:0!important;padding:13px 0!important;overflow-x:auto;overflow-y:hidden;list-style:none!important;scrollbar-width:none;-webkit-overflow-scrolling:touch}\n#hk-crs-stage .hk-page-breadcrumb ol::-webkit-scrollbar{display:none}\n#hk-crs-stage .hk-page-breadcrumb ol>li{position:static!important;transform:none!important;display:flex!important;align-items:center!important;flex:0 0 auto;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;color:#ed1c24;font-size:12px!important;font-weight:700!important;line-height:20px!important;white-space:nowrap;list-style:none!important}\n#hk-crs-stage .hk-page-breadcrumb li::marker{content:\"\";font-size:0}\n#hk-crs-stage .hk-page-breadcrumb li+li::before{content:\"\";display:block;flex:0 0 6px;width:6px;height:6px;margin:0 13px 0 11px;border-top:1.5px solid #9aa4b2;border-right:1.5px solid #9aa4b2;transform:rotate(45deg)}\n#hk-crs-stage .hk-page-breadcrumb a{position:static!important;transform:none!important;display:flex!important;align-items:center!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;color:#536073!important;font-size:inherit!important;font-weight:inherit!important;line-height:inherit!important;text-decoration:none!important;transition:color .2s ease}\n#hk-crs-stage .hk-page-breadcrumb a:hover{color:#ed1c24!important}\n#hk-crs-stage .hk-page-breadcrumb a:focus-visible{outline:3px solid #0f172a;outline-offset:3px}\n@media(max-width:900px){\n  #hk-crs-stage .hk-page-breadcrumb-inner{padding:0 24px}\n  #hk-crs-stage .hk-page-breadcrumb ol{padding:11px 0!important}\n  #hk-crs-stage .hk-page-breadcrumb ol>li{font-size:12px!important;line-height:20px!important}\n  #hk-crs-stage .hk-page-breadcrumb li+li::before{margin:0 11px 0 9px}\n}\n\n\n#hk-crs-en .work-period{display:block;margin:12px 0 0;font-size:inherit;font-weight:500;line-height:1.85;color:var(--text)}\n\n\/* Consistent roles: ice blue left, lilac right, khaki support, green completed, red current. *\/\n#hk-crs-en .progress .progress-item{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-width:0;width:auto;min-height:72px;height:auto;margin:0;padding:12px 8px;border:0;border-radius:0;border-bottom:3px solid transparent;background:transparent;color:var(--text);font-size:12px;font-weight:600;line-height:1.45;letter-spacing:normal;text-transform:none;text-align:left;box-shadow:none;transform:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s}\n#hk-crs-en .progress .progress-item:hover{background:var(--surface-ice);color:var(--heading);transform:none;border-color:var(--border-ice)}\n#hk-crs-en .progress .progress-item.done{background:var(--surface-green);color:#2f6f56;border-bottom-color:var(--green);font-weight:700}\n#hk-crs-en .progress .progress-item.active{background:#fcf3f3;color:var(--heading);border-bottom-color:var(--red);font-weight:800}\n#hk-crs-en .progress .progress-item:focus-visible{outline:2px solid var(--heading);outline-offset:-4px}\n#hk-crs-en .progress .progress-item.active span{color:var(--red);border-color:#edafb3;background:#fff8f8}\n@media(max-width:1000px){#hk-crs-en .progress .progress-item{min-height:58px}}\n@media(max-width:767px){#hk-crs-en .progress .progress-item{flex-direction:column;justify-content:center;gap:5px;font-size:10px;min-height:74px;padding:8px 3px;text-align:center}}\n<\/style>\n<div id=\"hk-crs-stage\" lang=\"en-CA\">\n<nav class=\"hk-page-breadcrumb\" aria-label=\"Breadcrumb\"><div class=\"hk-page-breadcrumb-inner\"><ol><li><a href=\"\/en\/\">Home<\/a><\/li><li><a href=\"\/en\/immigrate\/\">Immigrate to Canada<\/a><\/li><li><a href=\"\/en\/immigrate\/express-entry\/\">Express Entry<\/a><\/li><li><span aria-current=\"page\">CRS Calculator<\/span><\/li><\/ol><\/div><\/nav>\n<header class=\"crs-hero\"><div class=\"crs-container\"><div class=\"crs-eyebrow\">Hesam Kazemi Immigration Inc.<\/div><h1>Your <span>CRS score.<\/span><br>A clearer starting point.<\/h1><p class=\"crs-intro\">Understand how your age, education, language skills and experience contribute to Express Entry ranking. Calculate an estimate, explore the breakdown, and keep a copy by email.<\/p><div class=\"crs-hero-meta\"><span>Six guided steps<\/span><span>No email needed to view results<\/span><span id=\"hk-crs-effective\">Preview \u00b7 rules effective November 3, 2026<\/span><\/div><\/div><\/header><div id=\"hk-crs-en\" dir=\"ltr\">\n\n\n<div class=\"wrap\">\n  <div class=\"head\">\n    <div class=\"kicker\">EXPRESS ENTRY SCORE CALCULATOR<\/div>\n    <h2>Calculate your Express Entry score<\/h2>\n    <p class=\"sub\">Explore your estimated score, see what contributes to it, and email yourself a clear breakdown. This calculator uses the rules effective November 3, 2026.<\/p>\n  <\/div>\n\n  <nav class=\"progress\" aria-label=\"Calculator steps\">\n    <button type=\"button\" class=\"progress-item active\" data-progress=\"1\" aria-controls=\"hkcrse_step_1\"><span aria-hidden=\"true\">1<\/span>Personal details<\/button>\n    <button type=\"button\" class=\"progress-item\" data-progress=\"2\" aria-controls=\"hkcrse_step_2\"><span aria-hidden=\"true\">2<\/span>Education<\/button>\n    <button type=\"button\" class=\"progress-item\" data-progress=\"3\" aria-controls=\"hkcrse_step_3\"><span aria-hidden=\"true\">3<\/span>Languages<\/button>\n    <button type=\"button\" class=\"progress-item\" data-progress=\"4\" aria-controls=\"hkcrse_step_4\"><span aria-hidden=\"true\">4<\/span>Work experience<\/button>\n    <button type=\"button\" class=\"progress-item\" data-progress=\"5\" aria-controls=\"hkcrse_step_5\"><span aria-hidden=\"true\">5<\/span>Additional factors<\/button>\n    <button type=\"button\" class=\"progress-item\" data-progress=\"6\" aria-controls=\"hkcrse_step_6\"><span aria-hidden=\"true\">6<\/span>Spouse<\/button>\n  <\/nav>\n\n  <div class=\"body\">\n    <div class=\"form-shell\">\n\n      <div class=\"step active\" data-step=\"1\" id=\"hkcrse_step_1\">\n        <div class=\"step-head\">\n          <div class=\"step-number\">1<\/div>\n          <div class=\"step-title\">\n            <h3>Your personal details<\/h3>\n            <p>Your marital status and whether a spouse accompanies you determine the points table used.<\/p>\n          <\/div>\n        <\/div>\n        <div class=\"grid\">\n          <div class=\"field\">\n            <label for=\"hkcrse_marital\">What is your marital status?<\/label>\n            <select id=\"hkcrse_marital\">\n              <option value=\"\">Select an option<\/option>\n              <option value=\"annulled\">Annulled marriage<\/option>\n              <option value=\"common_law\">Common-law partnership<\/option>\n              <option value=\"divorced_separated\">Divorced \/ separated<\/option>\n              <option value=\"legally_separated\">Legally separated<\/option>\n              <option value=\"married\">Married<\/option>\n              <option value=\"never\">Never married \/ single<\/option>\n              <option value=\"widowed\">Widowed<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"hkcrse_age\">Your age<\/label>\n            <select id=\"hkcrse_age\">\n              <option value=\"\">Select an option<\/option>\n              <option value=\"le17\">17 years or younger<\/option><option value=\"18\">18 years<\/option><option value=\"19\">19 years<\/option>\n              <option value=\"20_29\">20\u201329 years<\/option><option value=\"30\">30 years<\/option><option value=\"31\">31 years<\/option>\n              <option value=\"32\">32 years<\/option><option value=\"33\">33 years<\/option><option value=\"34\">34 years<\/option>\n              <option value=\"35\">35 years<\/option><option value=\"36\">36 years<\/option><option value=\"37\">37 years<\/option>\n              <option value=\"38\">38 years<\/option><option value=\"39\">39 years<\/option><option value=\"40\">40 years<\/option>\n              <option value=\"41\">41 years<\/option><option value=\"42\">42 years<\/option><option value=\"43\">43 years<\/option>\n              <option value=\"44\">44 years<\/option><option value=\"ge45\">45 years or older<\/option>\n            <\/select>\n          <\/div>\n          <div id=\"hkcrse_spouse_pr_wrap\" class=\"field hidden\">\n            <label for=\"hkcrse_spouse_pr\">Is your spouse or partner a Canadian citizen or permanent resident?<\/label>\n            <select id=\"hkcrse_spouse_pr\"><option value=\"\">Select an option<\/option><option value=\"yes\">Yes<\/option><option value=\"no\">No<\/option><\/select>\n          <\/div>\n          <div id=\"hkcrse_spouse_coming_wrap\" class=\"field hidden\">\n            <label for=\"hkcrse_spouse_coming\">Will your spouse or partner accompany you to Canada?<\/label>\n            <select id=\"hkcrse_spouse_coming\"><option value=\"\">Select an option<\/option><option value=\"yes\">Yes, accompanying<\/option><option value=\"no\">No, not accompanying<\/option><\/select>\n          <\/div>\n        <\/div>\n        <div class=\"note\">If your spouse is a Canadian citizen or permanent resident, or is not accompanying you, your CRS uses the without-spouse points table.<\/div>\n        <div class=\"actions\"><button type=\"button\" class=\"primary next\" data-next=\"2\">Continue<\/button><\/div>\n      <\/div>\n\n      <div class=\"step\" data-step=\"2\" id=\"hkcrse_step_2\">\n        <div class=\"step-head\"><div class=\"step-number\">2<\/div><div class=\"step-title\"><h3>Your education<\/h3><p>Select your highest assessed education level and any eligible Canadian credential. Foreign education generally requires a valid immigration-purpose ECA; count credentials at their assessed equivalency.<\/p><\/div><\/div>\n        <div class=\"grid\">\n          <div class=\"field\">\n            <label for=\"hkcrse_education\">Highest education level<\/label>\n            <select id=\"hkcrse_education\">\n              <option value=\"\">Select an option<\/option><option value=\"less_secondary\">Less than secondary school<\/option>\n              <option value=\"secondary\">Secondary school diploma<\/option><option value=\"one_year\">One-year post-secondary credential<\/option>\n              <option value=\"two_year\">Two-year post-secondary credential<\/option><option value=\"bachelor\">Bachelor\u2019s degree or a three-year or longer program<\/option>\n              <option value=\"two_or_more\">Two or more credentials; one is three years or longer<\/option><option value=\"master\">Master\u2019s or eligible professional degree<\/option><option value=\"phd\">Doctoral degree \/ PhD<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"hkcrse_has_canadian_education\">Do you have an eligible Canadian educational credential?<\/label>\n            <select id=\"hkcrse_has_canadian_education\"><option value=\"no\">No<\/option><option value=\"yes\">Yes<\/option><\/select>\n          <\/div>\n        <\/div>\n        <div id=\"hkcrse_canadian_education_wrap\" class=\"box hidden\">\n          <div class=\"field\">\n            <label for=\"hkcrse_canadian_education\">What type of eligible Canadian credential do you have?<\/label>\n            <select id=\"hkcrse_canadian_education\">\n              <option value=\"none\">Secondary school or lower<\/option>\n              <option value=\"one_two\">One- or two-year diploma or certificate<\/option>\n              <option value=\"three_plus\">Three-year or longer credential, or an eligible master\u2019s, professional or doctoral credential<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n        <div class=\"actions\"><button type=\"button\" class=\"secondary prev\" data-prev=\"1\">Back<\/button><button type=\"button\" class=\"primary next\" data-next=\"3\">Continue<\/button><\/div>\n      <\/div>\n\n      <div class=\"step\" data-step=\"3\" id=\"hkcrse_step_3\">\n        <div class=\"step-head\"><div class=\"step-number\">3<\/div><div class=\"step-title\"><h3>Your language skills<\/h3><p>Enter a score for each skill. Approximate levels provide an estimate only.<\/p><\/div><\/div>\n        <div class=\"field\">\n          <label for=\"hkcrse_first_language\">First official language for CRS<\/label>\n          <select id=\"hkcrse_first_language\"><option value=\"auto\">Automatic \u2014 use the higher-scoring language order<\/option><option value=\"en\">English<\/option><option value=\"fr\">French<\/option><\/select>\n        <\/div>\n        <div class=\"lang-panels\">\n          <div class=\"lang-panel lang-en\">\n            <div class=\"lang-head\"><strong>English<\/strong><small>IELTS General \u00b7 CELPIP-General \u00b7 PTE Core \u00b7 Estimate<\/small><\/div>\n            <div class=\"lang-body\">\n              <label for=\"hkcrse_en_test\">English test or approximate level<\/label>\n              <select id=\"hkcrse_en_test\" class=\"lang-test\" data-prefix=\"hkcrse_en\" data-box=\"hkcrse_en_box\" data-note=\"hkcrse_en_note\">\n                <option value=\"none\">No results \/ not sure<\/option><option value=\"ielts\">IELTS General Training<\/option><option value=\"celpip\">CELPIP General<\/option><option value=\"pte\">PTE Core<\/option><option value=\"approx\">No test yet \u2014 use an approximate level<\/option>\n              <\/select>\n              <div id=\"hkcrse_en_box\" class=\"hidden\">\n                <div class=\"skill-grid\">\n                  <div class=\"skill-field\"><div class=\"skill-label\"><strong>Speaking<\/strong><small>Speaking<\/small><\/div><select id=\"hkcrse_en_speaking\"><\/select><\/div>\n                  <div class=\"skill-field\"><div class=\"skill-label\"><strong>Listening<\/strong><small>Listening<\/small><\/div><select id=\"hkcrse_en_listening\"><\/select><\/div>\n                  <div class=\"skill-field\"><div class=\"skill-label\"><strong>Reading<\/strong><small>Reading<\/small><\/div><select id=\"hkcrse_en_reading\"><\/select><\/div>\n                  <div class=\"skill-field\"><div class=\"skill-label\"><strong>Writing<\/strong><small>Writing<\/small><\/div><select id=\"hkcrse_en_writing\"><\/select><\/div>\n                <\/div>\n                <div id=\"hkcrse_en_note\" class=\"note hidden\"><\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"lang-panel lang-fr\">\n            <div class=\"lang-head\"><strong>French<\/strong><small>TEF Canada \u00b7 TCF Canada \u00b7 Estimate<\/small><\/div>\n            <div class=\"lang-body\">\n              <label for=\"hkcrse_fr_test\">French test or approximate level<\/label>\n              <select id=\"hkcrse_fr_test\" class=\"lang-test\" data-prefix=\"hkcrse_fr\" data-box=\"hkcrse_fr_box\" data-note=\"hkcrse_fr_note\">\n                <option value=\"none\">No results \/ not sure<\/option><option value=\"tef\">TEF Canada<\/option><option value=\"tcf\">TCF Canada<\/option><option value=\"approx\">No test yet \u2014 use an approximate level<\/option>\n              <\/select>\n              <div id=\"hkcrse_fr_box\" class=\"hidden\">\n                <div class=\"skill-grid\">\n                  <div class=\"skill-field\"><div class=\"skill-label\"><strong>Speaking<\/strong><small>Expression orale<\/small><\/div><select id=\"hkcrse_fr_speaking\"><\/select><\/div>\n                  <div class=\"skill-field\"><div class=\"skill-label\"><strong>Listening<\/strong><small>Compr\u00e9hension orale<\/small><\/div><select id=\"hkcrse_fr_listening\"><\/select><\/div>\n                  <div class=\"skill-field\"><div class=\"skill-label\"><strong>Reading<\/strong><small>Compr\u00e9hension \u00e9crite<\/small><\/div><select id=\"hkcrse_fr_reading\"><\/select><\/div>\n                  <div class=\"skill-field\"><div class=\"skill-label\"><strong>Writing<\/strong><small>Expression \u00e9crite<\/small><\/div><select id=\"hkcrse_fr_writing\"><\/select><\/div>\n                <\/div>\n                <div id=\"hkcrse_fr_note\" class=\"note hidden\"><\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"note warning\">Enter language test results or an approximate level to calculate an estimate.<\/div>\n        <div class=\"actions\"><button type=\"button\" class=\"secondary prev\" data-prev=\"2\">Back<\/button><button type=\"button\" class=\"primary next\" data-next=\"4\">Continue<\/button><\/div>\n      <\/div>\n\n      <div class=\"step\" data-step=\"4\" id=\"hkcrse_step_4\">\n        <div class=\"step-head\"><div class=\"step-number\">4<\/div><div class=\"step-title\"><h3>Work experience and trade qualification<\/h3><p>Count qualifying Canadian and foreign experience separately.<\/p><\/div><\/div>\n        <div class=\"grid\" style=\"align-items:start;\">\n          <div class=\"field\"><label for=\"hkcrse_canadian_work\">In the last 10 years, how many years of skilled work experience do you have in Canada?<\/label><select id=\"hkcrse_canadian_work\" aria-describedby=\"hkcrse_canadian_work_help\"><option value=\"0\">None \/ less than one year<\/option><option value=\"1\">1 year<\/option><option value=\"2\">2 years<\/option><option value=\"3\">3 years<\/option><option value=\"4\">4 years<\/option><option value=\"5\">5 years or more<\/option><\/select><p class=\"work-period\" id=\"hkcrse_canadian_work_help\">Count paid, full-time work or its part-time equivalent in NOC TEER 0, 1, 2 or 3. You must have been physically in Canada, working for a Canadian employer and authorized to work. Do not count self-employment or work gained while studying full-time.<\/p><\/div>\n          <div class=\"field\"><label for=\"hkcrse_foreign_work\">In the last 10 years, how many years of skilled work experience do you have outside Canada?<\/label><select id=\"hkcrse_foreign_work\" aria-describedby=\"hkcrse_foreign_work_help\"><option value=\"0\">None \/ less than one year<\/option><option value=\"1\">1 year<\/option><option value=\"2\">2 years<\/option><option value=\"3\">3 years or more<\/option><\/select><p class=\"work-period\" id=\"hkcrse_foreign_work_help\">Count paid, full-time work or its part-time equivalent in one NOC TEER 0, 1, 2 or 3 occupation, following the IRCC calculator guidance.<\/p><\/div>\n          <div class=\"field\"><label for=\"hkcrse_certificate\">Do you hold a Canadian Certificate of Qualification in a skilled trade?<\/label><select id=\"hkcrse_certificate\"><option value=\"no\">No<\/option><option value=\"yes\">Yes<\/option><\/select><\/div>\n          <div id=\"hkcrse_high_wage_work_wrap\" class=\"field hidden\">\n            <label for=\"hkcrse_high_wage_work\">Do you have at least 12 months of qualifying Canadian experience in eligible high-wage occupations?<\/label>\n            \n            \n            <select id=\"hkcrse_high_wage_work\">\n              <option value=\"\">Select an option<\/option>\n              <option value=\"70\">2\u00d7 band: at least 12 months \u2014 70 points<\/option>\n              <option value=\"40\">1.5\u00d7 or above: at least 12 months \u2014 40 points<\/option>\n              <option value=\"20\">1.3\u00d7 or above: at least 12 months \u2014 20 points<\/option>\n              <option value=\"0\">Less than 12 qualifying months \u2014 0 points<\/option>\n            <\/select><button type=\"button\" class=\"noc-help\" data-noc-open=\"work\" aria-haspopup=\"dialog\" aria-controls=\"hkcrse_noc_dialog\">Find your occupation<\/button><div id=\"hkcrse_work_noc_hint\" class=\"note hidden\" aria-live=\"polite\"><\/div>\n          \n          <\/div>\n        <\/div><div class=\"note work-rules hidden\" id=\"hkcrse_high_wage_rules\">The occupation\u2019s NOC code in the <a href=\"https:\/\/www.canada.ca\/en\/immigration-refugees-citizenship\/services\/immigrate-canada\/express-entry\/check-score\/high-wage.html\" target=\"_blank\" rel=\"noopener noreferrer\">IRCC high-wage occupations list<\/a> determines the occupation band, not your personal salary. Count qualifying Canadian experience within the previous 10 years. Experience may be non-continuous, combined across eligible occupations, and full-time or equivalent part-time. A year requires at least 12 months and 1,560 hours, counting no more than 30 hours per week. For example, six months in the 2\u00d7 band plus six months in the 1.5\u00d7 band can meet the 40-point threshold.<\/div>\n        <div class=\"actions\"><button type=\"button\" class=\"secondary prev\" data-prev=\"3\">Back<\/button><button type=\"button\" class=\"primary next\" data-next=\"5\">Continue<\/button><\/div>\n      <\/div>\n\n      <div class=\"step\" data-step=\"5\" id=\"hkcrse_step_5\">\n        <div class=\"step-head\"><div class=\"step-number\">5<\/div><div class=\"step-title\"><h3>Additional factors<\/h3><p>Provincial nomination, eligible siblings and qualifying job offers.<\/p><\/div><\/div>\n        <div class=\"grid\">\n          <div class=\"field\"><label for=\"hkcrse_pnp\">Do you have an Express Entry-aligned provincial or territorial nomination?<\/label><select id=\"hkcrse_pnp\"><option value=\"no\">No<\/option><option value=\"yes\">Yes<\/option><\/select><\/div>\n          <div class=\"field\">\n            <label for=\"hkcrse_sibling\">Do you or your accompanying spouse have an eligible sibling in Canada?<\/label>\n            <select id=\"hkcrse_sibling\">\n              <option value=\"no\">No<\/option>\n              <option value=\"yes\">Yes \u2014 age 18+, a citizen or permanent resident, and living in Canada<\/option>\n            <\/select>\n            <div class=\"note\" style=\"margin-top:10px;\">\n              A sibling of your spouse or partner counts only when that spouse or partner is accompanying you in your Express Entry application.\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"box\">\n          <div class=\"field\">\n            <label for=\"hkcrse_job_offer\">Do you have a valid, qualifying Express Entry job offer in Canada?<\/label>\n            <select id=\"hkcrse_job_offer\"><option value=\"\">Select an option<\/option><option value=\"yes\">Yes<\/option><option value=\"no\">No<\/option><\/select>\n          <\/div>\n          <div id=\"hkcrse_job_offer_wrap\" class=\"field hidden\">\n            <label for=\"hkcrse_job_offer_noc\">Five-digit NOC code for the job offer<\/label>\n            \n            <input id=\"hkcrse_job_offer_noc\" type=\"text\" inputmode=\"numeric\" maxlength=\"5\" dir=\"ltr\" placeholder=\"e.g. 21232\" aria-describedby=\"hkcrse_job_offer_note\"><button type=\"button\" class=\"noc-help\" data-noc-open=\"offer\" aria-haspopup=\"dialog\" aria-controls=\"hkcrse_noc_dialog\">Find and select your NOC<\/button>\n            <div id=\"hkcrse_job_offer_note\" class=\"note\" aria-live=\"polite\">Enter a NOC code to identify its band and potential job-offer points.<\/div>\n          <\/div>\n          <div class=\"note\">The offer must meet the <a href=\"https:\/\/www.canada.ca\/en\/immigration-refugees-citizenship\/services\/immigrate-canada\/express-entry\/changes.html\" target=\"_blank\" rel=\"noopener noreferrer\">valid Express Entry job offer<\/a> requirements: generally full-time, continuous, non-seasonal employment for at least one year after permanent residence, with occupation-specific exceptions. From November 3, 2026, an LMIA is not required for these CRS job-offer points and does not add points. The offer must be genuine, verifiable and otherwise eligible.<\/div>\n        <\/div>\n        <div class=\"note\">Canadian work-length points plus any high-wage bonus are compared with qualifying job-offer points. Only the higher of the two is counted; they are not added together.<\/div>\n        <div class=\"actions\"><button type=\"button\" class=\"secondary prev\" data-prev=\"4\">Back<\/button><button type=\"button\" class=\"primary\" id=\"hkcrse_additional_next_or_calc\">Continue<\/button><\/div>\n      <\/div>\n\n      <div class=\"step\" data-step=\"6\" id=\"hkcrse_step_6\">\n        <div class=\"step-head\"><div class=\"step-number\">6<\/div><div class=\"step-title\"><h3>Accompanying spouse or partner<\/h3><p>For an accompanying spouse or partner who is not a Canadian citizen or permanent resident.<\/p><\/div><\/div>\n        <div class=\"grid\">\n          <div class=\"field\">\n            <label for=\"hkcrse_spouse_education\">Spouse\u2019s education<\/label>\n            <select id=\"hkcrse_spouse_education\">\n              <option value=\"\">Select an option<\/option><option value=\"less_secondary\">Less than secondary school<\/option><option value=\"secondary\">Secondary school diploma<\/option><option value=\"one_year\">One-year post-secondary credential<\/option><option value=\"two_year\">Two-year post-secondary credential<\/option><option value=\"bachelor\">Bachelor\u2019s degree or a three-year or longer program<\/option><option value=\"two_or_more\">Two or more credentials; one is three years or longer<\/option><option value=\"master\">Master\u2019s or eligible professional degree<\/option><option value=\"phd\">Doctoral degree \/ PhD<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"field\"><label for=\"hkcrse_spouse_canadian_work\">In the last 10 years, how many years of skilled work experience does your spouse or partner have in Canada?<\/label><select id=\"hkcrse_spouse_canadian_work\" aria-describedby=\"hkcrse_spouse_canadian_work_help\"><option value=\"0\">None \/ less than one year<\/option><option value=\"1\">1 year<\/option><option value=\"2\">2 years<\/option><option value=\"3\">3 years<\/option><option value=\"4\">4 years<\/option><option value=\"5\">5 years or more<\/option><\/select><p class=\"work-period\" id=\"hkcrse_spouse_canadian_work_help\">Count eligible paid, full-time work or its part-time equivalent in one or more NOC TEER 0, 1, 2 or 3 occupations.<\/p><\/div>\n        <\/div>\n        <div class=\"lang-panel lang-spouse\">\n          <div class=\"lang-head\"><strong>Spouse\u2019s language<\/strong><small>IELTS \/ CELPIP \/ PTE \/ TEF \/ TCF<\/small><\/div>\n          <div class=\"lang-body\">\n            <label for=\"hkcrse_spouse_test\">Spouse\u2019s language test<\/label>\n            <select id=\"hkcrse_spouse_test\" class=\"lang-test\" data-prefix=\"hkcrse_spouse\" data-box=\"hkcrse_spouse_box\" data-note=\"hkcrse_spouse_note\">\n              <option value=\"none\">None<\/option><option value=\"ielts\">IELTS General Training<\/option><option value=\"celpip\">CELPIP General<\/option><option value=\"pte\">PTE Core<\/option><option value=\"tef\">TEF Canada<\/option><option value=\"tcf\">TCF Canada<\/option>\n            <\/select>\n            <div id=\"hkcrse_spouse_box\" class=\"hidden\">\n              <div class=\"skill-grid\">\n                <div class=\"skill-field\"><div class=\"skill-label\"><strong>Speaking<\/strong><small>Speaking<\/small><\/div><select id=\"hkcrse_spouse_speaking\"><\/select><\/div>\n                <div class=\"skill-field\"><div class=\"skill-label\"><strong>Listening<\/strong><small>Listening<\/small><\/div><select id=\"hkcrse_spouse_listening\"><\/select><\/div>\n                <div class=\"skill-field\"><div class=\"skill-label\"><strong>Reading<\/strong><small>Reading<\/small><\/div><select id=\"hkcrse_spouse_reading\"><\/select><\/div>\n                <div class=\"skill-field\"><div class=\"skill-label\"><strong>Writing<\/strong><small>Writing<\/small><\/div><select id=\"hkcrse_spouse_writing\"><\/select><\/div>\n              <\/div>\n              <div id=\"hkcrse_spouse_note\" class=\"note hidden\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"actions\"><button type=\"button\" class=\"secondary prev\" data-prev=\"5\">Back<\/button><button type=\"button\" class=\"primary\" id=\"hkcrse_calculate\">Calculate my CRS score<\/button><\/div>\n      <\/div>\n\n      <div class=\"error\" id=\"hkcrse_form_error\"><\/div>\n    <\/div>\n\n    <div class=\"output-shell\" id=\"hkcrse_output_shell\">\n      <div class=\"output-intro\"><h3>Your CRS estimate<\/h3><p>Your estimate and breakdown, based on the answers you provided.<\/p><\/div>\n      <div class=\"result\" id=\"hkcrse_result\">\n        <div class=\"result-top\"><div class=\"total-label\">Estimated CRS score<\/div><div class=\"total\" id=\"hkcrse_total\">0<\/div><div class=\"total-sub\">Rules effective November 3, 2026<\/div><\/div>\n        <section class=\"score-breakdown\" id=\"hkcrse_score_breakdown\" aria-labelledby=\"hkcrse_score_breakdown_title\">\n          <div class=\"score-breakdown-head\"><div><span class=\"pool-rank-kicker\">Your points by section<\/span><h3 id=\"hkcrse_score_breakdown_title\">See exactly where your CRS score comes from<\/h3><\/div><p>Each row shows your current points and the maximum available in that section under the answers you provided.<\/p><\/div>\n          <div class=\"score-breakdown-list\" id=\"hkcrse_score_breakdown_list\"><\/div>\n        <\/section>\n        <section class=\"pool-rank\" id=\"hkcrse_pool_rank\" aria-live=\"polite\">\n          <div class=\"pool-rank-loading\" id=\"hkcrse_pool_loading\">Loading the latest Express Entry pool distribution\u2026<\/div>\n          <div id=\"hkcrse_pool_content\" hidden><\/div>\n        <\/section>\n        <section class=\"improvements\" id=\"hkcrse_improvements\" aria-labelledby=\"hkcrse_improvements_title\">\n          <div class=\"improvements-head\"><div><span class=\"pool-rank-kicker\">Personalised score opportunities<\/span><h3 id=\"hkcrse_improvements_title\">What could raise your CRS score<\/h3><\/div><p>These estimates recalculate your complete score using the answers entered, so related language and skill-combination points are included.<\/p><\/div>\n          <div class=\"improvement-list\" id=\"hkcrse_improvement_list\"><\/div>\n          <p class=\"improvement-note\">A possible points increase is not confirmation that you qualify for the underlying factor. Language results, education, work experience, job offers and nominations must meet the applicable requirements and be supported by evidence.<\/p>\n        <\/section>\n        <div class=\"summary\" id=\"hkcrse_summary\"><\/div>\n        <div class=\"disclaimer\">This is an estimate based on your answers, not a determination of program eligibility or a guarantee of an invitation. Confirm eligibility and supporting evidence before submitting a profile.<\/div>\n      <\/div>\n\n      <div class=\"email-box\" id=\"hkcrse_email_box\">\n        <div class=\"email-top\">\n          <div class=\"email-title\"><h3>Email my score breakdown<\/h3><p>Keep a copy of your estimate and its breakdown for your records.<\/p><\/div>\n        <\/div>\n        <div class=\"email-pitch\"><strong>Your results, ready to keep.<\/strong> Receive your total score, the points in each section, and a summary of the information you entered.<\/div>\n        <div class=\"grid\">\n          <div class=\"field\"><label for=\"hkcrse_lead_name\">Full name<\/label><input id=\"hkcrse_lead_name\" maxlength=\"120\" autocomplete=\"name\" type=\"text\" placeholder=\"Your full name\"><\/div>\n          <div class=\"field\"><label for=\"hkcrse_lead_email\">Email<\/label><input id=\"hkcrse_lead_email\" maxlength=\"254\" autocomplete=\"email\" type=\"email\" placeholder=\"example@email.com\"><\/div>\n        <\/div>\n        <label class=\"consent\" for=\"hkcrse_result_consent\"><input id=\"hkcrse_result_consent\" type=\"checkbox\"><span>I agree to have my answers and contact details sent to Hesam Kazemi Immigration Inc., stored for this enquiry, and used to email my result.<\/span><\/label><label class=\"consent\" for=\"hkcrse_newsletter_consent\"><input id=\"hkcrse_newsletter_consent\" type=\"checkbox\"><span>I would also like to receive immigration updates by email. I can unsubscribe at any time.<\/span><\/label>\n        <div class=\"crs-trap\" aria-hidden=\"true\"><label for=\"hkcrse_website\">Leave this field blank<\/label><input id=\"hkcrse_website\" tabindex=\"-1\" autocomplete=\"off\"><\/div><div class=\"crs-security\"><div id=\"hkcrse_turnstile\"><\/div><\/div><div class=\"error\" role=\"alert\" id=\"hkcrse_lead_error\"><\/div><div class=\"success\" role=\"status\" id=\"hkcrse_lead_success\"><\/div>\n        <div class=\"actions\"><button type=\"button\" class=\"primary\" id=\"hkcrse_send_email\">Email my results<\/button><button type=\"button\" class=\"secondary\" id=\"hkcrse_reset\">Start again<\/button><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n<dialog id=\"hkcrse_noc_dialog\" class=\"noc-dialog\" dir=\"ltr\" aria-labelledby=\"hkcrse_noc_heading\" aria-describedby=\"hkcrse_noc_context\">\n  <div class=\"noc-dialog-head\"><h3 id=\"hkcrse_noc_heading\">Find your occupation<\/h3><button type=\"button\" id=\"hkcrse_noc_close\" class=\"noc-close\" aria-label=\"Close occupation finder\">Close \u00d7<\/button><\/div>\n  <div id=\"hkcrse_noc_context\" class=\"note\"><\/div>\n  <div class=\"noc-tools\">\n    <div><label for=\"hkcrse_noc_search\">Search by occupation or NOC<\/label><input id=\"hkcrse_noc_search\" type=\"search\" placeholder=\"NOC code or job title, e.g. 21232 or engineer\" autocomplete=\"off\"><\/div>\n    <div><label for=\"hkcrse_noc_band_filter\">Occupation band<\/label><select id=\"hkcrse_noc_band_filter\"><option value=\"all\">All occupation bands<\/option><option value=\"2\">2\u00d7 or higher<\/option><option value=\"1.5\">1.5\u2013Below 2\u00d7<\/option><option value=\"1.3\">1.3\u2013Below 1.5\u00d7<\/option><\/select><\/div>\n  <\/div>\n  <div id=\"hkcrse_noc_count\" class=\"noc-count\" role=\"status\" aria-live=\"polite\"><\/div>\n  <div id=\"hkcrse_noc_list\"><\/div>\n  <div class=\"note\">Occupation codes and titles follow the published IRCC list effective November 3, 2026. Bands do not depend on your personal salary. An occupation missing from this list receives no high-wage points; immigration-program eligibility is assessed separately. <a href=\"https:\/\/www.canada.ca\/en\/immigration-refugees-citizenship\/services\/immigrate-canada\/express-entry\/check-score\/high-wage.html\" target=\"_blank\" rel=\"noopener noreferrer\">View official source<\/a><\/div>\n<\/dialog>\n\n<script>\n(function(){\nconst root=document.getElementById(\"hk-crs-en\"),$=id=>root.querySelector(\"#\"+id);\nconst CONFIG={endpoint:window.location.origin+\"\/wp-json\/hki\/v1\/crs-result\",fallbackEndpoint:window.location.origin+\"\/?rest_route=\/hki\/v1\/crs-result\",poolEndpoint:window.location.origin+\"\/wp-json\/hk-ee-dashboard\/v1\/data\",poolFallbackEndpoint:window.location.origin+\"\/?rest_route=\/hk-ee-dashboard\/v1\/data\",turnstileSiteKey:\"0x4AAAAAAFnf3_GjNg7Wa2Yp\"};\nlet turnstileWidget=null,requestId=null;\nlet poolData=null,poolPromise=null;\nconst startTime=Date.now();\nlet pending=null;\nconst fd=value=>new Intl.NumberFormat(\"en-CA\").format(Number(value)),v=id=>$(id)?$(id).value:\"\";\nconst selectedText=id=>{const el=$(id);return el&&el.selectedIndex>=0?el.options[el.selectedIndex].text:\"\"};\nconst all=(a,n)=>a.every(x=>x>=n),atMost=(a,n)=>a.every(x=>x<=n);\n\nconst O={\n approx:[[0,\"Below CLB 4\"],[5,\"Intermediate \u2014 CLB 5\"],[7,\"Good \u2014 CLB 7\"],[8,\"Very good \u2014 CLB 8\"],[9,\"Advanced \u2014 CLB 9\"],[10,\"Proficient \u2014 CLB 10+\"]],\n celpip:[[0,\"Below 4\"],[4,\"4\"],[5,\"5\"],[6,\"6\"],[7,\"7\"],[8,\"8\"],[9,\"9\"],[10,\"10 or higher\"]],\n ielts:{\n  speaking:[[0,\"Below 4.0\"],[4,\"4.0\u20134.5\"],[5,\"5.0\"],[6,\"5.5\"],[7,\"6.0\"],[8,\"6.5\"],[9,\"7.0\"],[10,\"7.5\u20139.0\"]],\n  listening:[[0,\"Below 4.5\"],[4,\"4.5\"],[5,\"5.0\"],[6,\"5.5\"],[7,\"6.0\u20137.0\"],[8,\"7.5\"],[9,\"8.0\"],[10,\"8.5\u20139.0\"]],\n  reading:[[0,\"Below 3.5\"],[4,\"3.5\"],[5,\"4.0\u20134.5\"],[6,\"5.0\u20135.5\"],[7,\"6.0\"],[8,\"6.5\"],[9,\"7.0\u20137.5\"],[10,\"8.0\u20139.0\"]],\n  writing:[[0,\"Below 4.0\"],[4,\"4.0\u20134.5\"],[5,\"5.0\"],[6,\"5.5\"],[7,\"6.0\"],[8,\"6.5\"],[9,\"7.0\"],[10,\"7.5\u20139.0\"]]\n },\n pte:{\n  speaking:[[0,\"Below 42\"],[4,\"42\u201350\"],[5,\"51\u201358\"],[6,\"59\u201367\"],[7,\"68\u201375\"],[8,\"76\u201383\"],[9,\"84\u201388\"],[10,\"89 or higher\"]],\n  listening:[[0,\"Below 28\"],[4,\"28\u201338\"],[5,\"39\u201349\"],[6,\"50\u201359\"],[7,\"60\u201370\"],[8,\"71\u201381\"],[9,\"82\u201388\"],[10,\"89 or higher\"]],\n  reading:[[0,\"Below 33\"],[4,\"33\u201341\"],[5,\"42\u201350\"],[6,\"51\u201359\"],[7,\"60\u201368\"],[8,\"69\u201377\"],[9,\"78\u201387\"],[10,\"88 or higher\"]],\n  writing:[[0,\"Below 41\"],[4,\"41\u201350\"],[5,\"51\u201359\"],[6,\"60\u201368\"],[7,\"69\u201378\"],[8,\"79\u201387\"],[9,\"88\u201389\"],[10,\"90\"]]\n },\n tef:{\n  speaking:[[0,\"Below 181\"],[4,\"181\u2013225\"],[5,\"226\u2013270\"],[6,\"271\u2013309\"],[7,\"310\u2013348\"],[8,\"349\u2013370\"],[9,\"371\u2013392\"],[10,\"393\u2013450\"]],\n  listening:[[0,\"Below 145\"],[4,\"145\u2013180\"],[5,\"181\u2013216\"],[6,\"217\u2013248\"],[7,\"249\u2013279\"],[8,\"280\u2013297\"],[9,\"298\u2013315\"],[10,\"316\u2013360\"]],\n  reading:[[0,\"Below 121\"],[4,\"121\u2013150\"],[5,\"151\u2013180\"],[6,\"181\u2013206\"],[7,\"207\u2013232\"],[8,\"233\u2013247\"],[9,\"248\u2013262\"],[10,\"263\u2013300\"]],\n  writing:[[0,\"Below 181\"],[4,\"181\u2013225\"],[5,\"226\u2013270\"],[6,\"271\u2013309\"],[7,\"310\u2013348\"],[8,\"349\u2013370\"],[9,\"371\u2013392\"],[10,\"393\u2013450\"]]\n },\n tcf:{\n  speaking:[[0,\"Below 4\"],[4,\"4\u20135\"],[5,\"6\"],[6,\"7\u20139\"],[7,\"10\u201311\"],[8,\"12\u201313\"],[9,\"14\u201315\"],[10,\"16\u201320\"]],\n  listening:[[0,\"Below 331\"],[4,\"331\u2013368\"],[5,\"369\u2013397\"],[6,\"398\u2013457\"],[7,\"458\u2013502\"],[8,\"503\u2013522\"],[9,\"523\u2013548\"],[10,\"549\u2013699\"]],\n  reading:[[0,\"Below 342\"],[4,\"342\u2013374\"],[5,\"375\u2013405\"],[6,\"406\u2013452\"],[7,\"453\u2013498\"],[8,\"499\u2013523\"],[9,\"524\u2013548\"],[10,\"549\u2013699\"]],\n  writing:[[0,\"Below 4\"],[4,\"4\u20135\"],[5,\"6\"],[6,\"7\u20139\"],[7,\"10\u201311\"],[8,\"12\u201313\"],[9,\"14\u201315\"],[10,\"16\u201320\"]]\n }\n};\n\n\/\/ Source: IRCC high-wage.html and changes.html, published 2026-10-16.\n\/\/ This calculator explicitly previews the rules effective 2026-11-03.\nconst HIGH_WAGE_NOC={\n \"2\":\"00011 00012 00013 10010 10011 10012 10020 10021 20010 20011 20012 21330 21332 31100 31101 31102 31103 31302 31303 40010 40011 40012 40019 40040 40041 41100 41101 41200 60010 80010 90011\".split(\" \"),\n \"1.5\":\"00014 00015 10019 10022 10029 10030 11103 11201 21100 21102 21103 21109 21111 21120 21202 21210 21211 21220 21221 21222 21223 21230 21231 21232 21300 21301 21310 21311 21320 21321 21322 21331 21390 21399 22231 22312 30010 31110 31112 31120 31200 31202 31203 31300 31301 32111 40020 40021 40030 40042 41210 41220 41221 41310 41311 41320 41401 41402 41404 41407 42100 42101 50010 50011 51100 70010 70012 70020 70021 72011 72012 72023 72103 72202 72203 72301 72406 72600 72601 72604 73310 82020 82021 83101 90010 92011 92100 93100 93101\".split(\" \"),\n \"1.3\":\"00010 11100 11101 11102 11109 11200 12201 12203 21101 21110 21112 21200 21201 21203 21234 22214 22232 22233 22310 22313 31121 32102 32103 32120 32121 32122 41300 41400 41403 41405 41409 43201 43203 50012 51101 51102 51111 51112 51120 52112 60020 60031 60040 72010 72013 72014 72020 72021 72102 72105 72201 72302 72320 72321 72401 72403 72404 72500 72602 72603 73311 82010 83100 83120 92010 93102\".split(\" \")\n};\nconst normalizeNoc=value=>String(value).trim().replace(\/[\\u06f0-\\u06f9]\/g,d=>String(d.charCodeAt(0)-1776)).replace(\/[\\u0660-\\u0669]\/g,d=>String(d.charCodeAt(0)-1632));\nfunction nocBand(noc){return Object.keys(HIGH_WAGE_NOC).find(b=>HIGH_WAGE_NOC[b].includes(normalizeNoc(noc)))||\"none\"}\nfunction jobOfferPoints(eligible,noc){return eligible===\"yes\"?({\"2\":100,\"1.5\":70,\"1.3\":50}[nocBand(noc)]||0):0}\nfunction labourMarketIntegration(years,withSpouse,highWage,offerPoints){\n const length=canWork(years,withSpouse),bonus=+years>=1&&[0,20,40,70].includes(+highWage)?+highWage:0;\n const experience=length+bonus,points=Math.max(experience,offerPoints);\n return{length,bonus,experience,offer:offerPoints,points,selected:offerPoints>experience?\"job_offer\":\"canadian_work\"}\n}\nfunction highWageUI(){\n const eligible=+v(\"hkcrse_canadian_work\")>=1;\n $(\"hkcrse_high_wage_work_wrap\").classList.toggle(\"hidden\",!eligible);\n $(\"hkcrse_high_wage_rules\").classList.toggle(\"hidden\",!eligible);\n if(!eligible){$(\"hkcrse_high_wage_work\").value=\"\";$(\"hkcrse_work_noc_hint\").textContent=\"\";$(\"hkcrse_work_noc_hint\").classList.add(\"hidden\")}\n}\nfunction jobOfferUI(){\n const eligible=v(\"hkcrse_job_offer\")===\"yes\";\n $(\"hkcrse_job_offer_wrap\").classList.toggle(\"hidden\",!eligible);\n if(!eligible)$(\"hkcrse_job_offer_noc\").value=\"\";\n const noc=normalizeNoc(v(\"hkcrse_job_offer_noc\")),band=nocBand(noc);\n $(\"hkcrse_job_offer_note\").textContent=!\/^[0-9]{5}$\/.test(noc)?\"Enter the five-digit NOC code.\":band===\"none\"?\"This code is not on the published high-wage list effective November 3, 2026. It receives zero job-offer points.\":`Occupation band: ${band}\u00d7. Qualifying offer: ${fd(jobOfferPoints(\"yes\",noc))} points. Applied only if higher than the Canadian-experience pathway.`;\n}\n\n\nconst NOC_TITLES={\"10010\":\"Financial managers\",\"10011\":\"Human resources managers\",\"10012\":\"Purchasing managers\",\"10019\":\"Other administrative services managers\",\"10020\":\"Insurance, real estate and financial brokerage managers\",\"10021\":\"Banking, credit and other investment managers\",\"10022\":\"Advertising, marketing and public relations managers\",\"10029\":\"Other business services managers\",\"10030\":\"Telecommunication carriers managers\",\"11100\":\"Financial auditors and accountants\",\"11101\":\"Financial and investment analysts\",\"11102\":\"Financial advisors\",\"11103\":\"Securities agents, investment dealers and brokers\",\"11109\":\"Other financial officers\",\"11200\":\"Human resources professionals\",\"11201\":\"Professional occupations in business management consulting\",\"12201\":\"Insurance adjusters and claims examiners\",\"12203\":\"Assessors, business valuators and appraisers\",\"20010\":\"Engineering managers\",\"20011\":\"Architecture and science managers\",\"20012\":\"Computer and information systems managers\",\"21100\":\"Physicists and astronomers\",\"21101\":\"Chemists\",\"21102\":\"Geoscientists and oceanographers\",\"21103\":\"Meteorologists and climatologists\",\"21109\":\"Other professional occupations in physical sciences\",\"21110\":\"Biologists and related scientists\",\"21111\":\"Forestry professionals\",\"21112\":\"Agricultural representatives, consultants and specialists\",\"21120\":\"Public and environmental health and safety professionals\",\"21200\":\"Architects\",\"21201\":\"Landscape architects\",\"21202\":\"Urban and land use planners\",\"21203\":\"Land surveyors\",\"21210\":\"Mathematicians, statisticians and actuaries\",\"21211\":\"Data scientists\",\"21220\":\"Cybersecurity specialists\",\"21221\":\"Business systems specialists\",\"21222\":\"Information systems specialists\",\"21223\":\"Database analysts and data administrators\",\"21230\":\"Computer systems developers and programmers\",\"21231\":\"Software engineers and designers\",\"21232\":\"Software developers and programmers\",\"21234\":\"Web developers and programmers\",\"21300\":\"Civil engineers\",\"21301\":\"Mechanical engineers\",\"21310\":\"Electrical and electronics engineers\",\"21311\":\"Computer engineers (except software engineers and designers)\",\"21320\":\"Chemical engineers\",\"21321\":\"Industrial and manufacturing engineers\",\"21322\":\"Metallurgical and materials engineers\",\"21330\":\"Mining engineers\",\"21331\":\"Geological engineers\",\"21332\":\"Petroleum engineers\",\"21390\":\"Aerospace engineers\",\"21399\":\"Other professional engineers\",\"22214\":\"Technical occupations in geomatics and meteorology\",\"22231\":\"Engineering inspectors and regulatory officers\",\"22232\":\"Occupational health and safety specialists\",\"22233\":\"Construction inspectors\",\"22310\":\"Electrical and electronics engineering technologists and technicians\",\"22312\":\"Industrial instrument technicians and mechanics\",\"22313\":\"Aircraft instrument, electrical and avionics mechanics, technicians and inspectors\",\"30010\":\"Managers in health care\",\"31100\":\"Specialists in clinical and laboratory medicine\",\"31101\":\"Specialists in surgery\",\"31102\":\"General practitioners and family physicians\",\"31103\":\"Veterinarians\",\"31110\":\"Dentists\",\"31112\":\"Audiologists and speech-language pathologists\",\"31120\":\"Pharmacists\",\"31121\":\"Dietitians and nutritionists\",\"31200\":\"Psychologists\",\"31202\":\"Physiotherapists\",\"31203\":\"Occupational therapists\",\"31300\":\"Nursing coordinators and supervisors\",\"31301\":\"Registered nurses and registered psychiatric nurses\",\"31302\":\"Nurse practitioners\",\"31303\":\"Physician assistants, midwives and allied health professionals\",\"32102\":\"Paramedical occupations\",\"32103\":\"Respiratory therapists, clinical perfusionists and cardiopulmonary technologists\",\"32111\":\"Dental hygienists and dental therapists\",\"32120\":\"Medical laboratory technologists\",\"32121\":\"Medical radiation technologists\",\"32122\":\"Medical sonographers\",\"40010\":\"Government managers - health and social policy development and program administration\",\"40011\":\"Government managers - economic analysis, policy development and program administration\",\"40012\":\"Government managers - education policy development and program administration\",\"40019\":\"Other managers in public administration\",\"40020\":\"Administrators - post-secondary education and vocational training\",\"40021\":\"School principals and administrators of elementary and secondary education\",\"40030\":\"Managers in social, community and correctional services\",\"40040\":\"Commissioned police officers and related occupations in public protection services\",\"40041\":\"Fire chiefs and senior firefighting officers\",\"40042\":\"Commissioned officers of the Canadian Armed Forces\",\"41100\":\"Judges\",\"41101\":\"Lawyers and Quebec notaries\",\"41200\":\"University professors and lecturers\",\"41210\":\"College and other vocational instructors\",\"41220\":\"Secondary school teachers\",\"41221\":\"Elementary school and kindergarten teachers\",\"41300\":\"Social workers\",\"41310\":\"Police investigators and other investigative occupations\",\"41311\":\"Probation and parole officers\",\"41320\":\"Educational counsellors\",\"41400\":\"Natural and applied science policy researchers, consultants and program officers\",\"41401\":\"Economists and economic policy researchers and analysts\",\"41402\":\"Business development officers and market researchers and analysts\",\"41403\":\"Social policy researchers, consultants and program officers\",\"41404\":\"Health policy researchers, consultants and program officers\",\"41405\":\"Education policy researchers, consultants and program officers\",\"41407\":\"Program officers unique to government\",\"41409\":\"Other professional occupations in social science\",\"42100\":\"Police officers (except commissioned)\",\"42101\":\"Firefighters\",\"43201\":\"Correctional service officers\",\"43203\":\"Border services, customs, and immigration officers\",\"50010\":\"Library, archive, museum and art gallery managers\",\"50011\":\"Managers - publishing, motion pictures, broadcasting and performing arts\",\"50012\":\"Recreation, sports and fitness program and service directors\",\"51100\":\"Librarians\",\"51101\":\"Conservators and curators\",\"51102\":\"Archivists\",\"51111\":\"Authors and writers (except technical)\",\"51112\":\"Technical writers\",\"51120\":\"Producers, directors, choreographers and related occupations\",\"52112\":\"Broadcast technicians\",\"60010\":\"Corporate sales managers\",\"60020\":\"Retail and wholesale trade managers\",\"60031\":\"Accommodation service managers\",\"60040\":\"Managers in customer and personal services\",\"70010\":\"Construction managers\",\"70012\":\"Facility operation and maintenance managers\",\"70020\":\"Managers in transportation\",\"70021\":\"Postal and courier services managers\",\"72010\":\"Contractors and supervisors, machining, metal forming, shaping and erecting trades and related occupations\",\"72011\":\"Contractors and supervisors, electrical trades and telecommunications occupations\",\"72012\":\"Contractors and supervisors, pipefitting trades\",\"72013\":\"Contractors and supervisors, carpentry trades\",\"72014\":\"Contractors and supervisors, other construction trades, installers, repairers and servicers\",\"72020\":\"Contractors and supervisors, mechanic trades\",\"72021\":\"Contractors and supervisors, heavy equipment operator crews\",\"72023\":\"Supervisors, railway transport operations\",\"72102\":\"Sheet metal workers\",\"72103\":\"Boilermakers\",\"72105\":\"Ironworkers\",\"72201\":\"Industrial electricians\",\"72202\":\"Power system electricians\",\"72203\":\"Electrical power line and cable workers\",\"72301\":\"Steamfitters, pipefitters and sprinkler system installers\",\"72302\":\"Gas fitters\",\"72320\":\"Bricklayers\",\"72321\":\"Insulators\",\"72401\":\"Heavy-duty equipment mechanics\",\"72403\":\"Railway carmen\/women\",\"72404\":\"Aircraft mechanics and aircraft inspectors\",\"72406\":\"Elevator constructors and mechanics\",\"72500\":\"Crane operators\",\"72600\":\"Air pilots, flight engineers and flying instructors\",\"72601\":\"Air traffic controllers and related occupations\",\"72602\":\"Deck officers, water transport\",\"72603\":\"Engineer officers, water transport\",\"72604\":\"Railway traffic controllers and marine traffic regulators\",\"73310\":\"Railway and yard locomotive engineers\",\"73311\":\"Railway conductors and brakemen\/women\",\"80010\":\"Managers in natural resources production and fishing\",\"82010\":\"Supervisors, logging and forestry\",\"82020\":\"Supervisors, mining and quarrying\",\"82021\":\"Contractors and supervisors, oil and gas drilling and services\",\"83100\":\"Underground production and development miners\",\"83101\":\"Oil and gas well drillers, servicers, testers and related workers\",\"83120\":\"Fishing masters and officers\",\"90010\":\"Manufacturing managers\",\"90011\":\"Utilities managers\",\"92010\":\"Supervisors, mineral and metal processing\",\"92011\":\"Supervisors, petroleum, gas and chemical processing and utilities\",\"92100\":\"Power engineers and power systems operators\",\"93100\":\"Central control and process operators, mineral and metal processing\",\"93101\":\"Central control and process operators, petroleum, gas and chemical processing\",\"93102\":\"Pulping, papermaking and coating control operators\",\"00011\":\"Senior government managers and officials\",\"00012\":\"Senior managers - financial, communications and other business services\",\"00013\":\"Senior managers - health, education, social and community services and membership organizations\",\"00014\":\"Senior managers - trade, broadcasting and other services\",\"00015\":\"Senior managers - construction, transportation, production and utilities\",\"00010\":\"Legislators\"};\nconst NOC_BAND_INFO={\n \"2\":{title:\"2\u00d7 or higher\",work:70,offer:100},\n \"1.5\":{title:\"1.5\u2013Below 2\u00d7\",work:40,offer:70},\n \"1.3\":{title:\"1.3\u2013Below 1.5\u00d7\",work:20,offer:50}\n};\nlet nocContext=\"offer\",nocOpener=null;\nconst escapeNocText=text=>String(text).replace(\/[&<>\"']\/g,c=>({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"}[c]));\nfunction matchingNocs(query,filter){\n const terms=normalizeNoc(query).toLowerCase().split(\/\\s+\/).filter(Boolean);\n return [\"2\",\"1.5\",\"1.3\"].filter(b=>filter===\"all\"||b===filter).map(b=>({band:b,codes:HIGH_WAGE_NOC[b].filter(code=>terms.every(term=>(code+\" \"+NOC_TITLES[code]).toLowerCase().includes(term)))})).filter(g=>g.codes.length);\n}\nfunction renderNocList(){\n const groups=matchingNocs(v(\"hkcrse_noc_search\"),v(\"hkcrse_noc_band_filter\")),count=groups.reduce((sum,g)=>sum+g.codes.length,0);\n $(\"hkcrse_noc_count\").textContent=count?`${fd(count)} occupations found.`:\"No matching occupation. Check the NOC or job title; the occupation may not be on the high-wage list.\";\n $(\"hkcrse_noc_list\").innerHTML=groups.map(g=>{const info=NOC_BAND_INFO[g.band];return `<section class=\"noc-group\"><div class=\"noc-group-title\">Band ${info.title}<small>Canadian experience bonus: ${fd(info.work)} points \u00b7 Qualifying offer: ${fd(info.offer)} points<\/small><\/div>${g.codes.map(code=>`<div class=\"noc-row\"><span><b>${code}<\/b><span class=\"noc-title\" lang=\"en\">${escapeNocText(NOC_TITLES[code])}<\/span><\/span><button type=\"button\" class=\"noc-select\" data-noc-code=\"${code}\" aria-label=\"Select NOC ${code}\">${nocContext===\"offer\"?\"Select NOC\":\"Select occupation\"}<\/button><\/div>`).join(\"\")}<\/section>`}).join(\"\");\n}\nfunction openNocDialog(context,opener){\n nocContext=context;nocOpener=opener;\n $(\"hkcrse_noc_context\").textContent=context===\"offer\"?\"Find the occupation for your job offer. Selecting it fills the NOC code and identifies the potential points. The offer must still meet all validity requirements.\":\"Selecting an occupation confirms at least 12 months of qualifying Canadian experience in that occupation and selects its band automatically. For experience combined across occupations or bands, choose the applicable band directly in the form.\";\n $(\"hkcrse_noc_search\").value=\"\";$(\"hkcrse_noc_band_filter\").value=\"all\";renderNocList();\n const dialog=$(\"hkcrse_noc_dialog\");if(!dialog.open)dialog.showModal();$(\"hkcrse_noc_search\").focus();\n}\nfunction closeNocDialog(){const dialog=$(\"hkcrse_noc_dialog\");if(dialog.open)dialog.close()}\nfunction chooseNoc(code){\n const band=nocBand(code);if(band===\"none\")return;\n if(nocContext===\"offer\"){\n  $(\"hkcrse_job_offer_noc\").value=code;jobOfferUI();\n }else{\n  if(+v(\"hkcrse_canadian_work\")<1){closeNocDialog();return}\n  const info=NOC_BAND_INFO[band];\n  $(\"hkcrse_high_wage_work\").value=String(info.work);\n  const hint=$(\"hkcrse_work_noc_hint\");hint.textContent=`NOC ${code}: ${info.title} band. ${fd(info.work)} bonus points selected based on your confirmation of 12 months of qualifying Canadian experience. You can adjust the band below.`;hint.classList.remove(\"hidden\");\n }\n closeNocDialog();\n}\nroot.querySelectorAll(\"[data-noc-open]\").forEach(button=>button.addEventListener(\"click\",()=>openNocDialog(button.dataset.nocOpen,button)));\n$(\"hkcrse_noc_close\").addEventListener(\"click\",closeNocDialog);\n$(\"hkcrse_noc_search\").addEventListener(\"input\",renderNocList);\n$(\"hkcrse_noc_band_filter\").addEventListener(\"change\",renderNocList);\n$(\"hkcrse_noc_list\").addEventListener(\"click\",event=>{const button=event.target.closest(\"[data-noc-code]\");if(button&&$(\"hkcrse_noc_list\").contains(button))chooseNoc(button.dataset.nocCode)});\n$(\"hkcrse_noc_dialog\").addEventListener(\"click\",event=>{if(event.target!==$(\"hkcrse_noc_dialog\"))return;const rect=event.target.getBoundingClientRect();if(event.clientX<rect.left||event.clientX>rect.right||event.clientY<rect.top||event.clientY>rect.bottom)closeNocDialog()});\n$(\"hkcrse_noc_dialog\").addEventListener(\"close\",()=>{if(nocOpener&&nocOpener.isConnected)nocOpener.focus()});\n\nfunction opts(test,skill){if(test===\"approx\")return O.approx;if(test===\"celpip\")return O.celpip;return O[test][skill]}\nfunction fill(sel,test,skill){sel.innerHTML='<option value=\"\">Select an option<\/option>';if(test===\"none\")return;opts(test,skill).slice().sort((a,b)=>b[0]-a[0]).forEach(x=>sel.insertAdjacentHTML(\"beforeend\",`<option value=\"${x[0]}\">${x[1]}<\/option>`))}\nfunction langBox(s){let t=s.value,p=s.dataset.prefix,b=$(s.dataset.box),n=$(s.dataset.note);b.classList.toggle(\"hidden\",t===\"none\");[\"speaking\",\"listening\",\"reading\",\"writing\"].forEach(k=>fill($(p+\"_\"+k),t,k));if(t===\"tef\"){n.textContent=\"Use the TEF equivalency scores corresponding to these ranges, not an unrelated score scale. If unsure, verify the conversion before calculating.\";n.classList.remove(\"hidden\")}else if(t===\"approx\"){n.textContent=\"Approximate levels are for estimation only.\";n.classList.remove(\"hidden\")}else n.classList.add(\"hidden\")}\nfunction scrollToFormTop(behavior=scrollBehavior()){\n  const target=root.querySelector(\".wrap\")||root;\n  const headerOffset=headerOffsetPx();\n  const top=target.getBoundingClientRect().top+window.pageYOffset-headerOffset;\n  window.scrollTo({top:Math.max(0,top),behavior});\n}\n\nfunction showStep(n,shouldScroll=true){\n  root.querySelectorAll(\".step\").forEach(x=>x.classList.toggle(\"active\",+x.dataset.step===n));\n  root.querySelectorAll(\".progress-item\").forEach(x=>{\n    let p=+x.dataset.progress;\n    x.classList.toggle(\"active\",p===n);\n    if(p===n)x.setAttribute(\"aria-current\",\"step\");else x.removeAttribute(\"aria-current\");\n    x.classList.toggle(\"done\",p<n);\n  });\n\n  if(shouldScroll){\n    window.requestAnimationFrame(()=>window.requestAnimationFrame(()=>scrollToFormTop(scrollBehavior())));\n  }\n}\nfunction completeProgress(){root.querySelectorAll(\".progress-item\").forEach(x=>{if(x.style.display===\"none\")return;x.classList.remove(\"active\");x.removeAttribute(\"aria-current\");x.classList.add(\"done\")})}\nfunction spouseMode(){let m=v(\"hkcrse_marital\");if(!(m===\"married\"||m===\"common_law\"))return\"without\";if(v(\"hkcrse_spouse_pr\")===\"yes\")return\"without\";return v(\"hkcrse_spouse_coming\")===\"yes\"?\"with\":\"without\"}\nfunction spouseUI(){let m=v(\"hkcrse_marital\"),has=m===\"married\"||m===\"common_law\";$(\"hkcrse_spouse_pr_wrap\").classList.toggle(\"hidden\",!has);$(\"hkcrse_spouse_coming_wrap\").classList.toggle(\"hidden\",!(has&&v(\"hkcrse_spouse_pr\")===\"no\"));let w=spouseMode()===\"with\";root.querySelector('[data-progress=\"6\"]').style.display=w?\"flex\":\"none\";$(\"hkcrse_additional_next_or_calc\").textContent=w?\"Continue\":\"Calculate my CRS score\"}\nfunction canEduUI(){let y=v(\"hkcrse_has_canadian_education\")===\"yes\";$(\"hkcrse_canadian_education_wrap\").classList.toggle(\"hidden\",!y);if(!y)$(\"hkcrse_canadian_education\").value=\"none\"}\nfunction err(id,m){let b=$(id);b.textContent=m;b.style.display=m?\"block\":\"none\"}\nfunction clear(id){let b=$(id);b.textContent=\"\";b.style.display=\"none\"}\nfunction getLang(p,t){let test=v(t);if(test===\"none\")return{test,clb:[0,0,0,0],display:[\"\u2014\",\"\u2014\",\"\u2014\",\"\u2014\"]};let ids=[\"speaking\",\"listening\",\"reading\",\"writing\"].map(k=>p+\"_\"+k);return{test,clb:ids.map(i=>+v(i)||0),display:ids.map(i=>$(i).options[$(i).selectedIndex]?.text||\"\u2014\")}}\nfunction validate(step){\n clear(\"hkcrse_form_error\");\n if(step===1){if(!v(\"hkcrse_marital\"))return\"Select your marital status.\";if(!v(\"hkcrse_age\"))return\"Select your age.\";let m=v(\"hkcrse_marital\"),h=m===\"married\"||m===\"common_law\";if(h&&!v(\"hkcrse_spouse_pr\"))return\"Select your spouse\u2019s citizenship or permanent resident status.\";if(h&&v(\"hkcrse_spouse_pr\")===\"no\"&&!v(\"hkcrse_spouse_coming\"))return\"Select whether your spouse will accompany you.\"}\n if(step===2&&!v(\"hkcrse_education\"))return\"Select your education level.\";\n if(step===3){if(v(\"hkcrse_en_test\")===\"none\"&&v(\"hkcrse_fr_test\")===\"none\")return\"Enter test results or an approximate language level to calculate your estimate.\";for(let p of [[\"hkcrse_en\",\"hkcrse_en_test\"],[\"hkcrse_fr\",\"hkcrse_fr_test\"]])if(v(p[1])!==\"none\"&&[\"speaking\",\"listening\",\"reading\",\"writing\"].some(k=>!v(p[0]+\"_\"+k)))return\"Complete all four language skills.\"}\n if(step===4&&+v(\"hkcrse_canadian_work\")>=1&&!v(\"hkcrse_high_wage_work\"))return\"Select your qualifying high-wage experience band.\";\n if(step===5){if(!v(\"hkcrse_job_offer\"))return\"Select whether you have a qualifying job offer.\";if(v(\"hkcrse_job_offer\")===\"yes\"&&!\/^[0-9]{5}$\/.test(normalizeNoc(v(\"hkcrse_job_offer_noc\"))))return\"Enter a five-digit NOC code for the job offer.\"}\n if(step===6&&spouseMode()===\"with\"){if(!v(\"hkcrse_spouse_education\"))return\"Select your spouse\u2019s education level.\";if(v(\"hkcrse_spouse_test\")!==\"none\"&&[\"speaking\",\"listening\",\"reading\",\"writing\"].some(k=>!v(\"hkcrse_spouse_\"+k)))return\"Complete all four language skills for your spouse.\"}\n return null\n}\nfunction firstLang(a,w){return a.reduce((s,l)=>s+(l<4?0:l<=5?6:l===6?(w?8:9):l===7?(w?16:17):l===8?(w?22:23):l===9?(w?29:31):(w?32:34)),0)}\nfunction secondLang(a,w){return Math.min(w?22:24,a.reduce((s,l)=>s+(l<=4?0:l<=6?1:l<=8?3:6),0))}\nfunction agePts(a,w){let A={le17:0,18:w?90:99,19:w?95:105,\"20_29\":w?100:110,30:w?95:105,31:w?90:99,32:w?85:94,33:w?80:88,34:w?75:83,35:w?70:77,36:w?65:72,37:w?60:66,38:w?55:61,39:w?50:55,40:w?45:50,41:w?35:39,42:w?25:28,43:w?15:17,44:w?5:6,ge45:0};return A[a]||0}\nfunction eduPts(e,w){let A=w?{less_secondary:0,secondary:28,one_year:84,two_year:91,bachelor:112,two_or_more:119,master:126,phd:140}:{less_secondary:0,secondary:30,one_year:90,two_year:98,bachelor:120,two_or_more:128,master:135,phd:150};return A[e]||0}\nfunction canWork(y,w){let A=w?[0,35,46,56,63,70]:[0,40,53,64,72,80];return A[+y]||0}\nfunction spouseEdu(e){return({less_secondary:0,secondary:2,one_year:6,two_year:7,bachelor:8,two_or_more:9,master:10,phd:10})[e]||0}\nfunction spouseLang(a){return Math.min(20,a.reduce((s,l)=>s+(l<=4?0:l<=6?1:l<=8?3:5),0))}\nfunction spouseWork(y){return[0,5,7,8,9,10][+y]||0}\nfunction eduGroup(e){return e===\"less_secondary\"||e===\"secondary\"?\"none\":([\"two_or_more\",\"master\",\"phd\"].includes(e)?\"high\":\"post\")}\nfunction eduTrans(e,c,l){let g=eduGroup(e),cw=+c;if(g===\"none\")return 0;let a=all(l,9)?(g===\"high\"?50:25):all(l,7)?(g===\"high\"?25:13):0,b=cw>=2?(g===\"high\"?50:25):cw===1?(g===\"high\"?25:13):0;return Math.min(50,a+b)}\nfunction foreignTrans(f,c,l){f=+f;c=+c;if(!f)return 0;let a=all(l,9)?(f>=3?50:25):all(l,7)?(f>=3?25:13):0,b=c>=2?(f>=3?50:25):c===1?(f>=3?25:13):0;return Math.min(50,a+b)}\nfunction certTrans(y,l){if(y!==\"yes\")return 0;return all(l,7)?50:all(l,5)?25:0}\nfunction frExtra(fr,en,enTest){if(!all(fr,7))return 0;if(enTest===\"none\"||atMost(en,4))return 25;if(all(en,5))return 50;return 0}\nfunction order(en,fr,w){let p=v(\"hkcrse_first_language\"),ep=firstLang(en.clb,w)+secondLang(fr.clb,w),fp=firstLang(fr.clb,w)+secondLang(en.clb,w);if(p===\"en\")return{name:\"English\",first:en.clb,second:fr.clb};if(p===\"fr\")return{name:\"French\",first:fr.clb,second:en.clb};return fp>ep?{name:\"French\",first:fr.clb,second:en.clb}:{name:\"English\",first:en.clb,second:fr.clb}}\nfunction section(t,total,rows){return`<div class=\"detail-section\"><div class=\"detail-head\"><strong>${t}<\/strong><span class=\"detail-total\">${fd(total)} points<\/span><\/div>${rows.map(r=>`<div class=\"detail-row\"><span>${r.label}<\/span><span>${fd(r.points)} points<\/span><\/div>`).join(\"\")}<\/div>`}\nconst POOL_RANGES=[\n {key:\"601-1200\",lo:601,hi:1200,label:\"601+\"},\n {key:\"501-600\",lo:501,hi:600,label:\"501\u2013600\"},\n {key:\"451-500\",lo:451,hi:500,label:\"451\u2013500\"},\n {key:\"401-450\",lo:401,hi:450,label:\"401\u2013450\"},\n {key:\"351-400\",lo:351,hi:400,label:\"351\u2013400\"},\n {key:\"301-350\",lo:301,hi:350,label:\"301\u2013350\"},\n {key:\"0-300\",lo:0,hi:300,label:\"0\u2013300\"}\n];\nconst POOL_RANK_RANGES=[\n {key:\"601-1200\",lo:601,hi:1200},{key:\"501-600\",lo:501,hi:600},\n {key:\"491-500\",lo:491,hi:500},{key:\"481-490\",lo:481,hi:490},{key:\"471-480\",lo:471,hi:480},{key:\"461-470\",lo:461,hi:470},{key:\"451-460\",lo:451,hi:460},\n {key:\"441-450\",lo:441,hi:450},{key:\"431-440\",lo:431,hi:440},{key:\"421-430\",lo:421,hi:430},{key:\"411-420\",lo:411,hi:420},{key:\"401-410\",lo:401,hi:410},\n {key:\"351-400\",lo:351,hi:400},{key:\"301-350\",lo:301,hi:350},{key:\"0-300\",lo:0,hi:300}\n];\nfunction poolKey(value){return String(value||\"\").trim().replace(\/[\u2013\u2014\u2212]\/g,\"-\").replace(\/\\s+\/g,\"\").toLowerCase()}\nfunction poolEstimate(score,data){\n if(!data||!Array.isArray(data.pool)||!data.pool.length)return null;\n const byRange=new Map(data.pool.map(row=>[poolKey(row.range),Math.max(0,Number(row.current)||0)]));\n const ranges=POOL_RANGES.map(range=>({...range,count:byRange.get(poolKey(range.key))}));\n if(ranges.some(range=>!Number.isFinite(range.count)))return null;\n const rankRanges=POOL_RANK_RANGES.map(range=>({...range,count:byRange.get(poolKey(range.key))}));\n if(rankRanges.some(range=>!Number.isFinite(range.count)))return null;\n const listedTotal=ranges.reduce((sum,range)=>sum+range.count,0);\n const total=byRange.get(\"total\")||listedTotal;\n if(!total||Math.abs(listedTotal-total)>Math.max(2,total*.002))return null;\n const bounded=Math.max(0,Math.min(1200,Number(score)||0));\n let higher=0,currentRange=null;\n rankRanges.forEach(range=>{\n  if(bounded<range.lo){higher+=range.count;return}\n  if(bounded>range.hi)return;\n  currentRange=range;\n  const scoreSlots=range.hi-range.lo+1;\n  const slotsAbove=Math.max(0,range.hi-bounded);\n  higher+=range.count*(slotsAbove\/scoreSlots);\n });\n higher=Math.max(0,Math.min(total,Math.round(higher)));\n const rank=Math.min(total,higher+1);\n const ahead=Math.max(0,Math.min(100,((total-higher)\/total)*100));\n return{score:bounded,total,candidates_higher:higher,estimated_rank:rank,ahead_percent:Number(ahead.toFixed(1)),snapshot_date:String(data.poolSnapshotDate||\"\"),range:currentRange?currentRange.key:\"Outside published ranges\",ranges};\n}\nfunction ordinal(value){\n const n=Math.max(1,Math.round(Number(value)||1)),m100=n%100;\n if(m100>=11&&m100<=13)return fd(n)+\"th\";\n return fd(n)+({1:\"st\",2:\"nd\",3:\"rd\"}[n%10]||\"th\");\n}\nfunction poolDate(value){\n if(!\/^\\d{4}-\\d{2}-\\d{2}$\/.test(String(value||\"\")))return\"Latest available snapshot\";\n return new Intl.DateTimeFormat(\"en-CA\",{year:\"numeric\",month:\"long\",day:\"numeric\",timeZone:\"UTC\"}).format(new Date(value+\"T00:00:00Z\"));\n}\nfunction renderPoolRank(score,data){\n const loading=$(\"hkcrse_pool_loading\"),content=$(\"hkcrse_pool_content\"),estimate=poolEstimate(score,data);\n if(!estimate){loading.textContent=\"The current pool distribution is temporarily unavailable. Your CRS estimate is still shown below.\";content.hidden=true;return null}\n const max=Math.max(...estimate.ranges.map(range=>range.count),1);\n const bars=estimate.ranges.map(range=>{\n  const height=Math.round(18+Math.sqrt(range.count\/max)*78);\n  const active=estimate.score>=range.lo&&estimate.score<=range.hi;\n  return `<span class=\"pool-bar${active?\" is-current\":\"\"}\" style=\"--bar-height:${height}%\" data-label=\"${range.label}\" title=\"${range.label}: ${fd(range.count)} candidates\"><\/span>`;\n }).join(\"\");\n content.innerHTML=`<div class=\"pool-rank-head\"><div><span class=\"pool-rank-kicker\">Latest pool comparison<\/span><h3>Where your score sits in the Express Entry pool<\/h3><\/div><span class=\"pool-rank-date\">Snapshot: ${poolDate(estimate.snapshot_date)}<\/span><\/div><div class=\"pool-rank-grid\"><div class=\"pool-rank-position\"><span>Estimated overall position in the full pool<\/span><strong><em>${ordinal(estimate.estimated_rank)}<\/em> place<\/strong><div class=\"pool-rank-total\">among ${fd(estimate.total)} profiles<\/div><p class=\"pool-rank-higher\">About <strong>${fd(estimate.candidates_higher)} profiles<\/strong> are estimated above your score.<\/p><p>You are estimated to be ahead of <strong>${estimate.ahead_percent}%<\/strong> of the pool.<\/p><\/div><div class=\"pool-rank-chart\"><div class=\"pool-rank-chart-title\"><span>Candidate distribution by CRS range<\/span><span class=\"pool-rank-range\">Your detailed range: ${estimate.range}<\/span><\/div><div class=\"pool-bars\" aria-label=\"Candidate counts by CRS range\">${bars}<\/div><p class=\"pool-rank-copy\">The <strong>red bar<\/strong> shows the score group containing your profile. Taller bars contain more profiles.<\/p><\/div><\/div><p class=\"pool-rank-context\"><strong>This is an overall-pool estimate, not an invitation forecast.<\/strong> IRCC also conducts program-specific and category-based rounds. If you meet the requirements of a targeted program or category, your invitation prospects may differ from this overall ranking because the criteria and CRS cut-off for that round will apply. A lower overall position does not, by itself, rule out an invitation.<\/p><p class=\"pool-rank-note\"><strong>How this estimate works:<\/strong> IRCC publishes candidate counts by score range, not an exact rank for every CRS score. The calculator adds all candidates in higher ranges and estimates the share above your score within your own range. Pool membership changes continuously, and the snapshot may reflect profiles scored under the rules in effect on its publication date.<\/p>`;\n loading.hidden=true;content.hidden=false;\n return estimate;\n}\nasync function loadPoolData(){\n if(poolData)return poolData;\n if(poolPromise)return poolPromise;\n poolPromise=(async()=>{\n  let response=await fetch(CONFIG.poolEndpoint,{credentials:\"same-origin\",cache:\"no-store\",headers:{Accept:\"application\/json\"}});\n  let data=null;try{data=await response.json()}catch(ignore){}\n  if((!response.ok||!data||!Array.isArray(data.pool))&&response.status===404){\n   response=await fetch(CONFIG.poolFallbackEndpoint,{credentials:\"same-origin\",cache:\"no-store\",headers:{Accept:\"application\/json\"}});\n   try{data=await response.json()}catch(ignore){data=null}\n  }\n  if(!response.ok||!data||!Array.isArray(data.pool))throw new Error(\"Pool data unavailable\");\n  poolData=data;return data;\n })().catch(()=>null).finally(()=>{poolPromise=null});\n return poolPromise;\n}\nfunction refreshPoolRank(score){\n const loading=$(\"hkcrse_pool_loading\"),content=$(\"hkcrse_pool_content\");\n loading.hidden=false;loading.textContent=\"Loading the latest Express Entry pool distribution\u2026\";content.hidden=true;\n loadPoolData().then(data=>{const estimate=renderPoolRank(score,data);if(pending)pending.poolRank=estimate;});\n}\nfunction scenarioScore(r,changes={}){\n const w=r.spouseMode===\"with\";\n const en=changes.en||r.en,fr=changes.fr||r.fr;\n const pref=r.firstLanguagePreference;\n const enTotal=firstLang(en.clb,w)+secondLang(fr.clb,w),frTotal=firstLang(fr.clb,w)+secondLang(en.clb,w);\n const first=pref===\"fr\"||(pref!==\"en\"&&frTotal>enTotal)?fr:en,second=first===fr?en:fr;\n const education=changes.education??r.education,canadianWork=String(changes.canadianWork??r.canadianWork),foreignWork=String(changes.foreignWork??r.foreignWork);\n const highWageWork=String(changes.highWageWork??r.highWageWork),jobOffer=changes.jobOffer??r.jobOffer,jobOfferNoc=changes.jobOfferNoc??r.jobOfferNoc;\n const lmi=labourMarketIntegration(canadianWork,w,highWageWork,jobOfferPoints(jobOffer,jobOfferNoc));\n const human=agePts(r.age,w)+eduPts(education,w)+firstLang(first.clb,w)+secondLang(second.clb,w);\n const spouse=r.spouse;\n const transfer=Math.min(100,eduTrans(education,canadianWork,first.clb)+foreignTrans(foreignWork,canadianWork,first.clb)+certTrans(changes.certificate??r.certificate,first.clb));\n const sibling=(changes.sibling??r.sibling)===\"yes\"?15:0;\n const canEdu=changes.canadianEducation??r.canadianEducation;\n const canadianEducation=canEdu===\"one_two\"?15:canEdu===\"three_plus\"?30:0;\n const pnp=(changes.pnp??r.pnp)===\"yes\"?600:0;\n const additional=Math.min(600,sibling+canadianEducation+pnp+frExtra(fr.clb,en.clb,en.test));\n return human+lmi.points+spouse+transfer+additional;\n}\nfunction buildImprovements(r){\n const items=[];\n const add=(title,note,changes)=>{const newScore=scenarioScore(r,changes),gain=Math.round(newScore-r.total);if(gain>0)items.push({title,note:typeof note===\"function\"?note(gain,newScore):note,gain,newScore:Math.round(newScore)})};\n const cw=Number(r.canadianWork)||0,fw=Number(r.foreignWork)||0;\n if(cw<5)add(\"Add one more year of eligible Canadian work\",\"Recalculates work-length, labour-market-integration and related skill-combination points.\",{canadianWork:String(cw+1)});\n const enClb=r.en.clb.map(x=>Math.max(Number(x)||0,9));\n if(r.en.clb.some(x=>Number(x)<9))add(\"Reach at least CLB 9 in all four English abilities\",\"Includes both language points and any resulting skill-transferability increase.\",{en:{test:\"approx\",clb:enClb,display:[]}});\n const frClb=r.fr.clb.map(x=>Math.max(Number(x)||0,7));\n if(r.fr.clb.some(x=>Number(x)<7))add(\"Reach at least NCLC 7 in all four French abilities\",\"Includes French-language additional points and any change to official-language ranking.\",{fr:{test:\"approx\",clb:frClb,display:[]}});\n const educationOrder=[\"less_secondary\",\"secondary\",\"one_year\",\"two_year\",\"bachelor\",\"two_or_more\",\"master\",\"phd\"];\n if(educationOrder.indexOf(r.education)<educationOrder.indexOf(\"master\"))add(\"Complete or obtain an assessed master\u2019s-level credential\",\"Recalculates education, human-capital and related skill-combination points.\",{education:\"master\"});\n if(r.canadianEducation!==\"three_plus\")add(\"Complete an eligible Canadian program of three years or more\",\"Compares your current Canadian-education points with the 30-point level.\",{canadianEducation:\"three_plus\"});\n if(fw<3)add(\"Reach three years of eligible foreign work experience\",\"May increase the foreign-work skill-combination factor when the requirements are met.\",{foreignWork:\"3\"});\n if(cw>=1&&Number(r.highWageWork||0)<70)add(\"Qualify for the highest eligible high-wage Canadian-work band\",\"Requires qualifying Canadian work in an occupation at the 2\u00d7 national median-wage band.\",{highWageWork:\"70\"});\n if(jobOfferPoints(r.jobOffer,r.jobOfferNoc)<100)add(\"Obtain a qualifying job offer in the highest eligible wage band\",\"Shows the potential 2\u00d7-band offer result; the offer must meet every applicable requirement.\",{jobOffer:\"yes\",jobOfferNoc:\"00011\"});\n if(r.sibling!==\"yes\")add(\"Have an eligible sibling in Canada\",\"Only applies when the sibling relationship and Canadian status requirements are met.\",{sibling:\"yes\"});\n if(r.pnp!==\"yes\")add(\"Receive a provincial or territorial nomination\",gain=>gain<600?`A qualifying nomination is worth 600 points. You already have ${fd(r.additional)} points in the Additional Points section, which is capped at 600, so the net increase in this estimate is ${fd(gain)} points.`:\"A qualifying Express Entry nomination adds 600 points.\",{pnp:\"yes\"});\n return items;\n}\nfunction renderScoreBreakdown(r){\n const rows=[\n  {label:\"Age, education and official languages\",note:\"Human-capital points before labour-market integration\",value:r.humanCapital,max:r.spouseMode===\"with\"?390:420,tone:\"red\"},\n  {label:\"Canadian work or qualifying job offer\",note:\"Only the higher labour-market-integration result is counted\",value:r.labourMarketIntegration.points,max:r.spouseMode===\"with\"?140:150,tone:\"ice\"},\n  ...(r.spouseMode===\"with\"?[{label:\"Spouse factors\",note:\"Education, language and Canadian work\",value:r.spouse,max:40,tone:\"lilac\"}]:[]),\n  {label:\"Skill combinations\",note:\"Education, foreign work and trade-certificate combinations\",value:r.transfer,max:100,tone:\"green\"},\n  {label:\"Additional points\",note:\"Canadian education, French, sibling and nomination factors\",value:r.additional,max:600,tone:\"khaki\"}\n ];\n r.scoreBreakdown=rows;\n $(\"hkcrse_score_breakdown_list\").innerHTML=rows.map(row=>{const pct=Math.max(0,Math.min(100,row.max?row.value\/row.max*100:0));return `<div class=\"score-meter\" data-tone=\"${row.tone}\"><div class=\"score-meter-label\"><strong>${row.label}<\/strong><span>${row.note}<\/span><\/div><div class=\"score-meter-track\" role=\"progressbar\" aria-label=\"${row.label}\" aria-valuemin=\"0\" aria-valuemax=\"${row.max}\" aria-valuenow=\"${row.value}\"><span class=\"score-meter-fill\" style=\"width:${pct.toFixed(1)}%\"><\/span><\/div><div class=\"score-meter-value\">${fd(row.value)} <small>of ${fd(row.max)} points<\/small><\/div><\/div>`}).join(\"\");\n}\nfunction renderImprovements(r){\n const list=buildImprovements(r);r.improvements=list;\n const box=$(\"hkcrse_improvement_list\"),section=$(\"hkcrse_improvements\");\n if(!list.length){section.hidden=true;return}\n section.hidden=false;\n box.innerHTML=list.map(item=>`<article class=\"improvement-item\"><div class=\"improvement-gain\">+${fd(item.gain)}<\/div><div class=\"improvement-copy\"><strong>${item.title}<\/strong><span class=\"improvement-result\">Estimated score: ${fd(r.total)} \u2192 ${fd(item.newScore)}<\/span><span>${item.note}<\/span><\/div><\/article>`).join(\"\");\n}\nfunction calculate(){\n for(let i=1;i<=6;i++){if(i===6&&spouseMode()!==\"with\")continue;let m=validate(i);if(m){err(\"hkcrse_form_error\",m);return}}\n let w=spouseMode()===\"with\",en=getLang(\"hkcrse_en\",\"hkcrse_en_test\"),fr=getLang(\"hkcrse_fr\",\"hkcrse_fr_test\"),o=order(en,fr,w);\n let a=agePts(v(\"hkcrse_age\"),w),e=eduPts(v(\"hkcrse_education\"),w),l1=firstLang(o.first,w),l2=secondLang(o.second,w),lmi=labourMarketIntegration(v(\"hkcrse_canadian_work\"),w,v(\"hkcrse_high_wage_work\"),jobOfferPoints(v(\"hkcrse_job_offer\"),v(\"hkcrse_job_offer_noc\"))),core=a+e+l1+l2+lmi.points;\n let sl=null,se=0,sla=0,sw=0,sp=0;if(w){sl=getLang(\"hkcrse_spouse\",\"hkcrse_spouse_test\");se=spouseEdu(v(\"hkcrse_spouse_education\"));sla=spouseLang(sl.clb);sw=spouseWork(v(\"hkcrse_spouse_canadian_work\"));sp=se+sla+sw}\n let et=eduTrans(v(\"hkcrse_education\"),v(\"hkcrse_canadian_work\"),o.first),ft=foreignTrans(v(\"hkcrse_foreign_work\"),v(\"hkcrse_canadian_work\"),o.first),ct=certTrans(v(\"hkcrse_certificate\"),o.first),tr=Math.min(100,et+ft+ct);\n let sib=v(\"hkcrse_sibling\")===\"yes\"?15:0,ced=v(\"hkcrse_canadian_education\")===\"one_two\"?15:v(\"hkcrse_canadian_education\")===\"three_plus\"?30:0,pnp=v(\"hkcrse_pnp\")===\"yes\"?600:0,frp=frExtra(fr.clb,en.clb,en.test),raw=sib+ced+pnp+frp,add=Math.min(600,raw),total=core+sp+tr+add;\n let d={core:[{label:\"Age\",points:a},{label:\"Education\",points:e},{label:\"First official language\",points:l1},{label:\"Second official language\",points:l2},{label:lmi.selected===\"job_offer\"?\"Labour Market Integration: qualifying job offer\":\"Labour Market Integration: Canadian experience + high-wage bonus\",points:lmi.points}],spouse:[{label:\"Spouse\u2019s education\",points:se},{label:\"Spouse\u2019s language\",points:sla},{label:\"Spouse\u2019s Canadian work experience\",points:sw}],transferability:[{label:\"Education combined with language or Canadian experience\",points:et},{label:\"Foreign work combined with language or Canadian experience\",points:ft},{label:\"Certificate of Qualification\",points:ct}],additional:[{label:\"Eligible sibling in Canada\",points:sib},{label:\"Canadian education\",points:ced},{label:\"French\",points:frp},{label:\"Provincial or territorial nomination\",points:pnp}],additional_raw:raw,additional_applied:add,labour_market_integration:lmi};\n pending={\n  rulesEffective:\"2026-11-03\",labourMarketIntegration:lmi,highWageWork:v(\"hkcrse_high_wage_work\"),highWageWorkDisplay:selectedText(\"hkcrse_high_wage_work\"),jobOffer:v(\"hkcrse_job_offer\"),jobOfferNoc:normalizeNoc(v(\"hkcrse_job_offer_noc\")),jobOfferBand:v(\"hkcrse_job_offer\")===\"yes\"?nocBand(v(\"hkcrse_job_offer_noc\")):\"none\",\n  total,core,humanCapital:a+e+l1+l2,spouse:sp,transfer:tr,additional:add,additionalRaw:raw,pointsDetail:d,en,fr,spouseLang:sl,selectedFirst:o.name,\n  marital:v(\"hkcrse_marital\"),maritalDisplay:selectedText(\"hkcrse_marital\"),\n  spouseMode:spouseMode(),spousePr:v(\"hkcrse_spouse_pr\"),spouseComing:v(\"hkcrse_spouse_coming\"),\n  age:v(\"hkcrse_age\"),ageDisplay:selectedText(\"hkcrse_age\"),\n  education:v(\"hkcrse_education\"),educationDisplay:selectedText(\"hkcrse_education\"),\n  hasCanadianEducation:v(\"hkcrse_has_canadian_education\"),\n  canadianEducation:v(\"hkcrse_canadian_education\"),canadianEducationDisplay:selectedText(\"hkcrse_canadian_education\"),\n  canadianWork:v(\"hkcrse_canadian_work\"),canadianWorkDisplay:selectedText(\"hkcrse_canadian_work\"),\n  foreignWork:v(\"hkcrse_foreign_work\"),foreignWorkDisplay:selectedText(\"hkcrse_foreign_work\"),\n  certificate:v(\"hkcrse_certificate\"),certificateDisplay:selectedText(\"hkcrse_certificate\"),\n  sibling:v(\"hkcrse_sibling\"),siblingDisplay:selectedText(\"hkcrse_sibling\"),\n  pnp:v(\"hkcrse_pnp\"),pnpDisplay:selectedText(\"hkcrse_pnp\"),\n  firstLanguagePreference:v(\"hkcrse_first_language\"),\n  spouseEducation:v(\"hkcrse_spouse_education\"),spouseEducationDisplay:selectedText(\"hkcrse_spouse_education\"),\n  spouseCanadianWork:v(\"hkcrse_spouse_canadian_work\"),spouseCanadianWorkDisplay:selectedText(\"hkcrse_spouse_canadian_work\")\n};\n $(\"hkcrse_total\").textContent=fd(total);\n renderScoreBreakdown(pending);renderImprovements(pending);refreshPoolRank(total);\n $(\"hkcrse_summary\").innerHTML=`<div class=\"summary-title\"><h3>Your score, explained<\/h3><p>Points are calculated from the answers entered in each section.<\/p><\/div><div class=\"detail-sections\">${section(\"Core \/ Human Capital + Labour Market Integration\",core,d.core)}${section(\"Spouse Factors\",sp,d.spouse)}${section(\"Skill Transferability\",tr,d.transferability)}${section(\"Additional Points\",add,d.additional)}<\/div><div class=\"note\">First official language used: <strong>${o.name}<\/strong><\/div><div class=\"note\">Under the rules effective November 3, 2026: Canadian experience ${fd(lmi.length)} + high-wage bonus ${fd(lmi.bonus)} = ${fd(lmi.experience)} points. Qualifying job offer: ${fd(lmi.offer)} points. Only the higher result (${fd(lmi.points)}) is included in Labour Market Integration. Other additional points are calculated separately.<\/div>`;\n completeProgress();$(\"hkcrse_output_shell\").style.display=\"block\";$(\"hkcrse_result\").style.display=\"block\";$(\"hkcrse_email_box\").style.display=\"block\";scrollElement($(\"hkcrse_output_shell\"))\n}\nfunction send(){\n clear(\"hkcrse_lead_error\");clear(\"hkcrse_lead_success\");if(!pending){err(\"hkcrse_lead_error\",\"Calculate your score first.\");return}\n let name=$(\"hkcrse_lead_name\").value.trim(),email=$(\"hkcrse_lead_email\").value.trim(),cons=$(\"hkcrse_result_consent\").checked,newsletter=$(\"hkcrse_newsletter_consent\").checked;\n if(!name){err(\"hkcrse_lead_error\",\"Enter your full name.\");return}\n if(!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email)){err(\"hkcrse_lead_error\",\"Enter a valid email address.\");return}\n if(!cons){err(\"hkcrse_lead_error\",\"Please consent to processing your result.\");return}\n let r=pending,payload={\n name,email,newsletter_consent:newsletter?\"yes\":\"no\",processing_consent:true,language:\"en-CA\",\n crs_rules_effective:r.rulesEffective,labour_market_integration:r.labourMarketIntegration,\n high_wage_work:r.highWageWork,high_wage_work_display:r.highWageWorkDisplay,\n job_offer:r.jobOffer,job_offer_noc:r.jobOfferNoc,job_offer_band:r.jobOfferBand,\n crs_total:r.total,crs_core:r.core,crs_spouse:r.spouse,crs_transferability:r.transfer,crs_additional:r.additional,crs_additional_raw:r.additionalRaw,\n points_detail:r.pointsDetail,\n first_language:r.selectedFirst,first_language_preference:r.firstLanguagePreference,\n english_test:r.en.test,english_display:r.en.display,english_clb:r.en.clb,\n french_test:r.fr.test,french_display:r.fr.display,french_clb:r.fr.clb,\n spouse_test:r.spouseLang?r.spouseLang.test:\"none\",spouse_display:r.spouseLang?r.spouseLang.display:[],spouse_clb:r.spouseLang?r.spouseLang.clb:[],\n marital:r.marital,marital_display:r.maritalDisplay,spouse_mode:r.spouseMode,spouse_pr:r.spousePr,spouse_coming:r.spouseComing,\n age:r.age,age_display:r.ageDisplay,\n education:r.education,education_display:r.educationDisplay,\n has_canadian_education:r.hasCanadianEducation,canadian_education:r.canadianEducation,canadian_education_display:r.canadianEducationDisplay,\n canadian_work:r.canadianWork,canadian_work_display:r.canadianWorkDisplay,\n foreign_work:r.foreignWork,foreign_work_display:r.foreignWorkDisplay,\n certificate:r.certificate,certificate_display:r.certificateDisplay,\n sibling:r.sibling,sibling_display:r.siblingDisplay,pnp:r.pnp,pnp_display:r.pnpDisplay,\n pool_rank:r.poolRank||null,score_breakdown:r.scoreBreakdown||[],improvement_suggestions:r.improvements||[],\n spouse_education:r.spouseEducation,spouse_education_display:r.spouseEducationDisplay,\n spouse_canadian_work:r.spouseCanadianWork,spouse_canadian_work_display:r.spouseCanadianWorkDisplay,\n page_url:location.href,user_agent:navigator.userAgent,submitted_at:new Date().toISOString()\n};\n $(\"hkcrse_send_email\").disabled=true;$(\"hkcrse_send_email\").textContent=\"Sending\u2026\";\n const token=window.turnstile&&turnstileWidget!==null?window.turnstile.getResponse(turnstileWidget):\"\";\n if(!token){err(\"hkcrse_lead_error\",\"Please complete the security check.\");$(\"hkcrse_send_email\").disabled=false;$(\"hkcrse_send_email\").textContent=\"Email my results\";return;}\n if(!requestId)requestId=window.crypto&&window.crypto.randomUUID?window.crypto.randomUUID():Date.now()+\"-\"+Math.random().toString(36).slice(2);\n payload.request_id=requestId;payload.turnstile_token=token;payload.website=$(\"hkcrse_website\").value;payload.elapsed_ms=Date.now()-startTime;\n const abort=new AbortController(),timeout=setTimeout(()=>abort.abort(),45000);\n async function postResult(url,allowFallback){\n const response=await fetch(url,{method:\"POST\",credentials:\"same-origin\",headers:{\"Content-Type\":\"application\/json\"},body:JSON.stringify(payload),signal:abort.signal});\n let data;try{data=await response.json()}catch(e){throw new Error(\"The WordPress connection returned an unexpected response. Please contact info@hesamkazemi.com.\")}\n \/\/ Retry only an unregistered route: no security check or email has been processed yet.\n if(data.code==='rest_no_route'&&allowFallback)return postResult(CONFIG.fallbackEndpoint,false);\n if(data.code==='rest_no_route')throw new Error(\"The result email service is temporarily unavailable. Please try again later or contact info@hesamkazemi.com.\");\n if(!response.ok||!data.ok)throw new Error(data.message||\"We could not confirm your request. Please try again.\");return data;\n }\n postResult(CONFIG.endpoint,true)\n .then(data=>{const b=$(\"hkcrse_lead_success\");b.textContent=\"Your CRS result has been sent to your email address. If you do not see it within a few minutes, please check your spam or junk folder.\";b.style.display=\"block\";})\n .catch(error=>err(\"hkcrse_lead_error\",error.name===\"AbortError\"?\"Confirmation timed out. You can retry this same request without creating a duplicate.\":error.message))\n .finally(()=>{clearTimeout(timeout);if(window.turnstile&&turnstileWidget!==null)window.turnstile.reset(turnstileWidget);$(\"hkcrse_send_email\").disabled=false;$(\"hkcrse_send_email\").textContent=\"Email my results\"});\n}\nroot.querySelectorAll(\".lang-test\").forEach(s=>{s.addEventListener(\"change\",()=>langBox(s));langBox(s)});\nroot.querySelectorAll(\".next\").forEach(b=>b.onclick=()=>{let c=+root.querySelector(\".step.active\").dataset.step,m=validate(c);if(m)err(\"hkcrse_form_error\",m);else showStep(+b.dataset.next)});\nroot.querySelectorAll(\".prev\").forEach(b=>b.onclick=()=>showStep(+b.dataset.prev));\n\/\/ Every visible step can be revisited. Forward jumps validate all preceding sections.\nroot.querySelectorAll('.progress-item').forEach(button=>button.addEventListener('click',()=>{\n const target=Number(button.dataset.progress);\n const current=Number(root.querySelector('.step.active').dataset.step);\n if(target===6&&spouseMode()!=='with')return;\n if(target>current){\n  for(let step=1;step<target;step++){\n   const message=validate(step);\n   if(message){showStep(step);err('hkcrse_form_error',message);scheduleFieldAlignment();return;}\n  }\n }\n err('hkcrse_form_error','');\n showStep(target);scheduleFieldAlignment();\n}));\n[\"hkcrse_marital\",\"hkcrse_spouse_pr\",\"hkcrse_spouse_coming\"].forEach(id=>$(id).addEventListener(\"change\",spouseUI));\n$(\"hkcrse_has_canadian_education\").addEventListener(\"change\",canEduUI);\n$(\"hkcrse_additional_next_or_calc\").onclick=()=>spouseMode()===\"with\"?showStep(6):calculate();\n$(\"hkcrse_calculate\").onclick=calculate;$(\"hkcrse_send_email\").onclick=send;\n$(\"hkcrse_reset\").onclick=()=>location.reload();\n$(\"hkcrse_canadian_work\").addEventListener(\"change\",highWageUI);\n$(\"hkcrse_high_wage_work\").addEventListener(\"change\",()=>{$(\"hkcrse_work_noc_hint\").textContent=\"\";$(\"hkcrse_work_noc_hint\").classList.add(\"hidden\")});\n$(\"hkcrse_job_offer\").addEventListener(\"change\",jobOfferUI);\n$(\"hkcrse_job_offer_noc\").addEventListener(\"input\",jobOfferUI);\n\nfunction scrollBehavior(){return window.matchMedia('(prefers-reduced-motion: reduce)').matches?'auto':'smooth';}\nfunction headerOffsetPx(){const h=document.querySelector('.l-header');if(!h)return 20;const r=h.getBoundingClientRect();return r.bottom>0&&r.top<=0?r.bottom+20:20;}\nfunction scrollElement(el){window.scrollTo({top:Math.max(0,el.getBoundingClientRect().top+window.scrollY-headerOffsetPx()),behavior:scrollBehavior()});}\nfunction initSecurity(){if(!window.turnstile)return;const box=$(\"hkcrse_turnstile\");if(box&&turnstileWidget===null)turnstileWidget=window.turnstile.render(box,{sitekey:CONFIG.turnstileSiteKey,action:'crs-result',theme:'light'});}\nif(window.turnstile)initSecurity();else{const script=document.createElement('script');script.src='https:\/\/challenges.cloudflare.com\/turnstile\/v0\/api.js?render=explicit';script.async=true;script.defer=true;script.onload=initSecurity;script.onerror=()=>err('hkcrse_lead_error','The security check could not load. Refresh this page before emailing your result.');document.head.appendChild(script);}\nroot.addEventListener('change',event=>{if(event.target.matches('.step select,.step input')){pending=null;requestId=null;$(\"hkcrse_output_shell\").style.display='none';}});\nconst effective=document.getElementById('hk-crs-effective');if(effective&&new Date()>=new Date('2026-11-03T00:00:00-05:00'))effective.textContent='Rules effective November 3, 2026';\n\/\/ Accessible labels for language-score selects.\nroot.querySelectorAll('.skill-field select').forEach(el=>{const text=el.closest('.skill-field').querySelector('strong');if(text)el.setAttribute('aria-label',text.textContent);});\n\nspouseUI();\ncanEduUI();\nhighWageUI();\njobOfferUI();\nshowStep(1,false);\nloadPoolData();\n\n\/\/ Share each visible grid row's natural label height so all controls start together.\nlet fieldAlignmentFrame=0;\nfunction scheduleFieldAlignment(){\n if(fieldAlignmentFrame)return;\n fieldAlignmentFrame=window.requestAnimationFrame(function(){fieldAlignmentFrame=0;alignQuestionRows();});\n}\nfunction alignQuestionRows(){\n root.querySelectorAll('.grid').forEach(function(grid){\n  const fields=Array.from(grid.children).filter(el=>el.classList.contains('field')&&!el.classList.contains('hidden'));\n  fields.forEach(function(field,index){\n   field.style.removeProperty('--crs-label-height');\n   field.classList.remove('tone-left','tone-right');\n   field.classList.add(index%2===0?'tone-left':'tone-right');\n  });\n  const rows=[];\n  fields.forEach(field=>{\n   const label=field.querySelector(':scope > label');\n   if(!label||!field.getClientRects().length)return;\n   const top=field.getBoundingClientRect().top;\n   let row=rows.find(row=>Math.abs(row.top-top)<3);\n   if(!row){row={top:top,items:[]};rows.push(row);}\n   row.items.push({field:field,height:label.getBoundingClientRect().height});\n  });\n  rows.forEach(row=>{\n   if(row.items.length<2)return;\n   const height=Math.ceil(Math.max(...row.items.map(item=>item.height)));\n   row.items.forEach(item=>item.field.style.setProperty('--crs-label-height',height+'px'));\n  });\n });\n}\nroot.addEventListener('change',scheduleFieldAlignment);\nroot.addEventListener('input',scheduleFieldAlignment);\nroot.querySelectorAll('.next,.prev,#hkcrse_additional_next_or_calc').forEach(button=>button.addEventListener('click',scheduleFieldAlignment));\nwindow.addEventListener('resize',scheduleFieldAlignment,{passive:true});\nif(window.ResizeObserver){let previousWidth=-1;const fieldObserver=new ResizeObserver(entries=>{const width=entries[0].contentRect.width;if(Math.abs(width-previousWidth)>1){previousWidth=width;scheduleFieldAlignment();}});fieldObserver.observe(root);}\nif(document.fonts&&document.fonts.ready)document.fonts.ready.then(scheduleFieldAlignment);\nscheduleFieldAlignment();\n\n\n\n})();\n<\/script>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"HomeImmigrate to CanadaExpress EntryCRS Calculator Hesam Kazemi Immigration Inc.Your CRS score.A clearer starting point.Understand how your age, education, language skills and experience contribute to Express Entry ranking. Calculate an estimate, explore the breakdown, and keep a copy by email.Six guided stepsNo email needed to view resultsPreview \u00b7 rules effective November 3, 2026 EXPRESS ENTRY SCORE...","protected":false},"author":11,"featured_media":15533,"parent":15523,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","footnotes":""},"class_list":["post-15595","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v23.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CRS Calculator | Calculate Your Express Entry Score<\/title>\n<meta name=\"description\" content=\"Estimate your Express Entry CRS score based on age, education, language skills and work experience. View your points breakdown and email your results.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CRS Calculator | Calculate Your Express Entry Score\" \/>\n<meta property=\"og:description\" content=\"Estimate your Express Entry CRS score based on age, education, language skills and work experience. View your points breakdown and email your results.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0633\u0627\u0632\u0645\u0627\u0646 \u0645\u0647\u0627\u062c\u0631\u062a\u06cc \u062d\u0633\u0627\u0645 \u06a9\u0627\u0638\u0645\u06cc | Hesam Kazemi Immigration Inc\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-01T17:59:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/canada-express-entry-immigration-pathway-1024x576.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@HesamR707216\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/\",\"url\":\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/\",\"name\":\"CRS Calculator | Calculate Your Express Entry Score\",\"isPartOf\":{\"@id\":\"https:\/\/hesamkazemi.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/canada-express-entry-immigration-pathway.png\",\"datePublished\":\"2026-10-29T16:22:29+00:00\",\"dateModified\":\"2026-11-01T17:59:34+00:00\",\"description\":\"Estimate your Express Entry CRS score based on age, education, language skills and work experience. View your points breakdown and email your results.\",\"breadcrumb\":{\"@id\":\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/#primaryimage\",\"url\":\"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/canada-express-entry-immigration-pathway.png\",\"contentUrl\":\"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/canada-express-entry-immigration-pathway.png\",\"width\":1672,\"height\":941,\"caption\":\"Pathway toward the Toronto skyline representing Express Entry immigration to Canada\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/hesamkazemi.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Immigrate to Canada\",\"item\":\"https:\/\/hesamkazemi.com\/en\/immigrate\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Express Entry\",\"item\":\"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"CRS Calculator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/hesamkazemi.com\/#website\",\"url\":\"https:\/\/hesamkazemi.com\/\",\"name\":\"Hesam Kazemi Immigration Inc.\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/hesamkazemi.com\/#organization\"},\"alternateName\":\"Hesam Kazemi Immigration\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/hesamkazemi.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/hesamkazemi.com\/#organization\",\"name\":\"Hesam Kazemi Immigration Inc.\",\"alternateName\":\"\u0633\u0627\u0632\u0645\u0627\u0646 \u0645\u0647\u0627\u062c\u0631\u062a\u06cc \u062d\u0633\u0627\u0645 \u06a9\u0627\u0638\u0645\u06cc\",\"url\":\"https:\/\/hesamkazemi.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\/\/hesamkazemi.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/Untitled-200-x-200-px.png\",\"contentUrl\":\"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/Untitled-200-x-200-px.png\",\"width\":625,\"height\":625,\"caption\":\"Hesam Kazemi Immigration Inc.\"},\"image\":{\"@id\":\"https:\/\/hesamkazemi.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/HesamR707216\",\"https:\/\/www.linkedin.com\/company\/hesam-kazemi-immigration-inc\/\",\"https:\/\/www.youtube.com\/channel\/UCS0JDWzTj6x027HYvj2bH2A\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"CRS Calculator | Calculate Your Express Entry Score","description":"Estimate your Express Entry CRS score based on age, education, language skills and work experience. View your points breakdown and email your results.","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:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/","og_locale":"en_US","og_type":"article","og_title":"CRS Calculator | Calculate Your Express Entry Score","og_description":"Estimate your Express Entry CRS score based on age, education, language skills and work experience. View your points breakdown and email your results.","og_url":"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/","og_site_name":"\u0633\u0627\u0632\u0645\u0627\u0646 \u0645\u0647\u0627\u062c\u0631\u062a\u06cc \u062d\u0633\u0627\u0645 \u06a9\u0627\u0638\u0645\u06cc | Hesam Kazemi Immigration Inc","article_modified_time":"2026-11-01T17:59:34+00:00","og_image":[{"width":1024,"height":576,"url":"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/canada-express-entry-immigration-pathway-1024x576.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@HesamR707216","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/","url":"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/","name":"CRS Calculator | Calculate Your Express Entry Score","isPartOf":{"@id":"https:\/\/hesamkazemi.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/#primaryimage"},"image":{"@id":"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/#primaryimage"},"thumbnailUrl":"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/canada-express-entry-immigration-pathway.png","datePublished":"2026-10-29T16:22:29+00:00","dateModified":"2026-11-01T17:59:34+00:00","description":"Estimate your Express Entry CRS score based on age, education, language skills and work experience. View your points breakdown and email your results.","breadcrumb":{"@id":"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/"]}]},{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/#primaryimage","url":"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/canada-express-entry-immigration-pathway.png","contentUrl":"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/canada-express-entry-immigration-pathway.png","width":1672,"height":941,"caption":"Pathway toward the Toronto skyline representing Express Entry immigration to Canada"},{"@type":"BreadcrumbList","@id":"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/crs-calculator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hesamkazemi.com\/en\/"},{"@type":"ListItem","position":2,"name":"Immigrate to Canada","item":"https:\/\/hesamkazemi.com\/en\/immigrate\/"},{"@type":"ListItem","position":3,"name":"Express Entry","item":"https:\/\/hesamkazemi.com\/en\/immigrate\/express-entry\/"},{"@type":"ListItem","position":4,"name":"CRS Calculator"}]},{"@type":"WebSite","@id":"https:\/\/hesamkazemi.com\/#website","url":"https:\/\/hesamkazemi.com\/","name":"Hesam Kazemi Immigration Inc.","description":"","publisher":{"@id":"https:\/\/hesamkazemi.com\/#organization"},"alternateName":"Hesam Kazemi Immigration","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hesamkazemi.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-CA"},{"@type":"Organization","@id":"https:\/\/hesamkazemi.com\/#organization","name":"Hesam Kazemi Immigration Inc.","alternateName":"\u0633\u0627\u0632\u0645\u0627\u0646 \u0645\u0647\u0627\u062c\u0631\u062a\u06cc \u062d\u0633\u0627\u0645 \u06a9\u0627\u0638\u0645\u06cc","url":"https:\/\/hesamkazemi.com\/","logo":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/hesamkazemi.com\/#\/schema\/logo\/image\/","url":"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/Untitled-200-x-200-px.png","contentUrl":"https:\/\/hesamkazemi.com\/wp-content\/uploads\/2026\/10\/Untitled-200-x-200-px.png","width":625,"height":625,"caption":"Hesam Kazemi Immigration Inc."},"image":{"@id":"https:\/\/hesamkazemi.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/HesamR707216","https:\/\/www.linkedin.com\/company\/hesam-kazemi-immigration-inc\/","https:\/\/www.youtube.com\/channel\/UCS0JDWzTj6x027HYvj2bH2A"]}]}},"_links":{"self":[{"href":"https:\/\/hesamkazemi.com\/en\/wp-json\/wp\/v2\/pages\/15595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hesamkazemi.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hesamkazemi.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hesamkazemi.com\/en\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/hesamkazemi.com\/en\/wp-json\/wp\/v2\/comments?post=15595"}],"version-history":[{"count":13,"href":"https:\/\/hesamkazemi.com\/en\/wp-json\/wp\/v2\/pages\/15595\/revisions"}],"predecessor-version":[{"id":15653,"href":"https:\/\/hesamkazemi.com\/en\/wp-json\/wp\/v2\/pages\/15595\/revisions\/15653"}],"up":[{"embeddable":true,"href":"https:\/\/hesamkazemi.com\/en\/wp-json\/wp\/v2\/pages\/15523"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hesamkazemi.com\/en\/wp-json\/wp\/v2\/media\/15533"}],"wp:attachment":[{"href":"https:\/\/hesamkazemi.com\/en\/wp-json\/wp\/v2\/media?parent=15595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}