MONALEESA-2: Ribociclib Extends Survival by 12.5 Months

Theme


MONALEESA-2 Phase 3 Results

Source
Source: Hortobagyi GN, Stemmer SM, Burris HA, et al. Overall Survival with Ribociclib plus Letrozole in Advanced Breast Cancer. N Engl J Med. 2022;386:942-50. This document reports the final overall survival analysis of the MONALEESA-2 trial.

First-Line Ribociclib + Letrozole in HR+/HER2- Advanced Breast Cancer
Hortobagyi et al., NEJM (2022) • Median Follow-up: 6.6 Years

Median OS Gain
+12.5 Months

Ribociclib arm: 63.9 mo vs. 51.4 mo (Placebo).

Relative Risk Reduction
24%
HR: 0.76 (95% CI, 0.63–0.93; P=0.008)
N=668 Patients
Postmenopausal, HR+/HER2-
Intervention
Ribociclib (600mg) + Letrozole
Longest Follow-up
Median 80 Months (6.6 Yrs)

Median Overall Survival

First time median OS > 5 years reported in this setting.

6-Year Survival Rate

Group Survival %
Ribociclib + Let. 44.2%
Placebo + Let. 32.0%

Safety Profile

No new safety signals observed despite longer treatment exposure (20.2 vs 14.1 months).

Clinical Recommendation

Adopt Ribociclib plus Letrozole as a preferred first-line standard of care. The data demonstrates a statistically significant OS benefit of >1 year, validating this combination to maximize longevity before disease progression.

AbbreviationsQuick
CDK4/6, cyclin-dependent kinases 4 and 6; CI, confidence interval; ECOG, Eastern Cooperative Oncology Group; ER, estrogen receptor; HER2, human epidermal growth factor receptor 2; HR, hormone receptor; NE, could not be estimated; PgR, progesterone receptor.
Bibliography8
  1. Hortobagyi GN, Stemmer SM, Burris HA, et al. Overall Survival with Ribociclib plus Letrozole in Advanced Breast Cancer. N Engl J Med. 2022;386:942-50. (DOI: 10.1056/NEJMoa2114663)
  2. Hortobagyi GN, Stemmer SM, Burris HA, et al. Ribociclib as first-line therapy for HR-positive, advanced breast cancer. N Engl J Med 2016;375:1738-48.
  3. Im S-A, Lu Y-S, Bardia A, et al. Overall survival with ribociclib plus endocrine therapy in breast cancer. N Engl J Med 2019; 381: 307-16.
  4. Slamon DJ, Neven P, Chia S, et al. Overall survival with ribociclib plus fulvestrant in advanced breast cancer. N Engl J Med 2020; 382: 514-24.
  5. Turner NC, Slamon DJ, Ro J, et al. Overall survival with palbociclib and fulvestrant in advanced breast cancer. N Engl J Med 2018; 379:1926-36.
  6. Goetz MP, Toi M, Campone M, et al. MONARCH 3: abemaciclib as initial therapy for advanced breast cancer. J Clin Oncol 2017;35:3638-46.
  7. Cristofanilli M, Turner NC, Bondarenko I, et al. Fulvestrant plus palbociclib versus fulvestrant plus placebo for treatment of hormone-receptor-positive, HER2-negative metastatic breast cancer that progressed on previous endocrine therapy (PALOMA-3): final analysis of the multicentre, double-blind, phase 3 randomised controlled trial. Lancet Oncol 2016; 17:425-39.
  8. Başaran GA, Twelves C, Diéras V, Cortés J, Awada A. Ongoing unmet needs in treating estrogen receptor-positive/HER2-negative metastatic breast cancer. Cancer Treat Rev 2018; 63:144-55.
