CDR Australia Migration

Grattan Institute Reformed Points Proposal Calculator

Profile Details
+0
Skills & Education
+0
Work Experience & Income
+0
Partner Details
+0
`;// Spawn a hidden sandbox iframe to prevent parent page styling leakage const iframe = document.createElement('iframe'); iframe.style.position = 'fixed'; iframe.style.right = '0'; iframe.style.bottom = '0'; iframe.style.width = '0'; iframe.style.height = '0'; iframe.style.border = '0'; iframe.style.zIndex = '-9999'; iframe.style.opacity = '0'; document.body.appendChild(iframe);const doc = iframe.contentWindow.document; doc.open(); doc.write(frameContent); doc.close();// Allow printing processes to paint onto active frame before calling browser API setTimeout(() => { iframe.contentWindow.focus(); iframe.contentWindow.print(); // Safely remove the hidden frame DOM once printing completes setTimeout(() => { if (document.body.contains(iframe)) { document.body.removeChild(iframe); } }, 2000); }, 500); }// function downloadResultPDF() { // const report = buildReportHTML();// // Save active scroll coordinates to restore later // const currentScrollX = window.scrollX || window.pageXOffset; // const currentScrollY = window.scrollY || window.pageYOffset;// // Temporarily scroll to absolute origin (0, 0) to avoid any coordinate clipping // window.scrollTo(0, 0);// // Configure html2pdf options to generate a clean single-page assessment report // const opt = { // margin: 20, // filename: report.filename, // image: { type: 'jpeg', quality: 0.98 }, // html2canvas: { // scale: 2, // useCORS: true, // logging: false // }, // jsPDF: { unit: 'pt', format: 'letter', orientation: 'portrait' } // };// // Execute rendering process with UI loading indicator feedback // downloadBtn.disabled = true; // downloadBtnText.innerText = "Generating PDF...";// // Delay slightly to let the browser execute scroll and settle // setTimeout(() => { // html2pdf().from(report.html).set(opt).save().then(() => { // // Restore original scroll context safely // window.scrollTo(currentScrollX, currentScrollY); // downloadBtn.disabled = false; // downloadBtnText.innerText = "Download PDF"; // }).catch(err => { // // Error fallback - restore original scroll context safely // window.scrollTo(currentScrollX, currentScrollY); // console.error("Error rendering PDF report file: ", err); // downloadBtn.disabled = false; // downloadBtnText.innerText = "Download PDF"; // }); // }, 150); // }function downloadResultPDF() { const report = buildReportHTML();// 1. Generate an informational header tip to guide the user on viewing the text file const headerInstructions = "========================================================================\n" + "PRO TIP: Open this file in Notepad, TextEdit, or VS Code using a\n" + "MONOSPACED font (like Consolas, Courier, or Menlo) for perfect alignment.\n" + "========================================================================\n\n";// 2. Extract content (fallback to HTML if plain text isn't provided) let textContent = report.text || report.html;// 3. Process the text to structure Markdown tables into native tabular text layouts textContent = formatMarkdownTableToTabular(textContent);// 4. Strip out any remaining structural HTML tags (like

,

, etc.) textContent = textContent.replace(/<\/?[^>]+(>|$)/g, "");// 5. Combine the tip banner with the cleaned body content const finalPayload = headerInstructions + textContent;// 6. Safeguard the filename extension swap const filename = report.filename ? report.filename.replace(/\.pdf$/i, '.txt') : 'report.txt';// 7. Toggle UI loading states downloadBtn.disabled = true; downloadBtnText.innerText = "Generating TXT...";try { // 8. Bundle the string payload into a native browser file download blob const blob = new Blob([finalPayload], { type: 'text/plain;charset=utf-8;' }); const link = document.createElement("a"); const url = URL.createObjectURL(blob); link.setAttribute("href", url); link.setAttribute("download", filename); link.style.visibility = 'hidden'; document.body.appendChild(link); link.click(); // 9. Clean up layout nodes and clear memory handles instantly document.body.removeChild(link); URL.revokeObjectURL(url);} catch (err) { console.error("Error generating or downloading TXT file: ", err); } finally { // 10. Restore UI state instantly downloadBtn.disabled = false; downloadBtnText.innerText = "Download TXT"; } }/** * Helper function that parses Markdown table data grids from raw strings * and restructures them using clean tab-delimiters (\t) for text readers. */ function formatMarkdownTableToTabular(text) { const lines = text.split('\n'); let inTable = false; let tableRows = []; let processedText = [];function renderTabularTable(rows) { if (rows.length === 0) return ''; // Discard Markdown table dividers like |---|---| const cleanRows = rows.filter(row => !row.every(cell => cell.trim().match(/^[-:]+$/))); if (cleanRows.length === 0) return '';let output = []; cleanRows.forEach((row, rowIndex) => { // Scrub inner html formatting from cell elements const cleanCells = row.map(cell => cell.replace(/<\/?[^>]+(>|$)/g, "").trim()); // Connect dataset blocks cleanly via system tabs output.push(cleanCells.join('\t')); // Generate a clean underline divider underneath header cells if (rowIndex === 0) { const underline = cleanCells.map(cell => '='.repeat(Math.max(cell.length, 5))).join('\t'); output.push(underline); } }); return output.join('\n') + '\n'; }for (let i = 0; i < lines.length; i++) { const line = lines[i].trim(); // Detect Markdown layout tables starting and closing with pipes if (line.startsWith('|') && line.endsWith('|')) { inTable = true; const cells = line.split('|').slice(1, -1); tableRows.push(cells); } else { if (inTable) { processedText.push(renderTabularTable(tableRows)); tableRows = []; inTable = false; } processedText.push(lines[i]); } } // Catch hanging data streams ending abruptly at document footer boundaries if (inTable) { processedText.push(renderTabularTable(tableRows)); }return processedText.join('\n'); }// Partner logic toggle isSingleCheckbox.addEventListener('change', (e) => { if (e.target.checked) { partnerQuestions.style.opacity = '0.5'; partnerQuestions.style.pointerEvents = 'none'; partnerSelects.forEach(s => s.value = "0"); } else { partnerQuestions.style.opacity = '1'; partnerQuestions.style.pointerEvents = 'auto'; } calculateScore(); });if (resetBtn) { resetBtn.addEventListener('click', (e) => { e.preventDefault(); // Reset standard form fields form.reset(); // Restore Single/Partner container logic defaults partnerQuestions.style.opacity = '1'; partnerQuestions.style.pointerEvents = 'auto'; // Trigger a complete update of badges, breakdown parameters, and progress circle calculateScore(); }); }if (downloadBtn) { downloadBtn.addEventListener('click', (e) => { e.preventDefault(); downloadResultPDF(); }); }if (printBtn) { printBtn.addEventListener('click', (e) => { e.preventDefault(); printResult(); }); }// Initialize dropdowns FIRST populateOccupations();// Then apply event listeners const updatedSelects = form.querySelectorAll('select'); updatedSelects.forEach(select => { select.addEventListener('change', calculateScore); });// Init calculation on load calculateScore();})();
CDR Australia Migration - Planning Your Migration

Planning Your Australian Migration?

Calculate your points instantly under the current framework to see where you stand.

Try Current Australian PR Points Calculator →

Grattan Institute Reformed Points Proposal FAQ

What is the Grattan Institute's proposed points reform?

The Grattan Institute proposes shifting the Skilled Independent (Subclass 189) visa points system away from "points for credentials" (like regional study or community languages) and heavily weighting points toward high-salary job offers, younger applicants, and proficient English skills to maximize economic benefit.

Who would benefit most under the Grattan proposal?

Primary beneficiaries would be younger, highly skilled professionals who already hold well-paying job offers in Australia, as well as secondary applicants (spouses) with high level skills and English proficiency.

Will these proposed changes affect current applications?

No, this is currently a policy recommendation report by a think-tank, not legislated law. Any actual government changes would involve formal announcements and transitional arrangements for existing pipelines.

Scroll to Top