ADVERTISEMENT

'Project Hail Mary' flies to $54.5 million second weekend, horror reaches a saturation point

Published Mar 30, 2026 08:31 am  |  Updated Mar 30, 2026 01:26 pm

NEW YORK (AP) — “Project Hail Mary”stayed aloft in its second weekend, holding strongly with $54.5 million, according to studio estimates Sunday, and adding to the long-term prospects of the year’s biggest hit thus far.

The Phil Lord and Chris Miller sci-fi adventure, starring Ryan Gosling, dipped only 32% after notching the best non-franchise opening weekendsince 2023’s “Oppenheimer.” Amazon MGM’s yet, “Project Hail Mary” has grossed $300.8 million worldwide in two weeks.

“Project Hail Mary,” which cost nearly $200 million to produce, didn’t face any significant new competition and kept premium format screens largely to itself. Potentially the weekend’s most watched movie, the KPop documentary “BTS: The Return,” went straight to streaming on Netflix.

But “Project Hail Mary” is on an enviable trajectory. Its second weekend hold was even better than that of “Oppenheimer,” which collected $46.7 million in its follow-up frame.

Meanwhile, the weekend’s top new release, “They Will Kill You,”debuted with a disappointing $5 million for Warner Bros. The gory R-rated horror film stars Zazie Beetz as a woman who applies to be a maid at an apartment complex where she’s to become a sacrificial offering.

While the result was far from catastrophic for a movie with a modest $20 million budget, it did suggest that theaters may have become oversaturated in horror. David A. Gross, who runs the movie consulting firm FranchiseRe, noted that there has been a new horror film released every weekend for the last 14 weekends.

That included last week’s “Ready or Not 2: Here I Come” ($16.3 million domestically so far) and a second horror-comedy that also debuted this weekend. IFC’s “Forbidden Fruits,” about a coven of witches who work at a Texas mall, debuted with $1.2 million in sales.

Despite the glut, Gross is forecasting horror films will account for about $2.1 billion in North American ticket revenue in 2026, down from $2.75 million last year. While horror remains popular with audiences and relatively cheap to produce, the genre may be approaching overkill.

Meanwhile, family movies continue to thrive. The Pixar original “Hoppers”remained in second place with $12.2 million in its fourth weekend. The Walt Disney Co. release has accumulated $297.6 million globally.

Next weekend, though, it will face stiff competition in Universal Pictures’ “The Super Mario Galaxy Movie.” It’s expected to have the biggest opening of 2026.

With final domestic figures being released Monday, this list factors in the estimated ticket sales for Friday through Sunday at U.S. and Canadian theaters, according to Comscore:

1. “Project Hail Mary,” $54.5 million.

2. “Hoppers,” $12.2 million.

3. “They Will Kill You,” $5 million.

4. “Dhurandhar The Revenge,” $4.8 million.

5. “Reminders of Him,” $4.7 million.

6. “Ready or Not 2: Here I Come,” $4 million.

7. “Scream 7,” $2.6 million.

8. “GOAT,” $2.2 million.

9. “Undertone,” $1.7 million.

10. “Forbidden Fruits,” $1.2 million.

Related Tags

Project Hail Mary Ryan Gosling Top 10 movies
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.