- Any id attributes you add MUST be unique on the page. Prefix all ids with "${prefix}". - Never add class "mdwrt-item" to nested elements inside the root (root may already have it).`; const instruction = elementRules + " User instruction: " + normalizeAIInstruction(instructionRaw); // ✅ wrapper-first + capped context const current_data = getAIContextForUpdate(600 * 1024); return { target_id: stableTargetId, // ✅ NOT "context_edit" file_path: FILE_NAME, current_data, element_html: getSanitizedOuterHTML(targetEl), instruction, image: imageData || null }; } function applyAIUpdateToElement(targetEl, aiHtml, targetId, aiKey){ const newNode = parseSingleRootForTarget(String(aiHtml || "").trim(), targetEl); if (!newNode || !newNode.tagName) throw new Error("AI returned invalid HTML."); const oldTag = (targetEl.tagName || "").toLowerCase(); const newTag = (newNode.tagName || "").toLowerCase(); if (oldTag && newTag && oldTag !== newTag) { throw new Error(`AI returned <${newTag}> instead of <${oldTag}>.`); } // sanitize + enforce ids sanitizeAIElement(newNode); ensureIdsPrefixedAndUnique(newNode, `${targetId}__`); // preserve identity if (targetEl.dataset?.itemId) newNode.dataset.itemId = targetEl.dataset.itemId; if (targetEl.dataset?.zoneId) newNode.dataset.zoneId = targetEl.dataset.zoneId; if (aiKey) newNode.dataset.aiKey = aiKey; targetEl.replaceWith(newNode); return newNode; } function shrinkPayloadIfNeeded(payload, maxBytes = 950 * 1024){ // Try to keep JSON under ~1MB to avoid nginx/proxy limits let body = JSON.stringify(payload); let bytes = utf8Bytes(body); if (bytes <= maxBytes) return payload; // 1) reduce context first payload.current_data = truncateUtf8(payload.current_data, 250 * 1024); body = JSON.stringify(payload); bytes = utf8Bytes(body); if (bytes <= maxBytes) return payload; // 2) reduce instruction payload.instruction = truncateUtf8(payload.instruction, 220 * 1024); body = JSON.stringify(payload); bytes = utf8Bytes(body); if (bytes <= maxBytes) return payload; // 3) last resort: drop context completely (still works for many edits) payload.current_data = ""; return payload; } function waitFor(checkFn, timeoutMs = 10000, stepMs = 25) { return new Promise((resolve, reject) => { const t0 = Date.now(); (function tick(){ try { if (checkFn()) return resolve(true); } catch(e) {} if (Date.now() - t0 > timeoutMs) return reject(new Error('timeout')); setTimeout(tick, stepMs); })(); }); } // ----------------------------- // Export PDF / Print (CONTAINER ONLY) // ----------------------------- function cloneContainerForExport(){ const src = document.getElementById("infographic-container") || document.querySelector(".container"); if(!src) return null; const clone = src.cloneNode(true); clone.querySelectorAll(".editor-controls, .resize-handle, .resize-handle-tl, .container-bar, .container-resize-handle").forEach(n => n.remove()); clone.querySelectorAll(".editor-block").forEach(n => { n.classList.remove("editor-hover","editor-selected"); n.classList.remove("ai-working"); }); clone.querySelectorAll(".drop-spacer").forEach(n => n.remove()); return clone; } function setMenuButtonsForMode(mode){ // editor-only const idsEditorOnly = ["m-edit","m-edit-chart","m-block","m-reset","m-undo","m-redo"]; // always ok const idsAlways = ["m-copy","m-parent"]; if(mode === "view"){ idsEditorOnly.forEach(id => { const b = menu.querySelector("#"+id); if(b) b.style.display = "none"; }); idsAlways.forEach(id => { const b = menu.querySelector("#"+id); if(b) b.style.display = "block"; }); // title hint const t = menu.querySelector("#menu-title"); if(t) t.style.background = "#f8f9fa"; return; } // mode === "editor" idsEditorOnly.forEach(id => { const b = menu.querySelector("#"+id); if(b) b.style.display = "block"; }); idsAlways.forEach(id => { const b = menu.querySelector("#"+id); if(b) b.style.display = "block"; }); } async function exportContainerAsPDF(){ const container = document.getElementById("infographic-container") || document.querySelector(".container"); if(!container) throw new Error("Container not found"); const hover = document.getElementById("hover-box"); const menu = document.getElementById("smart-menu"); const modal = document.getElementById("ai-edit-modal"); if(hover) hover.style.display = "none"; if(menu) menu.style.display = "none"; if(modal) modal.style.display = "none"; const clone = cloneContainerForExport(); if(!clone) throw new Error("Clone failed"); const wrap = document.createElement("div"); wrap.style.cssText = "position:fixed; left:-10000px; top:0; width:1000px;"; wrap.appendChild(clone); document.body.appendChild(wrap); try{ const bg = getComputedStyle(document.documentElement).getPropertyValue("--bg-color").trim() || "#ffffff"; const canvas = await html2canvas(clone, { scale: 2, useCORS: true, backgroundColor: bg, logging: false, windowWidth: clone.scrollWidth, windowHeight: clone.scrollHeight }); const { jsPDF } = (window.jspdf || {}); if(!jsPDF) throw new Error("jsPDF not loaded"); const pdf = new jsPDF("p","pt","a4"); const pageW = pdf.internal.pageSize.getWidth(); const pageH = pdf.internal.pageSize.getHeight(); const imgW = canvas.width; const imgH = canvas.height; const scale = Math.min(pageW / imgW, pageH / imgH); const renderW = imgW * scale; let y = 0; const sliceH = Math.floor(pageH / scale); while (y < imgH) { const sliceCanvas = document.createElement("canvas"); sliceCanvas.width = imgW; sliceCanvas.height = Math.min(sliceH, imgH - y); const ctx = sliceCanvas.getContext("2d"); ctx.drawImage(canvas, 0, y, imgW, sliceCanvas.height, 0, 0, imgW, sliceCanvas.height); const sliceData = sliceCanvas.toDataURL("image/png"); const sliceRenderH = sliceCanvas.height * scale; if (y > 0) pdf.addPage(); pdf.addImage(sliceData, "PNG", 0, 0, renderW, sliceRenderH); y += sliceH; } const safeName = (BASE_TITLE || "infographic").toString().replace(/[^a-z0-9\-_]+/gi, "_").slice(0,60); pdf.save(safeName + ".pdf"); } finally { wrap.remove(); } } function printContainerOnly(){ const clone = cloneContainerForExport(); if(!clone) return alert("Print failed: container not found"); const w = window.open("", "_blank"); if(!w) return alert("Popup blocked. Allow popups to print."); const styleTags = Array.from(document.querySelectorAll("style")).map(s => s.outerHTML).join(` `); const linkTags = Array.from(document.querySelectorAll("link[rel='stylesheet'],link[href*='fonts']")).map(l => l.outerHTML).join(` `); const CLOSE_SCRIPT = ""; w.document.open(); w.document.write(` ${(BASE_TITLE||"Infographic").toString().replace(/</g,"<")} ${linkTags} ${styleTags} ${clone.outerHTML}
👀 View Mode