Close Menu
  • Home
  • Entertainment
  • Movies
  • TV Shows & Series
  • Hollywood
  • Celebrities
  • Netflix
  • Awards & Events

Subscribe to Updates

Get the latest creative news from FooBar about art, design and business.

What's Hot

All Five ‘Twilight’ Movies and ‘Dune: Part Two’ Are Now Streaming on Netflix UK

September 11, 2026

Toronto Film Festival Oscar analysis, Robert Pattinson, Kate O’Flynn

September 11, 2026

The Best Widow’s Bay Merch & Gifts

September 11, 2026
Facebook X (Twitter) Instagram
Subscribe
Thegossipnews
Facebook X (Twitter) Instagram YouTube
  • Home
  • Entertainment
  • Movies
  • TV Shows & Series
  • Hollywood
  • Celebrities
  • Netflix
  • Awards & Events
Thegossipnews
Home»Netflix»Netflix Top 10s: ’72 Hours’ Has Big 2026 Debut; ‘Elite Force’ Explodes and ‘I Will Find You’ Enters All-Time List
Netflix

Netflix Top 10s: ’72 Hours’ Has Big 2026 Debut; ‘Elite Force’ Explodes and ‘I Will Find You’ Enters All-Time List

Williams MBy Williams MJuly 28, 2026No Comments74 Mins Read
Facebook Twitter Pinterest LinkedIn Reddit WhatsApp Email
Share
Facebook Twitter Pinterest Reddit WhatsApp Email


Picture Credits: Netflix

Welcome back to our weekly deep dive into the global Netflix Top 10s, covering the week of July 20th to July 26th, 2026! This week’s charts are packed with major milestones, massive international debuts, and a few surprising stumbles. While Kevin Hart proves he is still a certified draw for the streamer with the stellar debut of his new comedy 72 Hours, the much-anticipated return of Ransom Canyon is showing some concerning viewership drops that could put its Season 3 renewal in jeopardy. Elsewhere, Harlan Coben’s I Will Find You has officially cemented its legacy by breaking into the all-time top 10 list, and international hits like France’s Elite Force and Brazil’s Elize: Shadows of a Woman are putting up massive numbers. Let’s break down what everyone was watching this past week.

Our top story this week was regarding the first-week numbers for Ransom Canyon season 2, which has suffered a pretty big drop if you take into account its shorter runtime. Whether this impacts the show’s season 3 chances remains to be seen, but it’s definitely not in comfortable renewal territory by our metrics. We’ve got a big deep dive into that here.

Let’s take a look at how this week’s top 10s in their respective categories compare: 

  • English TV: 34,400,000 views (Rank 147 of 162 weeks)
  • English Film: 71,600,000 (Rank 91 of 162 weeks)
  • Non-English TV: 45,800,000 (Rank 9 of 162 weeks)
  • Non-English Film: 58,100,000 (Rank 9 of 162 weeks)

Also, quick note: we’ve done some more upgrades to our top 10 search tool. Mostly visual to help read the numbers better. I’m already zipping round it a lot faster so hopefully you will too. 


1. 72 Hours Debuts Strong For Comedy

Kevin Hart has got the goods and delivered strong for Netflix with his new comedy 72 Hours. Despite reviews being less than stellar, it scooped up 22.1M views, which is very strong for a straight comedy. The main comps for this year are Little Brother, which did 14M in that opening 3-day window, and Joe’s College Road Trip, which did 12.5M. 

First up, let’s compare the movie against the debuts of the other 2026 new arrivals: 

(function () {
if (!window.wonWatermarkPlugin) {
window.wonWatermarkPlugin = {
id: ‘wonWatermark’,
afterDraw: function (chart) {
var ctx = chart.ctx;
var area = chart.chartArea;
if (!ctx || !area) return;
// Scale watermark to the chart’s current pixel width so it stays
// a subtle attribution on phones (20px on a 320px canvas would
// dominate) while still reading on a 1200px desktop chart.
var w = area.right – area.left;
var fontSize = Math.max(11, Math.min(20, Math.round(w * 0.045)));
var offset = Math.max(6, Math.round(w * 0.018));
ctx.save();
ctx.font=”700 ” + fontSize + ‘px -apple-system, BlinkMacSystemFont, “Segoe UI”, Arial, sans-serif’;
ctx.fillStyle=”rgba(0, 0, 0, 0.22)”;
ctx.textAlign = ‘right’;
ctx.textBaseline=”bottom”;
ctx.fillText(‘whats-on-netflix.com’, area.right – offset, area.bottom – Math.max(4, Math.round(offset * 0.6)));
ctx.restore();
}
};
}

// Shared compact-number helper. Returns e.g. “1.2B”, “45.6M”, “789K” when
// useCompact is true, otherwise the full `toLocaleString()` form. Used by
// every chart’s datalabels and axis ticks on mobile so wide numbers like
// “1,234,567,890” don’t crowd small viewports. Tooltips keep the full
// number for accuracy.
if (!window.wonCompactNumber) {
window.wonCompactNumber = function (value, useCompact) {
if (value === null || value === undefined || isNaN(value)) return ”;
var n = Number(value);
if (!useCompact) {
return n.toLocaleString();
}
try {
if (typeof Intl !== ‘undefined’ && Intl.NumberFormat) {
if (!window.wonCompactFormatter) {
window.wonCompactFormatter = new Intl.NumberFormat(‘en’, {
notation: ‘compact’,
maximumFractionDigits: 1
});
}
return window.wonCompactFormatter.format(n);
}
} catch (e) {}
// Manual fallback for browsers without Intl compact notation support.
var abs = Math.abs(n);
var divisor, suffix;
if (abs >= 1e9) { divisor = 1e9; suffix = ‘B’; }
else if (abs >= 1e6) { divisor = 1e6; suffix = ‘M’; }
else if (abs >= 1e3) { divisor = 1e3; suffix = ‘K’; }
else { return n.toLocaleString(); }
var scaled = n / divisor;
var formatted = scaled.toFixed(scaled >= 100 ? 0 : (scaled >= 10 ? 1 : 2));
return formatted.replace(/(\.\d*?)0+$/, ‘$1’).replace(/\.$/, ”) + suffix;
};
}

// Mirror the host theme’s body font onto Chart.js defaults so chart text
// (ticks, legend, tooltips, datalabels) matches the surrounding article.
// Chart.js is loaded with `defer`, so we wait for DOMContentLoaded before
// touching `Chart.defaults` — by that point Chart.js is guaranteed to be
// parsed but no chart in this file has instantiated yet (their init code
// also runs on DOMContentLoaded, and they’re registered after this block
// in HTML source order, so listener-registration order keeps us first).
if (window.wonChartFontDefaults) return;
window.wonChartFontDefaults = true;

function applyThemeChartFont() {
if (typeof Chart === ‘undefined’ || !Chart.defaults || !Chart.defaults.font) {
return false;
}
var bodyFont=””;
try {
bodyFont = getComputedStyle(document.body).fontFamily || ”;
} catch (e) {}
if (bodyFont) {
Chart.defaults.font.family = bodyFont;
}
return true;
}

if (document.readyState === ‘loading’) {
document.addEventListener(‘DOMContentLoaded’, applyThemeChartFont);
} else {
applyThemeChartFont();
}
})();

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Viewership Comparison – The Rip, War Machine, Apex, Thrash, Peaky Blinders: The Immortal Man and 10 more Netflix titles (1-week cumulative views)”,
“description”: “Cumulative weekly views for The Rip, War Machine, Apex, Thrash, Peaky Blinders: The Immortal Man and 10 more Netflix titles on Netflix over 1 weeks. The Rip leads the comparison with 41,600,000 cumulative views. Combined total: 332,900,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, viewership, streaming data, Netflix Top 10, weekly views, audience metrics, The Rip, War Machine, Apex, Thrash, Peaky Blinders: The Immortal Man, 72 HOURS, Office Romance, Voicemails for Isabelle”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Cumulative weekly views (Netflix Top 10)”,
“measurementTechnique”: “Aggregation of Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “1 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”The Rip”},
{“@type”:”CreativeWork”,”name”:”War Machine”},
{“@type”:”CreativeWork”,”name”:”Apex”},
{“@type”:”CreativeWork”,”name”:”Thrash”},
{“@type”:”CreativeWork”,”name”:”Peaky Blinders: The Immortal Man”},
{“@type”:”CreativeWork”,”name”:”72 HOURS”},
{“@type”:”CreativeWork”,”name”:”Office Romance”},
{“@type”:”CreativeWork”,”name”:”Voicemails for Isabelle”},
{“@type”:”CreativeWork”,”name”:”People We Meet on Vacation”},
{“@type”:”CreativeWork”,”name”:”Swapped”} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_bar_graph_6a691ee9064c2” }
}

Netflix Viewership Comparison – The Rip, War Machine, Apex, Thrash, Peaky Blinders: The Immortal Man and 10 more Netflix titles (1-week analysis)

Cumulative views over 1 weeks for 15 Netflix titles: The Rip, War Machine, Apex, Thrash, Peaky Blinders: The Immortal Man, 72 HOURS, Office Romance, Voicemails for Isabelle, People We Meet on Vacation, Swapped, Little Brother, Joe's College Road Trip, Ladies First, Remarkably Bright Creatures, Roommates. Combined total: 332,900,000 views.

Netflix cumulative views ranking for The Rip, War Machine, Apex, Thrash, Peaky Blinders: The Immortal Man and 10 more Netflix titles over 1 weeks.
Title Opening Week Views Rank
The Rip 41,600,000 1
War Machine 39,300,000 2
Apex 38,200,000 3
Thrash 37,700,000 4
Peaky Blinders: The Immortal Man 25,300,000 5
72 HOURS 22,100,000 6
Office Romance 20,900,000 7
Voicemails for Isabelle 17,500,000 8
People We Meet on Vacation 17,200,000 9
Swapped 15,500,000 10
Little Brother 14,000,000 11
Joe's College Road Trip 12,500,000 12
Ladies First 11,900,000 13
Remarkably Bright Creatures 10,400,000 14
Roommates 8,800,000 15

(function() {
var showLabels = true;
var titleHighlight = “72 HOURS”;
// Title rendered above the chart in place of the legend (1 week → “Opening Week”).
var chartTitle = “Opening Week Views”;

function loadScript(src, callback) {
var script = document.createElement(‘script’);
script.src = src;
script.onload = callback;
document.head.appendChild(script);
}

function createChart() {
var canvasEl = document.getElementById(‘netflix_bar_graph_6a691ee9064c2’);
var ctx = canvasEl.getContext(‘2d’);

// Detect mobile screen size
var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth 0) {
var perTitle = isSmallMobile ? 38 : (isMobile ? 44 : 50);
var basePad = isSmallMobile ? 80 : (isMobile ? 90 : 100);
var targetH = titleCount * perTitle + basePad;
canvasEl.height = targetH;
canvasEl.style.height = targetH + ‘px’;
}

var chartConfig = {
type: ‘bar’,
data: {
labels: [“The Rip”,”War Machine”,”Apex”,”Thrash”,”Peaky Blinders: The Immortal Man”,”72 HOURS”,”Office Romance”,”Voicemails for Isabelle”,”People We Meet on Vacation”,”Swapped”,”Little Brother”,”Joe’s College Road Trip”,”Ladies First”,”Remarkably Bright Creatures”,”Roommates”],
datasets: [{
label: chartTitle,
data: [41600000,39300000,38200000,37700000,25300000,22100000,20900000,17500000,17200000,15500000,14000000,12500000,11900000,10400000,8800000],
backgroundColor: [“#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderColor: [“#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderWidth: 0,
hoverBackgroundColor: [“#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#1a1a1a”,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″],
hoverBorderColor: ‘#b9090b’,
hoverBorderWidth: 2,
barPercentage: 0.9,
categoryPercentage: 0.9
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
indexAxis: ‘y’,
layout: {
padding: { bottom: isMobile ? 12 : 24, top: 8 }
},
plugins: {
title: {
display: true,
text: chartTitle,
color: ‘#000000’,
align: ‘start’,
font: {
size: titleFontSize,
weight: ‘bold’
},
padding: { top: 4, bottom: 16 }
},
legend: { display: false },
tooltip: {
backgroundColor: ‘#221f1f’,
titleColor: ‘#b9090b’,
bodyColor: ‘#ffffff’,
titleFont: { weight: ‘bold’, size: 13 },
bodyFont: { size: 13 },
padding: { top: 10, bottom: 10, left: 14, right: 14 },
cornerRadius: 6,
displayColors: false,
borderColor: ‘#b9090b’,
borderWidth: 1,
callbacks: {
label: function(context) {
return context.dataset.label + ‘: ‘ + context.parsed.x.toLocaleString();
}
}
}
},
scales: {
x: {
beginAtZero: true,
ticks: {
font: {
size: axisFontSize
},
// Compact “1.2M” / “789K” ticks on mobile so the
// x-axis doesn’t eat half the chart width.
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
}
},
y: {
ticks: {
// Bold + brand-red color for the highlighted title’s y-axis tick;
// muted gray for everything else when a highlight is active.
font: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return { weight: ‘bold’, size: axisFontSize };
}
return { size: axisFontSize };
},
color: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return ‘#b9090b’;
}
return ‘#000000’;
}
}
}
},
}
};

// Add DataLabels configuration if labels are enabled
if (showLabels && window.ChartDataLabels) {
// Small bars (< 15% of max) get their label floated *above* the bar
// tip in Netflix red, so it never overlaps the red bar and never
// becomes black-on-red. A white text stroke keeps the label
// readable even when the chart sits on a coloured/image background.
var isSmallBar = function(context) {
var value = context.dataset.data[context.dataIndex];
if (typeof value === 'undefined' || value === null) return false;
var maxValue = Math.max.apply(null, context.dataset.data.filter(function(v) {
return v !== null && v !== undefined;
}));
if (!maxValue) return false;
return (value / maxValue) * 100 < 15;
};

chartConfig.options.plugins.datalabels = {
anchor: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
align: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
offset: function(context) {
return isSmallBar(context) ? 4 : 0;
},
color: function(context) {
return isSmallBar(context) ? '#b9090b' : '#fff';
},
textStrokeColor: function(context) {
return isSmallBar(context) ? '#ffffff' : 'rgba(0,0,0,0.35)';
},
textStrokeWidth: 2,
clip: false,
clamp: true,
font: {
weight: 'bold',
size: dataLabelFontSize
},
formatter: function(value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, true);
}
return value;
},
display: function(context) {
var value = context.dataset.data[context.dataIndex];
return typeof value !== 'undefined' && value !== null;
}
};
chartConfig.plugins = [ChartDataLabels];
}

// Always register the watermark plugin (independent of data labels).
chartConfig.plugins = (chartConfig.plugins || []).concat(
window.wonWatermarkPlugin ? [window.wonWatermarkPlugin] : []
);

var chart = new Chart(ctx, chartConfig);
}

function ensureChartAndPlugin() {
if (!window.Chart) {
loadScript('https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0', function() {
createChart();
});
} else {
createChart();
}
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', ensureChartAndPlugin);
} else {
ensureChartAndPlugin();
}
})();

.sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}

.netflix-data-chart-container {
position: relative;
margin-bottom: 40px;
}

.netflix-data-chart-container table {
border-collapse: collapse;
width: 100%;
margin: 10px 0;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
font-weight: bold;
}

/* Dark mode support for netflix bar graph – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.netflix-data-chart-container canvas {
background-color: #ffffff;
}

.netflix-data-chart-container table {
background-color: #ffffff;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
background-color: #ffffff;
color: #333333;
border: 1px solid #ddd;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
color: #333333;
}
}

/* Additional dark mode support for better contrast – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container .sr-only {
color: #333333;
}
}

/* Mobile responsive font sizes */
@media (max-width: 768px) {
.netflix-data-chart-container canvas {
font-size: 12px !important;
}
}

@media (max-width: 480px) {
.netflix-data-chart-container canvas {
font-size: 10px !important;
}
}

Now let’s compare against Kevin Hart’s other library of titles, which there are a number of at this point:

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Viewership Comparison – Me Time, Lift and 72 HOURS (1-week cumulative views)”,
“description”: “Cumulative weekly views for Me Time, Lift and 72 HOURS on Netflix over 1 weeks. Me Time leads the comparison with 34,200,000 cumulative views. Combined total: 89,100,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, viewership, streaming data, Netflix Top 10, weekly views, audience metrics, Me Time, Lift, 72 HOURS”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Cumulative weekly views (Netflix Top 10)”,
“measurementTechnique”: “Aggregation of Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “1 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”Me Time”},
{“@type”:”CreativeWork”,”name”:”Lift”},
{“@type”:”CreativeWork”,”name”:”72 HOURS”} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_bar_graph_6a691ee9065a7” }
}

Netflix Viewership Comparison – Me Time, Lift and 72 HOURS (1-week analysis)

Cumulative views over 1 weeks for 3 Netflix titles: Me Time, Lift, 72 HOURS. Combined total: 89,100,000 views.

Netflix cumulative views ranking for Me Time, Lift and 72 HOURS over 1 weeks.
Title Opening Week Views Rank
Me Time 34,200,000 1
Lift 32,800,000 2
72 HOURS 22,100,000 3

(function() {
var showLabels = true;
var titleHighlight = “72 HOURS”;
// Title rendered above the chart in place of the legend (1 week → “Opening Week”).
var chartTitle = “Opening Week Views”;

function loadScript(src, callback) {
var script = document.createElement(‘script’);
script.src = src;
script.onload = callback;
document.head.appendChild(script);
}

function createChart() {
var canvasEl = document.getElementById(‘netflix_bar_graph_6a691ee9065a7’);
var ctx = canvasEl.getContext(‘2d’);

// Detect mobile screen size
var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth 0) {
var perTitle = isSmallMobile ? 38 : (isMobile ? 44 : 50);
var basePad = isSmallMobile ? 80 : (isMobile ? 90 : 100);
var targetH = titleCount * perTitle + basePad;
canvasEl.height = targetH;
canvasEl.style.height = targetH + ‘px’;
}

var chartConfig = {
type: ‘bar’,
data: {
labels: [“Me Time”,”Lift”,”72 HOURS”],
datasets: [{
label: chartTitle,
data: [34200000,32800000,22100000],
backgroundColor: [“#b9090b”,”#b9090b”,”#000″],
borderColor: [“#b9090b”,”#b9090b”,”#000″],
borderWidth: 0,
hoverBackgroundColor: [“#8a0708″,”#8a0708″,”#1a1a1a”],
hoverBorderColor: ‘#b9090b’,
hoverBorderWidth: 2,
barPercentage: 0.9,
categoryPercentage: 0.9
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
indexAxis: ‘y’,
layout: {
padding: { bottom: isMobile ? 12 : 24, top: 8 }
},
plugins: {
title: {
display: true,
text: chartTitle,
color: ‘#000000’,
align: ‘start’,
font: {
size: titleFontSize,
weight: ‘bold’
},
padding: { top: 4, bottom: 16 }
},
legend: { display: false },
tooltip: {
backgroundColor: ‘#221f1f’,
titleColor: ‘#b9090b’,
bodyColor: ‘#ffffff’,
titleFont: { weight: ‘bold’, size: 13 },
bodyFont: { size: 13 },
padding: { top: 10, bottom: 10, left: 14, right: 14 },
cornerRadius: 6,
displayColors: false,
borderColor: ‘#b9090b’,
borderWidth: 1,
callbacks: {
label: function(context) {
return context.dataset.label + ‘: ‘ + context.parsed.x.toLocaleString();
}
}
}
},
scales: {
x: {
beginAtZero: true,
ticks: {
font: {
size: axisFontSize
},
// Compact “1.2M” / “789K” ticks on mobile so the
// x-axis doesn’t eat half the chart width.
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
}
},
y: {
ticks: {
// Bold + brand-red color for the highlighted title’s y-axis tick;
// muted gray for everything else when a highlight is active.
font: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return { weight: ‘bold’, size: axisFontSize };
}
return { size: axisFontSize };
},
color: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return ‘#b9090b’;
}
return ‘#000000’;
}
}
}
},
}
};

// Add DataLabels configuration if labels are enabled
if (showLabels && window.ChartDataLabels) {
// Small bars (< 15% of max) get their label floated *above* the bar
// tip in Netflix red, so it never overlaps the red bar and never
// becomes black-on-red. A white text stroke keeps the label
// readable even when the chart sits on a coloured/image background.
var isSmallBar = function(context) {
var value = context.dataset.data[context.dataIndex];
if (typeof value === 'undefined' || value === null) return false;
var maxValue = Math.max.apply(null, context.dataset.data.filter(function(v) {
return v !== null && v !== undefined;
}));
if (!maxValue) return false;
return (value / maxValue) * 100 < 15;
};

chartConfig.options.plugins.datalabels = {
anchor: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
align: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
offset: function(context) {
return isSmallBar(context) ? 4 : 0;
},
color: function(context) {
return isSmallBar(context) ? '#b9090b' : '#fff';
},
textStrokeColor: function(context) {
return isSmallBar(context) ? '#ffffff' : 'rgba(0,0,0,0.35)';
},
textStrokeWidth: 2,
clip: false,
clamp: true,
font: {
weight: 'bold',
size: dataLabelFontSize
},
formatter: function(value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, true);
}
return value;
},
display: function(context) {
var value = context.dataset.data[context.dataIndex];
return typeof value !== 'undefined' && value !== null;
}
};
chartConfig.plugins = [ChartDataLabels];
}

// Always register the watermark plugin (independent of data labels).
chartConfig.plugins = (chartConfig.plugins || []).concat(
window.wonWatermarkPlugin ? [window.wonWatermarkPlugin] : []
);

var chart = new Chart(ctx, chartConfig);
}

function ensureChartAndPlugin() {
if (!window.Chart) {
loadScript('https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0', function() {
createChart();
});
} else {
createChart();
}
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', ensureChartAndPlugin);
} else {
ensureChartAndPlugin();
}
})();

.sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}

.netflix-data-chart-container {
position: relative;
margin-bottom: 40px;
}

.netflix-data-chart-container table {
border-collapse: collapse;
width: 100%;
margin: 10px 0;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
font-weight: bold;
}

/* Dark mode support for netflix bar graph – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.netflix-data-chart-container canvas {
background-color: #ffffff;
}

.netflix-data-chart-container table {
background-color: #ffffff;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
background-color: #ffffff;
color: #333333;
border: 1px solid #ddd;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
color: #333333;
}
}

/* Additional dark mode support for better contrast – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container .sr-only {
color: #333333;
}
}

/* Mobile responsive font sizes */
@media (max-width: 768px) {
.netflix-data-chart-container canvas {
font-size: 12px !important;
}
}

@media (max-width: 480px) {
.netflix-data-chart-container canvas {
font-size: 10px !important;
}
}

And finally, against some other straight comedies from years prior:

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Viewership Comparison – Back in Action, Happy Gilmore 2, 72 HOURS, Nonnas, Ladies First and 3 more Netflix titles (1-week cumulative views)”,
“description”: “Cumulative weekly views for Back in Action, Happy Gilmore 2, 72 HOURS, Nonnas, Ladies First and 3 more Netflix titles on Netflix over 1 weeks. Back in Action leads the comparison with 46,800,000 cumulative views. Combined total: 168,600,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, viewership, streaming data, Netflix Top 10, weekly views, audience metrics, Back in Action, Happy Gilmore 2, 72 HOURS, Nonnas, Ladies First, Incoming, Roommates, Unfrosted”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Cumulative weekly views (Netflix Top 10)”,
“measurementTechnique”: “Aggregation of Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “1 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”Back in Action”},
{“@type”:”CreativeWork”,”name”:”Happy Gilmore 2″},
{“@type”:”CreativeWork”,”name”:”72 HOURS”},
{“@type”:”CreativeWork”,”name”:”Nonnas”},
{“@type”:”CreativeWork”,”name”:”Ladies First”},
{“@type”:”CreativeWork”,”name”:”Incoming”},
{“@type”:”CreativeWork”,”name”:”Roommates”},
{“@type”:”CreativeWork”,”name”:”Unfrosted”} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_bar_graph_6a691ee90664b” }
}

Netflix Viewership Comparison – Back in Action, Happy Gilmore 2, 72 HOURS, Nonnas, Ladies First and 3 more Netflix titles (1-week analysis)

Cumulative views over 1 weeks for 8 Netflix titles: Back in Action, Happy Gilmore 2, 72 HOURS, Nonnas, Ladies First, Incoming, Roommates, Unfrosted. Combined total: 168,600,000 views.

Netflix cumulative views ranking for Back in Action, Happy Gilmore 2, 72 HOURS, Nonnas, Ladies First and 3 more Netflix titles over 1 weeks.
Title Opening Week Views Rank
Back in Action 46,800,000 1
Happy Gilmore 2 46,700,000 2
72 HOURS 22,100,000 3
Nonnas 15,300,000 4
Ladies First 11,900,000 5
Incoming 9,900,000 6
Roommates 8,800,000 7
Unfrosted 7,100,000 8

(function() {
var showLabels = true;
var titleHighlight = “72 HOURS”;
// Title rendered above the chart in place of the legend (1 week → “Opening Week”).
var chartTitle = “Opening Week Views”;

function loadScript(src, callback) {
var script = document.createElement(‘script’);
script.src = src;
script.onload = callback;
document.head.appendChild(script);
}

function createChart() {
var canvasEl = document.getElementById(‘netflix_bar_graph_6a691ee90664b’);
var ctx = canvasEl.getContext(‘2d’);

// Detect mobile screen size
var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth 0) {
var perTitle = isSmallMobile ? 38 : (isMobile ? 44 : 50);
var basePad = isSmallMobile ? 80 : (isMobile ? 90 : 100);
var targetH = titleCount * perTitle + basePad;
canvasEl.height = targetH;
canvasEl.style.height = targetH + ‘px’;
}

var chartConfig = {
type: ‘bar’,
data: {
labels: [“Back in Action”,”Happy Gilmore 2″,”72 HOURS”,”Nonnas”,”Ladies First”,”Incoming”,”Roommates”,”Unfrosted”],
datasets: [{
label: chartTitle,
data: [46800000,46700000,22100000,15300000,11900000,9900000,8800000,7100000],
backgroundColor: [“#b9090b”,”#b9090b”,”#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderColor: [“#b9090b”,”#b9090b”,”#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderWidth: 0,
hoverBackgroundColor: [“#8a0708″,”#8a0708″,”#1a1a1a”,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″],
hoverBorderColor: ‘#b9090b’,
hoverBorderWidth: 2,
barPercentage: 0.9,
categoryPercentage: 0.9
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
indexAxis: ‘y’,
layout: {
padding: { bottom: isMobile ? 12 : 24, top: 8 }
},
plugins: {
title: {
display: true,
text: chartTitle,
color: ‘#000000’,
align: ‘start’,
font: {
size: titleFontSize,
weight: ‘bold’
},
padding: { top: 4, bottom: 16 }
},
legend: { display: false },
tooltip: {
backgroundColor: ‘#221f1f’,
titleColor: ‘#b9090b’,
bodyColor: ‘#ffffff’,
titleFont: { weight: ‘bold’, size: 13 },
bodyFont: { size: 13 },
padding: { top: 10, bottom: 10, left: 14, right: 14 },
cornerRadius: 6,
displayColors: false,
borderColor: ‘#b9090b’,
borderWidth: 1,
callbacks: {
label: function(context) {
return context.dataset.label + ‘: ‘ + context.parsed.x.toLocaleString();
}
}
}
},
scales: {
x: {
beginAtZero: true,
ticks: {
font: {
size: axisFontSize
},
// Compact “1.2M” / “789K” ticks on mobile so the
// x-axis doesn’t eat half the chart width.
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
}
},
y: {
ticks: {
// Bold + brand-red color for the highlighted title’s y-axis tick;
// muted gray for everything else when a highlight is active.
font: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return { weight: ‘bold’, size: axisFontSize };
}
return { size: axisFontSize };
},
color: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return ‘#b9090b’;
}
return ‘#000000’;
}
}
}
},
}
};

// Add DataLabels configuration if labels are enabled
if (showLabels && window.ChartDataLabels) {
// Small bars (< 15% of max) get their label floated *above* the bar
// tip in Netflix red, so it never overlaps the red bar and never
// becomes black-on-red. A white text stroke keeps the label
// readable even when the chart sits on a coloured/image background.
var isSmallBar = function(context) {
var value = context.dataset.data[context.dataIndex];
if (typeof value === 'undefined' || value === null) return false;
var maxValue = Math.max.apply(null, context.dataset.data.filter(function(v) {
return v !== null && v !== undefined;
}));
if (!maxValue) return false;
return (value / maxValue) * 100 < 15;
};

chartConfig.options.plugins.datalabels = {
anchor: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
align: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
offset: function(context) {
return isSmallBar(context) ? 4 : 0;
},
color: function(context) {
return isSmallBar(context) ? '#b9090b' : '#fff';
},
textStrokeColor: function(context) {
return isSmallBar(context) ? '#ffffff' : 'rgba(0,0,0,0.35)';
},
textStrokeWidth: 2,
clip: false,
clamp: true,
font: {
weight: 'bold',
size: dataLabelFontSize
},
formatter: function(value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, true);
}
return value;
},
display: function(context) {
var value = context.dataset.data[context.dataIndex];
return typeof value !== 'undefined' && value !== null;
}
};
chartConfig.plugins = [ChartDataLabels];
}

// Always register the watermark plugin (independent of data labels).
chartConfig.plugins = (chartConfig.plugins || []).concat(
window.wonWatermarkPlugin ? [window.wonWatermarkPlugin] : []
);

var chart = new Chart(ctx, chartConfig);
}

function ensureChartAndPlugin() {
if (!window.Chart) {
loadScript('https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0', function() {
createChart();
});
} else {
createChart();
}
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', ensureChartAndPlugin);
} else {
ensureChartAndPlugin();
}
})();

.sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}

.netflix-data-chart-container {
position: relative;
margin-bottom: 40px;
}

.netflix-data-chart-container table {
border-collapse: collapse;
width: 100%;
margin: 10px 0;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
font-weight: bold;
}

/* Dark mode support for netflix bar graph – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.netflix-data-chart-container canvas {
background-color: #ffffff;
}

.netflix-data-chart-container table {
background-color: #ffffff;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
background-color: #ffffff;
color: #333333;
border: 1px solid #ddd;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
color: #333333;
}
}

/* Additional dark mode support for better contrast – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container .sr-only {
color: #333333;
}
}

/* Mobile responsive font sizes */
@media (max-width: 768px) {
.netflix-data-chart-container canvas {
font-size: 12px !important;
}
}

@media (max-width: 480px) {
.netflix-data-chart-container canvas {
font-size: 10px !important;
}
}


2. I Will Find You and Swapped In All-Time Top 10 List

IWILLFINDYOU 102 250501 CK 00189 R2

Picture Credit: Netflix

As we predicted just last week, I Will Find You will comfortably be heading into the all-time top 10 list, and this week, it booted out HIS & HERS, which only just got into the all-time list relatively recently, permanently. DAHMER is our north star right now for the movie, which currently sits at #6, and while it has looked to be out of reach, the legs on this Harlan Coben series are something to behold. It has until September 17th, 2026 to keep picking up viewing hours.

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Cumulative Views Over Time – DAHMER, HIS and HERS and I Will Find You (6-week trend)”,
“description”: “Week-by-week cumulative views trend for DAHMER, HIS and HERS and I Will Find You on Netflix across 6 weeks. DAHMER finishes the period with the highest cumulative count at 104,800,000 views. Combined final total: 294,200,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, cumulative views, viewership trend, Netflix Top 10, weekly views, time series, DAHMER, HIS and HERS, I Will Find You”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Cumulative weekly views over time (Netflix Top 10)”,
“measurementTechnique”: “Running totals derived from Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “6 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”DAHMER”},
{“@type”:”CreativeWork”,”name”:”HIS and HERS”},
{“@type”:”CreativeWork”,”name”:”I Will Find You”} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#cumulativeChart_6a691ee906695” }
}

Netflix Cumulative Views Over Time – DAHMER, HIS and HERS and I Will Find You (6-week trend)

Week-by-week cumulative views for 3 Netflix titles: DAHMER, HIS and HERS, I Will Find You. Combined final total: 294,200,000 views.

Weekly cumulative Netflix views for DAHMER, HIS and HERS and I Will Find You over 6 weeks.
Title Week 0 Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Final cumulative
DAHMER 0 22,000,000 55,600,000 78,600,000 92,400,000 100,200,000 104,800,000 104,800,000
HIS and HERS 0 19,900,000 49,400,000 66,600,000 77,600,000 83,800,000 87,700,000 87,700,000
I Will Find You 0 24,000,000 58,100,000 74,100,000 85,600,000 94,400,000 101,700,000 101,700,000

document.addEventListener(‘DOMContentLoaded’, function () {
var ctx = document.getElementById(‘cumulativeChart_6a691ee906695’).getContext(‘2d’);

// Responsive sizing so the line chart doesn’t squash itself on
// narrow viewports. Right padding shrinks because the end-of-line
// pill labels also shrink; axis/title fonts scale to match the
// bar-graph scheme; ticks switch to compact notation on mobile.
var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth = 0; i–) {
if (data[i] !== null && data[i] !== undefined) {
return context.dataIndex === i;
}
}
return false;
},
formatter: function (value, context) {
return context.dataset.label;
}
}
},
scales: {
x: {
title: {
display: true,
text: ‘Week Number’,
font: {
size: axisTitleFontSize
}
},
type: ‘linear’,
position: ‘bottom’,
ticks:{
stepSize: 1,
font: {
size: axisFontSize
}
}
},
y: {
title: {
display: true,
text: ‘Cumulative Views’,
font: {
size: axisTitleFontSize
}
},
beginAtZero: true,
ticks: {
font: { weight: ‘bold’, size: axisFontSize },
color: ‘#222’,
// Compact “1.2M” / “789K” on mobile so the y-axis
// doesn’t eat half the chart width with comma-
// separated numbers like “1,234,567,890”.
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
}
}
},
elements: {
line: {
tension: 0 // Disable bezier curves
}
}
}
});
});

/* Dark mode support for cumulative views chart – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.netflix-data canvas {
background-color: #ffffff;
}
}

The animated movie Swapped also saw its position jump up, but its qualifying period ends on Friday (July 31st), and it needs about 200K more views to take #8 away from Leave the World Behind, which sits at 143.4M views. Infinitely doable, but Back in Action, which sits at 147.2M, is probably out of reach.


3. Elite Force from Netflix France

It’s been tracking strong globally in the daily top 10s ever since its Wednesday debut, and the top 10 numbers back that debut up. It debuted to 10.1M views, smoking Netflix’s other French TV lineup with Wednesday launches. Expect a season 2 order for this one. 

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Viewership Comparison – Elite Force – Season 1, Under a Dark Sun, Blood Coast – Season 1, Néro the Assassin – Season 1, Christmas Flow – Season 1 and 2 more Netflix titles (1-week cumulative views)”,
“description”: “Cumulative weekly views for Elite Force – Season 1, Under a Dark Sun, Blood Coast – Season 1, Néro the Assassin – Season 1, Christmas Flow – Season 1 and 2 more Netflix titles on Netflix over 1 weeks. Elite Force – Season 1 leads the comparison with 10,100,000 cumulative views. Combined total: 35,100,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, viewership, streaming data, Netflix Top 10, weekly views, audience metrics, Elite Force – Season 1, Under a Dark Sun, Blood Coast – Season 1, Néro the Assassin – Season 1, Christmas Flow – Season 1, Young Millionaires – Season 1, Class Act – Season 1”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Cumulative weekly views (Netflix Top 10)”,
“measurementTechnique”: “Aggregation of Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “1 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”Elite Force – Season 1″},
{“@type”:”CreativeWork”,”name”:”Under a Dark Sun”},
{“@type”:”CreativeWork”,”name”:”Blood Coast – Season 1″},
{“@type”:”CreativeWork”,”name”:”Néro the Assassin – Season 1″},
{“@type”:”CreativeWork”,”name”:”Christmas Flow – Season 1″},
{“@type”:”CreativeWork”,”name”:”Young Millionaires – Season 1″},
{“@type”:”CreativeWork”,”name”:”Class Act – Season 1″} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_bar_graph_6a691ee9067ae” }
}

Netflix Viewership Comparison – Elite Force – Season 1, Under a Dark Sun, Blood Coast – Season 1, Néro the Assassin – Season 1, Christmas Flow – Season 1 and 2 more Netflix titles (1-week analysis)

Cumulative views over 1 weeks for 7 Netflix titles: Elite Force – Season 1, Under a Dark Sun, Blood Coast – Season 1, Néro the Assassin – Season 1, Christmas Flow – Season 1, Young Millionaires – Season 1, Class Act – Season 1. Combined total: 35,100,000 views.

Netflix cumulative views ranking for Elite Force – Season 1, Under a Dark Sun, Blood Coast – Season 1, Néro the Assassin – Season 1, Christmas Flow – Season 1 and 2 more Netflix titles over 1 weeks.
Title Opening Week Views Rank
Elite Force – Season 1 10,100,000 1
Under a Dark Sun 5,800,000 2
Blood Coast – Season 1 5,600,000 3
Néro the Assassin – Season 1 4,500,000 4
Christmas Flow – Season 1 4,200,000 5
Young Millionaires – Season 1 3,500,000 6
Class Act – Season 1 1,400,000 7

(function() {
var showLabels = true;
var titleHighlight = “Elite Force – Season 1”;
// Title rendered above the chart in place of the legend (1 week → “Opening Week”).
var chartTitle = “Opening Week Views”;

function loadScript(src, callback) {
var script = document.createElement(‘script’);
script.src = src;
script.onload = callback;
document.head.appendChild(script);
}

function createChart() {
var canvasEl = document.getElementById(‘netflix_bar_graph_6a691ee9067ae’);
var ctx = canvasEl.getContext(‘2d’);

// Detect mobile screen size
var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth 0) {
var perTitle = isSmallMobile ? 38 : (isMobile ? 44 : 50);
var basePad = isSmallMobile ? 80 : (isMobile ? 90 : 100);
var targetH = titleCount * perTitle + basePad;
canvasEl.height = targetH;
canvasEl.style.height = targetH + ‘px’;
}

var chartConfig = {
type: ‘bar’,
data: {
labels: [“Elite Force – Season 1″,”Under a Dark Sun”,”Blood Coast – Season 1″,”N\u00e9ro the Assassin – Season 1″,”Christmas Flow – Season 1″,”Young Millionaires – Season 1″,”Class Act – Season 1″],
datasets: [{
label: chartTitle,
data: [10100000,5800000,5600000,4500000,4200000,3500000,1400000],
backgroundColor: [“#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderColor: [“#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderWidth: 0,
hoverBackgroundColor: [“#1a1a1a”,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″],
hoverBorderColor: ‘#b9090b’,
hoverBorderWidth: 2,
barPercentage: 0.9,
categoryPercentage: 0.9
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
indexAxis: ‘y’,
layout: {
padding: { bottom: isMobile ? 12 : 24, top: 8 }
},
plugins: {
title: {
display: true,
text: chartTitle,
color: ‘#000000’,
align: ‘start’,
font: {
size: titleFontSize,
weight: ‘bold’
},
padding: { top: 4, bottom: 16 }
},
legend: { display: false },
tooltip: {
backgroundColor: ‘#221f1f’,
titleColor: ‘#b9090b’,
bodyColor: ‘#ffffff’,
titleFont: { weight: ‘bold’, size: 13 },
bodyFont: { size: 13 },
padding: { top: 10, bottom: 10, left: 14, right: 14 },
cornerRadius: 6,
displayColors: false,
borderColor: ‘#b9090b’,
borderWidth: 1,
callbacks: {
label: function(context) {
return context.dataset.label + ‘: ‘ + context.parsed.x.toLocaleString();
}
}
}
},
scales: {
x: {
beginAtZero: true,
ticks: {
font: {
size: axisFontSize
},
// Compact “1.2M” / “789K” ticks on mobile so the
// x-axis doesn’t eat half the chart width.
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
}
},
y: {
ticks: {
// Bold + brand-red color for the highlighted title’s y-axis tick;
// muted gray for everything else when a highlight is active.
font: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return { weight: ‘bold’, size: axisFontSize };
}
return { size: axisFontSize };
},
color: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return ‘#b9090b’;
}
return ‘#000000’;
}
}
}
},
}
};

// Add DataLabels configuration if labels are enabled
if (showLabels && window.ChartDataLabels) {
// Small bars (< 15% of max) get their label floated *above* the bar
// tip in Netflix red, so it never overlaps the red bar and never
// becomes black-on-red. A white text stroke keeps the label
// readable even when the chart sits on a coloured/image background.
var isSmallBar = function(context) {
var value = context.dataset.data[context.dataIndex];
if (typeof value === 'undefined' || value === null) return false;
var maxValue = Math.max.apply(null, context.dataset.data.filter(function(v) {
return v !== null && v !== undefined;
}));
if (!maxValue) return false;
return (value / maxValue) * 100 < 15;
};

chartConfig.options.plugins.datalabels = {
anchor: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
align: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
offset: function(context) {
return isSmallBar(context) ? 4 : 0;
},
color: function(context) {
return isSmallBar(context) ? '#b9090b' : '#fff';
},
textStrokeColor: function(context) {
return isSmallBar(context) ? '#ffffff' : 'rgba(0,0,0,0.35)';
},
textStrokeWidth: 2,
clip: false,
clamp: true,
font: {
weight: 'bold',
size: dataLabelFontSize
},
formatter: function(value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, true);
}
return value;
},
display: function(context) {
var value = context.dataset.data[context.dataIndex];
return typeof value !== 'undefined' && value !== null;
}
};
chartConfig.plugins = [ChartDataLabels];
}

// Always register the watermark plugin (independent of data labels).
chartConfig.plugins = (chartConfig.plugins || []).concat(
window.wonWatermarkPlugin ? [window.wonWatermarkPlugin] : []
);

var chart = new Chart(ctx, chartConfig);
}

function ensureChartAndPlugin() {
if (!window.Chart) {
loadScript('https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0', function() {
createChart();
});
} else {
createChart();
}
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', ensureChartAndPlugin);
} else {
ensureChartAndPlugin();
}
})();

.sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}

.netflix-data-chart-container {
position: relative;
margin-bottom: 40px;
}

.netflix-data-chart-container table {
border-collapse: collapse;
width: 100%;
margin: 10px 0;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
font-weight: bold;
}

/* Dark mode support for netflix bar graph – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.netflix-data-chart-container canvas {
background-color: #ffffff;
}

.netflix-data-chart-container table {
background-color: #ffffff;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
background-color: #ffffff;
color: #333333;
border: 1px solid #ddd;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
color: #333333;
}
}

/* Additional dark mode support for better contrast – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container .sr-only {
color: #333333;
}
}

/* Mobile responsive font sizes */
@media (max-width: 768px) {
.netflix-data-chart-container canvas {
font-size: 12px !important;
}
}

@media (max-width: 480px) {
.netflix-data-chart-container canvas {
font-size: 10px !important;
}
}


4. The Ultimatum: Marry or Move On 

Last week, we forgot to include the latest season of The Ultimatum, Netflix’s dating reality series, which held strong in seasons 2 and 3 but is definitely showing some decay now. 

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Weekly Views Breakdown – The Ultimatum: Marry or Move On – Season 1, The Ultimatum: Marry or Move On – Season 2, The Ultimatum: Marry or Move On – Season 3 and The Ultimatum: Marry or Move On – Season 4 (2-week stacked view)”,
“description”: “Weekly views breakdown for The Ultimatum: Marry or Move On – Season 1, The Ultimatum: Marry or Move On – Season 2, The Ultimatum: Marry or Move On – Season 3 and The Ultimatum: Marry or Move On – Season 4 on Netflix over 2 weeks, with each bar segmented by individual week. The Ultimatum: Marry or Move On – Season 1 leads the comparison with 12,200,000 cumulative views. Combined total: 30,100,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, views, weekly breakdown, streaming data, Netflix Top 10, stacked bar chart, The Ultimatum: Marry or Move On – Season 1, The Ultimatum: Marry or Move On – Season 2, The Ultimatum: Marry or Move On – Season 3, The Ultimatum: Marry or Move On – Season 4”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Weekly views by title and week (Netflix Top 10)”,
“measurementTechnique”: “Per-week values from Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “2 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”The Ultimatum: Marry or Move On – Season 1″},
{“@type”:”CreativeWork”,”name”:”The Ultimatum: Marry or Move On – Season 2″},
{“@type”:”CreativeWork”,”name”:”The Ultimatum: Marry or Move On – Season 3″},
{“@type”:”CreativeWork”,”name”:”The Ultimatum: Marry or Move On – Season 4″} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_split_bar_6a691ee906887” }
}

Netflix Weekly Views Breakdown – The Ultimatum: Marry or Move On – Season 1, The Ultimatum: Marry or Move On – Season 2, The Ultimatum: Marry or Move On – Season 3 and The Ultimatum: Marry or Move On – Season 4 (2-week analysis)

Weekly views for 4 Netflix titles: The Ultimatum: Marry or Move On – Season 1, The Ultimatum: Marry or Move On – Season 2, The Ultimatum: Marry or Move On – Season 3, The Ultimatum: Marry or Move On – Season 4. Combined total across all titles and weeks: 30,100,000 views.

Per-week Netflix views for The Ultimatum: Marry or Move On – Season 1, The Ultimatum: Marry or Move On – Season 2, The Ultimatum: Marry or Move On – Season 3 and The Ultimatum: Marry or Move On – Season 4 across 2 weeks.
Title Week 1 Week 2 Total
The Ultimatum: Marry or Move On – Season 1 5,200,000 7,000,000 12,200,000
The Ultimatum: Marry or Move On – Season 2 3,600,000 3,100,000 6,700,000
The Ultimatum: Marry or Move On – Season 3 3,300,000 3,400,000 6,700,000
The Ultimatum: Marry or Move On – Season 4 1,900,000 2,600,000 4,500,000

(function () {
var showLabels = true;
var titleHighlight = “The Ultimatum: Marry or Move On – Season 4”;

function loadScript(src, callback) {
var script = document.createElement(‘script’);
script.src = src;
script.onload = callback;
document.head.appendChild(script);
}

function createChart() {
var canvasEl = document.getElementById(‘netflix_split_bar_6a691ee906887’);
var ctx = canvasEl.getContext(‘2d’);

var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth 0) {
var perTitle = isSmallMobile ? 38 : (isMobile ? 44 : 50);
var basePad = isSmallMobile ? 90 : (isMobile ? 100 : 100);
var targetH = titleCount * perTitle + basePad;
canvasEl.height = targetH;
canvasEl.style.height = targetH + ‘px’;
}

var chartConfig = {
type: ‘bar’,
data: {
labels: [“The Ultimatum: Marry or Move On – Season 1″,”The Ultimatum: Marry or Move On – Season 2″,”The Ultimatum: Marry or Move On – Season 3″,”The Ultimatum: Marry or Move On – Season 4”],
datasets: [{“label”:”Week 1″,”data”:[5200000,3600000,3300000,1900000],”backgroundColor”:[“#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090b”],”borderWidth”:0,”barPercentage”:0.90000000000000002220446049250313080847263336181640625,”categoryPercentage”:0.90000000000000002220446049250313080847263336181640625},{“label”:”Week 2″,”data”:[7000000,3100000,3400000,2600000],”backgroundColor”:[“#900608CC”,”#900608CC”,”#900608CC”,”#900608″],”borderWidth”:0,”barPercentage”:0.90000000000000002220446049250313080847263336181640625,”categoryPercentage”:0.90000000000000002220446049250313080847263336181640625}] },
options: {
responsive: true,
maintainAspectRatio: false,
indexAxis: ‘y’,
layout: {
padding: { bottom: isMobile ? 12 : 24, top: 8 }
},
plugins: {
legend: {
display: true,
position: ‘top’,
labels: {
font: { size: legendFontSize },
padding: 12,
boxWidth: 14,
boxHeight: 14
}
},
tooltip: {
backgroundColor: ‘#221f1f’,
titleColor: ‘#b9090b’,
bodyColor: ‘#ffffff’,
footerColor: ‘#cccccc’,
titleFont: { weight: ‘bold’, size: 13 },
bodyFont: { size: 13 },
footerFont: { size: 12, weight: ‘normal’ },
padding: { top: 10, bottom: 10, left: 14, right: 14 },
cornerRadius: 6,
displayColors: true,
borderColor: ‘#b9090b’,
borderWidth: 1,
callbacks: {
label: function (context) {
return context.dataset.label + ‘: ‘ + Number(context.parsed.x).toLocaleString() + ‘ views’;
},
footer: function (items) {
if (!items || !items.length) return ”;
var idx = items[0].dataIndex;
var total = 0;
var datasets = items[0].chart.data.datasets;
for (var i = 0; i < datasets.length; i++) {
total += (datasets[i].data[idx] || 0);
}
return 'Total: ' + total.toLocaleString();
}
}
}
},
scales: {
x: {
beginAtZero: true,
stacked: true,
ticks: {
font: { size: axisFontSize },
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
},
grid: { color: 'rgba(0,0,0,0.05)' }
},
y: {
stacked: true,
ticks: {
// Bold + brand-red color for the highlighted title's y-axis tick;
// muted gray for everything else when a highlight is active.
font: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return { weight: 'bold', size: axisFontSize };
}
return { size: axisFontSize };
},
color: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return '#b9090b';
}
return '#000000';
}
},
grid: { display: false }
}
}
}
};

if (showLabels && window.ChartDataLabels) {
chartConfig.options.plugins.datalabels = {
anchor: 'center',
align: 'center',
color: '#ffffff',
textStrokeColor: 'rgba(0,0,0,0.4)',
textStrokeWidth: 2,
font: { weight: 'bold', size: dataLabelFontSize },
formatter: function (value) {
if (!value) return '';
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, true);
}
return value;
},
display: function (context) {
// Suppress labels on segments smaller than ~8% of the bar
// so cramped segments stay clean. Tooltips still show the
// exact value on hover.
var value = context.dataset.data[context.dataIndex];
if (typeof value === 'undefined' || value === null || value === 0) return false;
var idx = context.dataIndex;
var total = 0;
var datasets = context.chart.data.datasets;
for (var i = 0; i 0 && (value / total) > 0.08;
}
};
chartConfig.plugins = [ChartDataLabels];
}

chartConfig.plugins = (chartConfig.plugins || []).concat(
window.wonWatermarkPlugin ? [window.wonWatermarkPlugin] : []
);

new Chart(ctx, chartConfig);
}

function ensureChartAndPlugin() {
if (!window.Chart) {
loadScript(‘https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js’, ensureChartAndPlugin);
} else if (showLabels && !window.ChartDataLabels) {
loadScript(‘https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0’, createChart);
} else {
createChart();
}
}

if (document.readyState === ‘loading’) {
document.addEventListener(‘DOMContentLoaded’, ensureChartAndPlugin);
} else {
ensureChartAndPlugin();
}
})();

.netflix-data-chart-container {
position: relative;
margin-bottom: 40px;
}
.netflix-data-chart-container .sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.netflix-data-chart-container canvas {
background-color: #ffffff;
}
}


5. Week 2 for The Hawk

The Hawk got off to a mixed start in week 1, undoubtedly thanks to some lukewarm reviews, but how did it fare in week 2? It saw a nearly 30% uplift in viewing hours, which placed it ultimately second for the week in the English TV chart, but it’s lagging behind quite a few shows with comparable budgets and is ahead of the likes of Tires, Leanne, and Survival of the Thickest, which ultimately did secure season 2 orders.

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Weekly Views Breakdown – The Gentlemen – Season 1, Nobody Wants This – Season 1, FUBAR – Season 1, The Four Seasons – Season 1, Running Point – Season 1 and 12 more Netflix titles (2-week stacked view)”,
“description”: “Weekly views breakdown for The Gentlemen – Season 1, Nobody Wants This – Season 1, FUBAR – Season 1, The Four Seasons – Season 1, Running Point – Season 1 and 12 more Netflix titles on Netflix over 2 weeks, with each bar segmented by individual week. The Gentlemen – Season 1 leads the comparison with 32,300,000 cumulative views. Combined total: 234,500,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, views, weekly breakdown, streaming data, Netflix Top 10, stacked bar chart, The Gentlemen – Season 1, Nobody Wants This – Season 1, FUBAR – Season 1, The Four Seasons – Season 1, Running Point – Season 1, Obliterated – Season 1, Boots – Season 1, A Man on the Inside – Season 1”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Weekly views by title and week (Netflix Top 10)”,
“measurementTechnique”: “Per-week values from Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “2 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”The Gentlemen – Season 1″},
{“@type”:”CreativeWork”,”name”:”Nobody Wants This – Season 1″},
{“@type”:”CreativeWork”,”name”:”FUBAR – Season 1″},
{“@type”:”CreativeWork”,”name”:”The Four Seasons – Season 1″},
{“@type”:”CreativeWork”,”name”:”Running Point – Season 1″},
{“@type”:”CreativeWork”,”name”:”Obliterated – Season 1″},
{“@type”:”CreativeWork”,”name”:”Boots – Season 1″},
{“@type”:”CreativeWork”,”name”:”A Man on the Inside – Season 1″},
{“@type”:”CreativeWork”,”name”:”No Good Deed – Season 1″},
{“@type”:”CreativeWork”,”name”:”The Hawk – Season 1″} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_split_bar_6a691ee90695a” }
}

Netflix Weekly Views Breakdown – The Gentlemen – Season 1, Nobody Wants This – Season 1, FUBAR – Season 1, The Four Seasons – Season 1, Running Point – Season 1 and 12 more Netflix titles (2-week analysis)

Weekly views for 17 Netflix titles: The Gentlemen – Season 1, Nobody Wants This – Season 1, FUBAR – Season 1, The Four Seasons – Season 1, Running Point – Season 1, Obliterated – Season 1, Boots – Season 1, A Man on the Inside – Season 1, No Good Deed – Season 1, The Hawk – Season 1, KAOS, Survival of the Thickest – Season 1, Tires – Season 1, Leanne – Season 1, The Decameron, Unstable – Season 1, Too Much – Season 1. Combined total across all titles and weeks: 234,500,000 views.

Per-week Netflix views for The Gentlemen – Season 1, Nobody Wants This – Season 1, FUBAR – Season 1, The Four Seasons – Season 1, Running Point – Season 1 and 12 more Netflix titles across 2 weeks.
Title Week 1 Week 2 Total
The Gentlemen – Season 1 12,200,000 20,100,000 32,300,000
Nobody Wants This – Season 1 10,300,000 15,900,000 26,200,000
FUBAR – Season 1 12,500,000 12,300,000 24,800,000
The Four Seasons – Season 1 11,900,000 12,500,000 24,400,000
Running Point – Season 1 9,300,000 12,200,000 21,500,000
Obliterated – Season 1 7,000,000 9,000,000 16,000,000
Boots – Season 1 4,700,000 9,400,000 14,100,000
A Man on the Inside – Season 1 6,900,000 7,000,000 13,900,000
No Good Deed – Season 1 6,000,000 5,600,000 11,600,000
The Hawk – Season 1 4,800,000 6,200,000 11,000,000
KAOS 3,400,000 5,900,000 9,300,000
Survival of the Thickest – Season 1 3,700,000 3,800,000 7,500,000
Tires – Season 1 3,800,000 3,100,000 6,900,000
Leanne – Season 1 2,700,000 2,800,000 5,500,000
The Decameron 2,100,000 2,100,000 4,200,000
Unstable – Season 1 3,400,000 0 3,400,000
Too Much – Season 1 1,900,000 0 1,900,000

(function () {
var showLabels = true;
var titleHighlight = “The Hawk – Season 1”;

function loadScript(src, callback) {
var script = document.createElement(‘script’);
script.src = src;
script.onload = callback;
document.head.appendChild(script);
}

function createChart() {
var canvasEl = document.getElementById(‘netflix_split_bar_6a691ee90695a’);
var ctx = canvasEl.getContext(‘2d’);

var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth 0) {
var perTitle = isSmallMobile ? 38 : (isMobile ? 44 : 50);
var basePad = isSmallMobile ? 90 : (isMobile ? 100 : 100);
var targetH = titleCount * perTitle + basePad;
canvasEl.height = targetH;
canvasEl.style.height = targetH + ‘px’;
}

var chartConfig = {
type: ‘bar’,
data: {
labels: [“The Gentlemen – Season 1″,”Nobody Wants This – Season 1″,”FUBAR – Season 1″,”The Four Seasons – Season 1″,”Running Point – Season 1″,”Obliterated – Season 1″,”Boots – Season 1″,”A Man on the Inside – Season 1″,”No Good Deed – Season 1″,”The Hawk – Season 1″,”KAOS”,”Survival of the Thickest – Season 1″,”Tires – Season 1″,”Leanne – Season 1″,”The Decameron”,”Unstable – Season 1″,”Too Much – Season 1″],
datasets: [{“label”:”Week 1″,”data”:[12200000,10300000,12500000,11900000,9300000,7000000,4700000,6900000,6000000,4800000,3400000,3700000,3800000,2700000,2100000,3400000,1900000],”backgroundColor”:[“#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090b”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”],”borderWidth”:0,”barPercentage”:0.90000000000000002220446049250313080847263336181640625,”categoryPercentage”:0.90000000000000002220446049250313080847263336181640625},{“label”:”Week 2″,”data”:[20100000,15900000,12300000,12500000,12200000,9000000,9400000,7000000,5600000,6200000,5900000,3800000,3100000,2800000,2100000,0,0],”backgroundColor”:[“#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608″,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”],”borderWidth”:0,”barPercentage”:0.90000000000000002220446049250313080847263336181640625,”categoryPercentage”:0.90000000000000002220446049250313080847263336181640625}] },
options: {
responsive: true,
maintainAspectRatio: false,
indexAxis: ‘y’,
layout: {
padding: { bottom: isMobile ? 12 : 24, top: 8 }
},
plugins: {
legend: {
display: true,
position: ‘top’,
labels: {
font: { size: legendFontSize },
padding: 12,
boxWidth: 14,
boxHeight: 14
}
},
tooltip: {
backgroundColor: ‘#221f1f’,
titleColor: ‘#b9090b’,
bodyColor: ‘#ffffff’,
footerColor: ‘#cccccc’,
titleFont: { weight: ‘bold’, size: 13 },
bodyFont: { size: 13 },
footerFont: { size: 12, weight: ‘normal’ },
padding: { top: 10, bottom: 10, left: 14, right: 14 },
cornerRadius: 6,
displayColors: true,
borderColor: ‘#b9090b’,
borderWidth: 1,
callbacks: {
label: function (context) {
return context.dataset.label + ‘: ‘ + Number(context.parsed.x).toLocaleString() + ‘ views’;
},
footer: function (items) {
if (!items || !items.length) return ”;
var idx = items[0].dataIndex;
var total = 0;
var datasets = items[0].chart.data.datasets;
for (var i = 0; i < datasets.length; i++) {
total += (datasets[i].data[idx] || 0);
}
return 'Total: ' + total.toLocaleString();
}
}
}
},
scales: {
x: {
beginAtZero: true,
stacked: true,
ticks: {
font: { size: axisFontSize },
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
},
grid: { color: 'rgba(0,0,0,0.05)' }
},
y: {
stacked: true,
ticks: {
// Bold + brand-red color for the highlighted title's y-axis tick;
// muted gray for everything else when a highlight is active.
font: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return { weight: 'bold', size: axisFontSize };
}
return { size: axisFontSize };
},
color: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return '#b9090b';
}
return '#000000';
}
},
grid: { display: false }
}
}
}
};

if (showLabels && window.ChartDataLabels) {
chartConfig.options.plugins.datalabels = {
anchor: 'center',
align: 'center',
color: '#ffffff',
textStrokeColor: 'rgba(0,0,0,0.4)',
textStrokeWidth: 2,
font: { weight: 'bold', size: dataLabelFontSize },
formatter: function (value) {
if (!value) return '';
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, true);
}
return value;
},
display: function (context) {
// Suppress labels on segments smaller than ~8% of the bar
// so cramped segments stay clean. Tooltips still show the
// exact value on hover.
var value = context.dataset.data[context.dataIndex];
if (typeof value === 'undefined' || value === null || value === 0) return false;
var idx = context.dataIndex;
var total = 0;
var datasets = context.chart.data.datasets;
for (var i = 0; i 0 && (value / total) > 0.08;
}
};
chartConfig.plugins = [ChartDataLabels];
}

chartConfig.plugins = (chartConfig.plugins || []).concat(
window.wonWatermarkPlugin ? [window.wonWatermarkPlugin] : []
);

new Chart(ctx, chartConfig);
}

function ensureChartAndPlugin() {
if (!window.Chart) {
loadScript(‘https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js’, ensureChartAndPlugin);
} else if (showLabels && !window.ChartDataLabels) {
loadScript(‘https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0’, createChart);
} else {
createChart();
}
}

if (document.readyState === ‘loading’) {
document.addEventListener(‘DOMContentLoaded’, ensureChartAndPlugin);
} else {
ensureChartAndPlugin();
}
})();

.netflix-data-chart-container {
position: relative;
margin-bottom: 40px;
}
.netflix-data-chart-container .sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.netflix-data-chart-container canvas {
background-color: #ffffff;
}
}


6. Little House on the Prairie In Week 3

Last week, we clocked a 55% increase in viewing hours for the period drama series Little House on the Prairie, but that momentum didn’t stay in week 3, with a near 60% drop in viewing hours this week. Of course, it got ordered for a second season incredibly early and is already in production, and with these numbers we probably would’ve given it a pretty good chance of renewal, but it’s not a big hit by any stretch. 

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Weekly Views Breakdown – Black Doves – Season 1, American Primeval, Man on Fire – Season 1, All the Light We Cannot See, The Waterfront – Season 1 and 18 more Netflix titles (3-week stacked view)”,
“description”: “Weekly views breakdown for Black Doves – Season 1, American Primeval, Man on Fire – Season 1, All the Light We Cannot See, The Waterfront – Season 1 and 18 more Netflix titles on Netflix over 3 weeks, with each bar segmented by individual week. Black Doves – Season 1 leads the comparison with 32,100,000 cumulative views. Combined total: 426,000,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, views, weekly breakdown, streaming data, Netflix Top 10, stacked bar chart, Black Doves – Season 1, American Primeval, Man on Fire – Season 1, All the Light We Cannot See, The Waterfront – Season 1, Nemesis – Season 1, The Diplomat – Season 1, Obliterated – Season 1”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Weekly views by title and week (Netflix Top 10)”,
“measurementTechnique”: “Per-week values from Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “3 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”Black Doves – Season 1″},
{“@type”:”CreativeWork”,”name”:”American Primeval”},
{“@type”:”CreativeWork”,”name”:”Man on Fire – Season 1″},
{“@type”:”CreativeWork”,”name”:”All the Light We Cannot See”},
{“@type”:”CreativeWork”,”name”:”The Waterfront – Season 1″},
{“@type”:”CreativeWork”,”name”:”Nemesis – Season 1″},
{“@type”:”CreativeWork”,”name”:”The Diplomat – Season 1″},
{“@type”:”CreativeWork”,”name”:”Obliterated – Season 1″},
{“@type”:”CreativeWork”,”name”:”Ransom Canyon – Season 1″},
{“@type”:”CreativeWork”,”name”:”Little House on the Prairie – Season 1″} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_split_bar_6a691ee906a3d” }
}

Netflix Weekly Views Breakdown – Black Doves – Season 1, American Primeval, Man on Fire – Season 1, All the Light We Cannot See, The Waterfront – Season 1 and 18 more Netflix titles (3-week analysis)

Weekly views for 23 Netflix titles: Black Doves – Season 1, American Primeval, Man on Fire – Season 1, All the Light We Cannot See, The Waterfront – Season 1, Nemesis – Season 1, The Diplomat – Season 1, Obliterated – Season 1, Ransom Canyon – Season 1, Little House on the Prairie – Season 1, The Residence – Season 1, Dept. Q – Season 1, The Boroughs – Season 1, Territory, House of Guinness, The Abandons – Season 1, Something Very Bad Is Going to Happen, Geek Girl – Season 1, Bet – Season 1, Dead Boy Detectives – Season 1, Bodkin, Vladimir, The Decameron. Combined total across all titles and weeks: 426,000,000 views.

Per-week Netflix views for Black Doves – Season 1, American Primeval, Man on Fire – Season 1, All the Light We Cannot See, The Waterfront – Season 1 and 18 more Netflix titles across 3 weeks.
Title Week 1 Week 2 Week 3 Total
Black Doves – Season 1 10,800,000 14,600,000 6,700,000 32,100,000
American Primeval 10,400,000 14,300,000 6,700,000 31,400,000
Man on Fire – Season 1 11,000,000 12,600,000 5,500,000 29,100,000
All the Light We Cannot See 9,800,000 10,100,000 5,700,000 25,600,000
The Waterfront – Season 1 8,300,000 11,600,000 5,600,000 25,500,000
Nemesis – Season 1 7,100,000 11,400,000 5,900,000 24,400,000
The Diplomat – Season 1 8,500,000 9,800,000 4,600,000 22,900,000
Obliterated – Season 1 7,000,000 9,000,000 5,200,000 21,200,000
Ransom Canyon – Season 1 7,200,000 9,400,000 4,200,000 20,800,000
Little House on the Prairie – Season 1 6,400,000 9,800,000 4,000,000 20,200,000
The Residence – Season 1 6,400,000 8,800,000 4,600,000 19,800,000
Dept. Q – Season 1 6,000,000 8,900,000 4,300,000 19,200,000
The Boroughs – Season 1 5,600,000 9,500,000 3,700,000 18,800,000
Territory 6,400,000 6,300,000 2,400,000 15,100,000
House of Guinness 5,200,000 6,400,000 3,400,000 15,000,000
The Abandons – Season 1 7,300,000 7,600,000 0 14,900,000
Something Very Bad Is Going to Happen 4,500,000 6,900,000 3,100,000 14,500,000
Geek Girl – Season 1 3,400,000 7,300,000 3,800,000 14,500,000
Bet – Season 1 2,400,000 5,000,000 2,900,000 10,300,000
Dead Boy Detectives – Season 1 3,100,000 4,700,000 1,800,000 9,600,000
Bodkin 3,300,000 4,000,000 1,900,000 9,200,000
Vladimir 4,200,000 3,500,000 0 7,700,000
The Decameron 2,100,000 2,100,000 0 4,200,000

(function () {
var showLabels = true;
var titleHighlight = “Little House on the Prairie – Season 1”;

function loadScript(src, callback) {
var script = document.createElement(‘script’);
script.src = src;
script.onload = callback;
document.head.appendChild(script);
}

function createChart() {
var canvasEl = document.getElementById(‘netflix_split_bar_6a691ee906a3d’);
var ctx = canvasEl.getContext(‘2d’);

var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth 0) {
var perTitle = isSmallMobile ? 38 : (isMobile ? 44 : 50);
var basePad = isSmallMobile ? 90 : (isMobile ? 100 : 100);
var targetH = titleCount * perTitle + basePad;
canvasEl.height = targetH;
canvasEl.style.height = targetH + ‘px’;
}

var chartConfig = {
type: ‘bar’,
data: {
labels: [“Black Doves – Season 1″,”American Primeval”,”Man on Fire – Season 1″,”All the Light We Cannot See”,”The Waterfront – Season 1″,”Nemesis – Season 1″,”The Diplomat – Season 1″,”Obliterated – Season 1″,”Ransom Canyon – Season 1″,”Little House on the Prairie – Season 1″,”The Residence – Season 1″,”Dept. Q – Season 1″,”The Boroughs – Season 1″,”Territory”,”House of Guinness”,”The Abandons – Season 1″,”Something Very Bad Is Going to Happen”,”Geek Girl – Season 1″,”Bet – Season 1″,”Dead Boy Detectives – Season 1″,”Bodkin”,”Vladimir”,”The Decameron”],
datasets: [{“label”:”Week 1″,”data”:[10800000,10400000,11000000,9800000,8300000,7100000,8500000,7000000,7200000,6400000,6400000,6000000,5600000,6400000,5200000,7300000,4500000,3400000,2400000,3100000,3300000,4200000,2100000],”backgroundColor”:[“#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090b”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”],”borderWidth”:0,”barPercentage”:0.90000000000000002220446049250313080847263336181640625,”categoryPercentage”:0.90000000000000002220446049250313080847263336181640625},{“label”:”Week 2″,”data”:[14600000,14300000,12600000,10100000,11600000,11400000,9800000,9000000,9400000,9800000,8800000,8900000,9500000,6300000,6400000,7600000,6900000,7300000,5000000,4700000,4000000,3500000,2100000],”backgroundColor”:[“#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608″,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”],”borderWidth”:0,”barPercentage”:0.90000000000000002220446049250313080847263336181640625,”categoryPercentage”:0.90000000000000002220446049250313080847263336181640625},{“label”:”Week 3″,”data”:[6700000,6700000,5500000,5700000,5600000,5900000,4600000,5200000,4200000,4000000,4600000,4300000,3700000,2400000,3400000,0,3100000,3800000,2900000,1800000,1900000,0,0],”backgroundColor”:[“#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10″,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”,”#d40d10CC”],”borderWidth”:0,”barPercentage”:0.90000000000000002220446049250313080847263336181640625,”categoryPercentage”:0.90000000000000002220446049250313080847263336181640625}] },
options: {
responsive: true,
maintainAspectRatio: false,
indexAxis: ‘y’,
layout: {
padding: { bottom: isMobile ? 12 : 24, top: 8 }
},
plugins: {
legend: {
display: true,
position: ‘top’,
labels: {
font: { size: legendFontSize },
padding: 12,
boxWidth: 14,
boxHeight: 14
}
},
tooltip: {
backgroundColor: ‘#221f1f’,
titleColor: ‘#b9090b’,
bodyColor: ‘#ffffff’,
footerColor: ‘#cccccc’,
titleFont: { weight: ‘bold’, size: 13 },
bodyFont: { size: 13 },
footerFont: { size: 12, weight: ‘normal’ },
padding: { top: 10, bottom: 10, left: 14, right: 14 },
cornerRadius: 6,
displayColors: true,
borderColor: ‘#b9090b’,
borderWidth: 1,
callbacks: {
label: function (context) {
return context.dataset.label + ‘: ‘ + Number(context.parsed.x).toLocaleString() + ‘ views’;
},
footer: function (items) {
if (!items || !items.length) return ”;
var idx = items[0].dataIndex;
var total = 0;
var datasets = items[0].chart.data.datasets;
for (var i = 0; i < datasets.length; i++) {
total += (datasets[i].data[idx] || 0);
}
return 'Total: ' + total.toLocaleString();
}
}
}
},
scales: {
x: {
beginAtZero: true,
stacked: true,
ticks: {
font: { size: axisFontSize },
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
},
grid: { color: 'rgba(0,0,0,0.05)' }
},
y: {
stacked: true,
ticks: {
// Bold + brand-red color for the highlighted title's y-axis tick;
// muted gray for everything else when a highlight is active.
font: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return { weight: 'bold', size: axisFontSize };
}
return { size: axisFontSize };
},
color: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return '#b9090b';
}
return '#000000';
}
},
grid: { display: false }
}
}
}
};

if (showLabels && window.ChartDataLabels) {
chartConfig.options.plugins.datalabels = {
anchor: 'center',
align: 'center',
color: '#ffffff',
textStrokeColor: 'rgba(0,0,0,0.4)',
textStrokeWidth: 2,
font: { weight: 'bold', size: dataLabelFontSize },
formatter: function (value) {
if (!value) return '';
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, true);
}
return value;
},
display: function (context) {
// Suppress labels on segments smaller than ~8% of the bar
// so cramped segments stay clean. Tooltips still show the
// exact value on hover.
var value = context.dataset.data[context.dataIndex];
if (typeof value === 'undefined' || value === null || value === 0) return false;
var idx = context.dataIndex;
var total = 0;
var datasets = context.chart.data.datasets;
for (var i = 0; i 0 && (value / total) > 0.08;
}
};
chartConfig.plugins = [ChartDataLabels];
}

chartConfig.plugins = (chartConfig.plugins || []).concat(
window.wonWatermarkPlugin ? [window.wonWatermarkPlugin] : []
);

new Chart(ctx, chartConfig);
}

function ensureChartAndPlugin() {
if (!window.Chart) {
loadScript(‘https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js’, ensureChartAndPlugin);
} else if (showLabels && !window.ChartDataLabels) {
loadScript(‘https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0’, createChart);
} else {
createChart();
}
}

if (document.readyState === ‘loading’) {
document.addEventListener(‘DOMContentLoaded’, ensureChartAndPlugin);
} else {
ensureChartAndPlugin();
}
})();

.netflix-data-chart-container {
position: relative;
margin-bottom: 40px;
}
.netflix-data-chart-container .sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.netflix-data-chart-container canvas {
background-color: #ffffff;
}
}


7. A Toxic Love Story is huge

We don’t often see big Netflix feature docs launch on a Thursday, but that was the case with A Toxic Love Story, and it had a storming start with 18M views, putting it well ahead of comparable English-language titles debuting on the same day. 

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Viewership Comparison – A Toxic Love Story, Aileen: Queen of the Serial Killers, The Murder of Rachel Nickell and I Am Vanessa Guillen (1-week cumulative views)”,
“description”: “Cumulative weekly views for A Toxic Love Story, Aileen: Queen of the Serial Killers, The Murder of Rachel Nickell and I Am Vanessa Guillen on Netflix over 1 weeks. A Toxic Love Story leads the comparison with 18,000,000 cumulative views. Combined total: 38,900,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, viewership, streaming data, Netflix Top 10, weekly views, audience metrics, A Toxic Love Story, Aileen: Queen of the Serial Killers, The Murder of Rachel Nickell, I Am Vanessa Guillen”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Cumulative weekly views (Netflix Top 10)”,
“measurementTechnique”: “Aggregation of Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “1 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”A Toxic Love Story”},
{“@type”:”CreativeWork”,”name”:”Aileen: Queen of the Serial Killers”},
{“@type”:”CreativeWork”,”name”:”The Murder of Rachel Nickell”},
{“@type”:”CreativeWork”,”name”:”I Am Vanessa Guillen”} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_bar_graph_6a691ee906b1c” }
}

Netflix Viewership Comparison – A Toxic Love Story, Aileen: Queen of the Serial Killers, The Murder of Rachel Nickell and I Am Vanessa Guillen (1-week analysis)

Cumulative views over 1 weeks for 4 Netflix titles: A Toxic Love Story, Aileen: Queen of the Serial Killers, The Murder of Rachel Nickell, I Am Vanessa Guillen. Combined total: 38,900,000 views.

Netflix cumulative views ranking for A Toxic Love Story, Aileen: Queen of the Serial Killers, The Murder of Rachel Nickell and I Am Vanessa Guillen over 1 weeks.
Title Opening Week Views Rank
A Toxic Love Story 18,000,000 1
Aileen: Queen of the Serial Killers 10,100,000 2
The Murder of Rachel Nickell 6,100,000 3
I Am Vanessa Guillen 4,700,000 4

(function() {
var showLabels = true;
var titleHighlight = “A Toxic Love Story”;
// Title rendered above the chart in place of the legend (1 week → “Opening Week”).
var chartTitle = “Opening Week Views”;

function loadScript(src, callback) {
var script = document.createElement(‘script’);
script.src = src;
script.onload = callback;
document.head.appendChild(script);
}

function createChart() {
var canvasEl = document.getElementById(‘netflix_bar_graph_6a691ee906b1c’);
var ctx = canvasEl.getContext(‘2d’);

// Detect mobile screen size
var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth 0) {
var perTitle = isSmallMobile ? 38 : (isMobile ? 44 : 50);
var basePad = isSmallMobile ? 80 : (isMobile ? 90 : 100);
var targetH = titleCount * perTitle + basePad;
canvasEl.height = targetH;
canvasEl.style.height = targetH + ‘px’;
}

var chartConfig = {
type: ‘bar’,
data: {
labels: [“A Toxic Love Story”,”Aileen: Queen of the Serial Killers”,”The Murder of Rachel Nickell”,”I Am Vanessa Guillen”],
datasets: [{
label: chartTitle,
data: [18000000,10100000,6100000,4700000],
backgroundColor: [“#000″,”#b9090b”,”#b9090b”,”#b9090b”],
borderColor: [“#000″,”#b9090b”,”#b9090b”,”#b9090b”],
borderWidth: 0,
hoverBackgroundColor: [“#1a1a1a”,”#8a0708″,”#8a0708″,”#8a0708″],
hoverBorderColor: ‘#b9090b’,
hoverBorderWidth: 2,
barPercentage: 0.9,
categoryPercentage: 0.9
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
indexAxis: ‘y’,
layout: {
padding: { bottom: isMobile ? 12 : 24, top: 8 }
},
plugins: {
title: {
display: true,
text: chartTitle,
color: ‘#000000’,
align: ‘start’,
font: {
size: titleFontSize,
weight: ‘bold’
},
padding: { top: 4, bottom: 16 }
},
legend: { display: false },
tooltip: {
backgroundColor: ‘#221f1f’,
titleColor: ‘#b9090b’,
bodyColor: ‘#ffffff’,
titleFont: { weight: ‘bold’, size: 13 },
bodyFont: { size: 13 },
padding: { top: 10, bottom: 10, left: 14, right: 14 },
cornerRadius: 6,
displayColors: false,
borderColor: ‘#b9090b’,
borderWidth: 1,
callbacks: {
label: function(context) {
return context.dataset.label + ‘: ‘ + context.parsed.x.toLocaleString();
}
}
}
},
scales: {
x: {
beginAtZero: true,
ticks: {
font: {
size: axisFontSize
},
// Compact “1.2M” / “789K” ticks on mobile so the
// x-axis doesn’t eat half the chart width.
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
}
},
y: {
ticks: {
// Bold + brand-red color for the highlighted title’s y-axis tick;
// muted gray for everything else when a highlight is active.
font: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return { weight: ‘bold’, size: axisFontSize };
}
return { size: axisFontSize };
},
color: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return ‘#b9090b’;
}
return ‘#000000’;
}
}
}
},
}
};

// Add DataLabels configuration if labels are enabled
if (showLabels && window.ChartDataLabels) {
// Small bars (< 15% of max) get their label floated *above* the bar
// tip in Netflix red, so it never overlaps the red bar and never
// becomes black-on-red. A white text stroke keeps the label
// readable even when the chart sits on a coloured/image background.
var isSmallBar = function(context) {
var value = context.dataset.data[context.dataIndex];
if (typeof value === 'undefined' || value === null) return false;
var maxValue = Math.max.apply(null, context.dataset.data.filter(function(v) {
return v !== null && v !== undefined;
}));
if (!maxValue) return false;
return (value / maxValue) * 100 < 15;
};

chartConfig.options.plugins.datalabels = {
anchor: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
align: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
offset: function(context) {
return isSmallBar(context) ? 4 : 0;
},
color: function(context) {
return isSmallBar(context) ? '#b9090b' : '#fff';
},
textStrokeColor: function(context) {
return isSmallBar(context) ? '#ffffff' : 'rgba(0,0,0,0.35)';
},
textStrokeWidth: 2,
clip: false,
clamp: true,
font: {
weight: 'bold',
size: dataLabelFontSize
},
formatter: function(value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, true);
}
return value;
},
display: function(context) {
var value = context.dataset.data[context.dataIndex];
return typeof value !== 'undefined' && value !== null;
}
};
chartConfig.plugins = [ChartDataLabels];
}

// Always register the watermark plugin (independent of data labels).
chartConfig.plugins = (chartConfig.plugins || []).concat(
window.wonWatermarkPlugin ? [window.wonWatermarkPlugin] : []
);

var chart = new Chart(ctx, chartConfig);
}

function ensureChartAndPlugin() {
if (!window.Chart) {
loadScript('https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0', function() {
createChart();
});
} else {
createChart();
}
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', ensureChartAndPlugin);
} else {
ensureChartAndPlugin();
}
})();

.sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}

.netflix-data-chart-container {
position: relative;
margin-bottom: 40px;
}

.netflix-data-chart-container table {
border-collapse: collapse;
width: 100%;
margin: 10px 0;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
font-weight: bold;
}

/* Dark mode support for netflix bar graph – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.netflix-data-chart-container canvas {
background-color: #ffffff;
}

.netflix-data-chart-container table {
background-color: #ffffff;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
background-color: #ffffff;
color: #333333;
border: 1px solid #ddd;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
color: #333333;
}
}

/* Additional dark mode support for better contrast – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container .sr-only {
color: #333333;
}
}

/* Mobile responsive font sizes */
@media (max-width: 768px) {
.netflix-data-chart-container canvas {
font-size: 12px !important;
}
}

@media (max-width: 480px) {
.netflix-data-chart-container canvas {
font-size: 10px !important;
}
}


8. Elize: Shadows of a Woman from Netflix Brazil

Also having a lot to celebrate is Netflix Brazil, which launched a big new movie on Wednesday, with that being Elize: Shadows of a Woman. That put it high up against other movies debuting from the region on the same day, with only Caramelo being ahead of it. 

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Viewership Comparison – Caramelo, Elize: Shadows of a Woman, Burning Betrayal, Christmas Full of Grace, Overhaul and 6 more Netflix titles (1-week cumulative views)”,
“description”: “Cumulative weekly views for Caramelo, Elize: Shadows of a Woman, Burning Betrayal, Christmas Full of Grace, Overhaul and 6 more Netflix titles on Netflix over 1 weeks. Caramelo leads the comparison with 17,300,000 cumulative views. Combined total: 95,700,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, viewership, streaming data, Netflix Top 10, weekly views, audience metrics, Caramelo, Elize: Shadows of a Woman, Burning Betrayal, Christmas Full of Grace, Overhaul, State of Fear, Bionic, The Secret Diary of an Exchange Student”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Cumulative weekly views (Netflix Top 10)”,
“measurementTechnique”: “Aggregation of Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “1 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”Caramelo”},
{“@type”:”CreativeWork”,”name”:”Elize: Shadows of a Woman”},
{“@type”:”CreativeWork”,”name”:”Burning Betrayal”},
{“@type”:”CreativeWork”,”name”:”Christmas Full of Grace”},
{“@type”:”CreativeWork”,”name”:”Overhaul”},
{“@type”:”CreativeWork”,”name”:”State of Fear”},
{“@type”:”CreativeWork”,”name”:”Bionic”},
{“@type”:”CreativeWork”,”name”:”The Secret Diary of an Exchange Student”},
{“@type”:”CreativeWork”,”name”:”Confessions of an Invisible Girl”},
{“@type”:”CreativeWork”,”name”:”Cheers to Life”} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_bar_graph_6a691ee906bc1” }
}

Netflix Viewership Comparison – Caramelo, Elize: Shadows of a Woman, Burning Betrayal, Christmas Full of Grace, Overhaul and 6 more Netflix titles (1-week analysis)

Cumulative views over 1 weeks for 11 Netflix titles: Caramelo, Elize: Shadows of a Woman, Burning Betrayal, Christmas Full of Grace, Overhaul, State of Fear, Bionic, The Secret Diary of an Exchange Student, Confessions of an Invisible Girl, Cheers to Life, The Son of a Thousand Men. Combined total: 95,700,000 views.

Netflix cumulative views ranking for Caramelo, Elize: Shadows of a Woman, Burning Betrayal, Christmas Full of Grace, Overhaul and 6 more Netflix titles over 1 weeks.
Title Opening Week Views Rank
Caramelo 17,300,000 1
Elize: Shadows of a Woman 16,200,000 2
Burning Betrayal 14,700,000 3
Christmas Full of Grace 8,800,000 4
Overhaul 8,500,000 5
State of Fear 8,000,000 6
Bionic 7,000,000 7
The Secret Diary of an Exchange Student 4,900,000 8
Confessions of an Invisible Girl 4,600,000 9
Cheers to Life 4,100,000 10
The Son of a Thousand Men 1,600,000 11

(function() {
var showLabels = true;
var titleHighlight = “Elize: Shadows of a Woman”;
// Title rendered above the chart in place of the legend (1 week → “Opening Week”).
var chartTitle = “Opening Week Views”;

function loadScript(src, callback) {
var script = document.createElement(‘script’);
script.src = src;
script.onload = callback;
document.head.appendChild(script);
}

function createChart() {
var canvasEl = document.getElementById(‘netflix_bar_graph_6a691ee906bc1’);
var ctx = canvasEl.getContext(‘2d’);

// Detect mobile screen size
var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth 0) {
var perTitle = isSmallMobile ? 38 : (isMobile ? 44 : 50);
var basePad = isSmallMobile ? 80 : (isMobile ? 90 : 100);
var targetH = titleCount * perTitle + basePad;
canvasEl.height = targetH;
canvasEl.style.height = targetH + ‘px’;
}

var chartConfig = {
type: ‘bar’,
data: {
labels: [“Caramelo”,”Elize: Shadows of a Woman”,”Burning Betrayal”,”Christmas Full of Grace”,”Overhaul”,”State of Fear”,”Bionic”,”The Secret Diary of an Exchange Student”,”Confessions of an Invisible Girl”,”Cheers to Life”,”The Son of a Thousand Men”],
datasets: [{
label: chartTitle,
data: [17300000,16200000,14700000,8800000,8500000,8000000,7000000,4900000,4600000,4100000,1600000],
backgroundColor: [“#b9090b”,”#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderColor: [“#b9090b”,”#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderWidth: 0,
hoverBackgroundColor: [“#8a0708″,”#1a1a1a”,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″],
hoverBorderColor: ‘#b9090b’,
hoverBorderWidth: 2,
barPercentage: 0.9,
categoryPercentage: 0.9
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
indexAxis: ‘y’,
layout: {
padding: { bottom: isMobile ? 12 : 24, top: 8 }
},
plugins: {
title: {
display: true,
text: chartTitle,
color: ‘#000000’,
align: ‘start’,
font: {
size: titleFontSize,
weight: ‘bold’
},
padding: { top: 4, bottom: 16 }
},
legend: { display: false },
tooltip: {
backgroundColor: ‘#221f1f’,
titleColor: ‘#b9090b’,
bodyColor: ‘#ffffff’,
titleFont: { weight: ‘bold’, size: 13 },
bodyFont: { size: 13 },
padding: { top: 10, bottom: 10, left: 14, right: 14 },
cornerRadius: 6,
displayColors: false,
borderColor: ‘#b9090b’,
borderWidth: 1,
callbacks: {
label: function(context) {
return context.dataset.label + ‘: ‘ + context.parsed.x.toLocaleString();
}
}
}
},
scales: {
x: {
beginAtZero: true,
ticks: {
font: {
size: axisFontSize
},
// Compact “1.2M” / “789K” ticks on mobile so the
// x-axis doesn’t eat half the chart width.
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
}
},
y: {
ticks: {
// Bold + brand-red color for the highlighted title’s y-axis tick;
// muted gray for everything else when a highlight is active.
font: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return { weight: ‘bold’, size: axisFontSize };
}
return { size: axisFontSize };
},
color: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return ‘#b9090b’;
}
return ‘#000000’;
}
}
}
},
}
};

// Add DataLabels configuration if labels are enabled
if (showLabels && window.ChartDataLabels) {
// Small bars (< 15% of max) get their label floated *above* the bar
// tip in Netflix red, so it never overlaps the red bar and never
// becomes black-on-red. A white text stroke keeps the label
// readable even when the chart sits on a coloured/image background.
var isSmallBar = function(context) {
var value = context.dataset.data[context.dataIndex];
if (typeof value === 'undefined' || value === null) return false;
var maxValue = Math.max.apply(null, context.dataset.data.filter(function(v) {
return v !== null && v !== undefined;
}));
if (!maxValue) return false;
return (value / maxValue) * 100 < 15;
};

chartConfig.options.plugins.datalabels = {
anchor: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
align: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
offset: function(context) {
return isSmallBar(context) ? 4 : 0;
},
color: function(context) {
return isSmallBar(context) ? '#b9090b' : '#fff';
},
textStrokeColor: function(context) {
return isSmallBar(context) ? '#ffffff' : 'rgba(0,0,0,0.35)';
},
textStrokeWidth: 2,
clip: false,
clamp: true,
font: {
weight: 'bold',
size: dataLabelFontSize
},
formatter: function(value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, true);
}
return value;
},
display: function(context) {
var value = context.dataset.data[context.dataIndex];
return typeof value !== 'undefined' && value !== null;
}
};
chartConfig.plugins = [ChartDataLabels];
}

// Always register the watermark plugin (independent of data labels).
chartConfig.plugins = (chartConfig.plugins || []).concat(
window.wonWatermarkPlugin ? [window.wonWatermarkPlugin] : []
);

var chart = new Chart(ctx, chartConfig);
}

function ensureChartAndPlugin() {
if (!window.Chart) {
loadScript('https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0', function() {
createChart();
});
} else {
createChart();
}
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', ensureChartAndPlugin);
} else {
ensureChartAndPlugin();
}
})();

.sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}

.netflix-data-chart-container {
position: relative;
margin-bottom: 40px;
}

.netflix-data-chart-container table {
border-collapse: collapse;
width: 100%;
margin: 10px 0;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
font-weight: bold;
}

/* Dark mode support for netflix bar graph – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.netflix-data-chart-container canvas {
background-color: #ffffff;
}

.netflix-data-chart-container table {
background-color: #ffffff;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
background-color: #ffffff;
color: #333333;
border: 1px solid #ddd;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
color: #333333;
}
}

/* Additional dark mode support for better contrast – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container .sr-only {
color: #333333;
}
}

/* Mobile responsive font sizes */
@media (max-width: 768px) {
.netflix-data-chart-container canvas {
font-size: 12px !important;
}
}

@media (max-width: 480px) {
.netflix-data-chart-container canvas {
font-size: 10px !important;
}
}


9. The Truthers from Netflix Spain

Not quite as much to celebrate for Netflix Spain, which saw its new movie The Truthers debut towards the bottom of the pack of its mid-performing movies released on a Friday:

{
“@context”: “https://schema.org”,
“@type”: “Dataset”,
“name”: “Netflix Viewership Comparison – Bad Influence, A Widow’s Game, The Marked Woman, Firebreak, The Truthers and 2 more Netflix titles (1-week cumulative views)”,
“description”: “Cumulative weekly views for Bad Influence, A Widow’s Game, The Marked Woman, Firebreak, The Truthers and 2 more Netflix titles on Netflix over 1 weeks. Bad Influence leads the comparison with 16,900,000 cumulative views. Combined total: 56,600,000 views. Data sourced from Netflix’s official Top 10 engagement reports.”,
“license”: “https://www.whats-on-netflix.com/corrections-policy/”,
“keywords”: “Netflix, viewership, streaming data, Netflix Top 10, weekly views, audience metrics, Bad Influence, A Widow’s Game, The Marked Woman, Firebreak, The Truthers, 53 Sundays, She Walks in Darkness”,
“creator”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“publisher”: {
“@type”: “Organization”,
“name”: “What’s on Netflix”,
“url”: “https://www.whats-on-netflix.com/”
},
“datePublished”: “2026-07-28”,
“dateModified”: “2026-07-28”,
“variableMeasured”: “Cumulative weekly views (Netflix Top 10)”,
“measurementTechnique”: “Aggregation of Netflix’s official weekly Top 10 engagement reports”,
“temporalCoverage”: “1 weeks”,
“spatialCoverage”: “Global”,
“isAccessibleForFree”: true,
“about”: [
{“@type”:”CreativeWork”,”name”:”Bad Influence”},
{“@type”:”CreativeWork”,”name”:”A Widow’s Game”},
{“@type”:”CreativeWork”,”name”:”The Marked Woman”},
{“@type”:”CreativeWork”,”name”:”Firebreak”},
{“@type”:”CreativeWork”,”name”:”The Truthers”},
{“@type”:”CreativeWork”,”name”:”53 Sundays”},
{“@type”:”CreativeWork”,”name”:”She Walks in Darkness”} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_bar_graph_6a691ee906c6a” }
}

Netflix Viewership Comparison – Bad Influence, A Widow's Game, The Marked Woman, Firebreak, The Truthers and 2 more Netflix titles (1-week analysis)

Cumulative views over 1 weeks for 7 Netflix titles: Bad Influence, A Widow's Game, The Marked Woman, Firebreak, The Truthers, 53 Sundays, She Walks in Darkness. Combined total: 56,600,000 views.

Netflix cumulative views ranking for Bad Influence, A Widow's Game, The Marked Woman, Firebreak, The Truthers and 2 more Netflix titles over 1 weeks.
Title Opening Week Views Rank
Bad Influence 16,900,000 1
A Widow's Game 15,400,000 2
The Marked Woman 6,600,000 3
Firebreak 6,100,000 4
The Truthers 6,000,000 5
53 Sundays 2,900,000 6
She Walks in Darkness 2,700,000 7

(function() {
var showLabels = true;
var titleHighlight = “The Truthers”;
// Title rendered above the chart in place of the legend (1 week → “Opening Week”).
var chartTitle = “Opening Week Views”;

function loadScript(src, callback) {
var script = document.createElement(‘script’);
script.src = src;
script.onload = callback;
document.head.appendChild(script);
}

function createChart() {
var canvasEl = document.getElementById(‘netflix_bar_graph_6a691ee906c6a’);
var ctx = canvasEl.getContext(‘2d’);

// Detect mobile screen size
var isMobile = window.innerWidth <= 768;
var isSmallMobile = window.innerWidth 0) {
var perTitle = isSmallMobile ? 38 : (isMobile ? 44 : 50);
var basePad = isSmallMobile ? 80 : (isMobile ? 90 : 100);
var targetH = titleCount * perTitle + basePad;
canvasEl.height = targetH;
canvasEl.style.height = targetH + ‘px’;
}

var chartConfig = {
type: ‘bar’,
data: {
labels: [“Bad Influence”,”A Widow’s Game”,”The Marked Woman”,”Firebreak”,”The Truthers”,”53 Sundays”,”She Walks in Darkness”],
datasets: [{
label: chartTitle,
data: [16900000,15400000,6600000,6100000,6000000,2900000,2700000],
backgroundColor: [“#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#000″,”#b9090b”,”#b9090b”],
borderColor: [“#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#000″,”#b9090b”,”#b9090b”],
borderWidth: 0,
hoverBackgroundColor: [“#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#1a1a1a”,”#8a0708″,”#8a0708″],
hoverBorderColor: ‘#b9090b’,
hoverBorderWidth: 2,
barPercentage: 0.9,
categoryPercentage: 0.9
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
indexAxis: ‘y’,
layout: {
padding: { bottom: isMobile ? 12 : 24, top: 8 }
},
plugins: {
title: {
display: true,
text: chartTitle,
color: ‘#000000’,
align: ‘start’,
font: {
size: titleFontSize,
weight: ‘bold’
},
padding: { top: 4, bottom: 16 }
},
legend: { display: false },
tooltip: {
backgroundColor: ‘#221f1f’,
titleColor: ‘#b9090b’,
bodyColor: ‘#ffffff’,
titleFont: { weight: ‘bold’, size: 13 },
bodyFont: { size: 13 },
padding: { top: 10, bottom: 10, left: 14, right: 14 },
cornerRadius: 6,
displayColors: false,
borderColor: ‘#b9090b’,
borderWidth: 1,
callbacks: {
label: function(context) {
return context.dataset.label + ‘: ‘ + context.parsed.x.toLocaleString();
}
}
}
},
scales: {
x: {
beginAtZero: true,
ticks: {
font: {
size: axisFontSize
},
// Compact “1.2M” / “789K” ticks on mobile so the
// x-axis doesn’t eat half the chart width.
callback: function (value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, isMobile);
}
return value;
}
}
},
y: {
ticks: {
// Bold + brand-red color for the highlighted title’s y-axis tick;
// muted gray for everything else when a highlight is active.
font: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return { weight: ‘bold’, size: axisFontSize };
}
return { size: axisFontSize };
},
color: function (context) {
var label = context.tick && context.tick.label;
if (titleHighlight && label === titleHighlight) {
return ‘#b9090b’;
}
return ‘#000000’;
}
}
}
},
}
};

// Add DataLabels configuration if labels are enabled
if (showLabels && window.ChartDataLabels) {
// Small bars (< 15% of max) get their label floated *above* the bar
// tip in Netflix red, so it never overlaps the red bar and never
// becomes black-on-red. A white text stroke keeps the label
// readable even when the chart sits on a coloured/image background.
var isSmallBar = function(context) {
var value = context.dataset.data[context.dataIndex];
if (typeof value === 'undefined' || value === null) return false;
var maxValue = Math.max.apply(null, context.dataset.data.filter(function(v) {
return v !== null && v !== undefined;
}));
if (!maxValue) return false;
return (value / maxValue) * 100 < 15;
};

chartConfig.options.plugins.datalabels = {
anchor: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
align: function(context) {
return isSmallBar(context) ? 'end' : 'center';
},
offset: function(context) {
return isSmallBar(context) ? 4 : 0;
},
color: function(context) {
return isSmallBar(context) ? '#b9090b' : '#fff';
},
textStrokeColor: function(context) {
return isSmallBar(context) ? '#ffffff' : 'rgba(0,0,0,0.35)';
},
textStrokeWidth: 2,
clip: false,
clamp: true,
font: {
weight: 'bold',
size: dataLabelFontSize
},
formatter: function(value) {
if (window.wonCompactNumber) {
return window.wonCompactNumber(value, true);
}
return value;
},
display: function(context) {
var value = context.dataset.data[context.dataIndex];
return typeof value !== 'undefined' && value !== null;
}
};
chartConfig.plugins = [ChartDataLabels];
}

// Always register the watermark plugin (independent of data labels).
chartConfig.plugins = (chartConfig.plugins || []).concat(
window.wonWatermarkPlugin ? [window.wonWatermarkPlugin] : []
);

var chart = new Chart(ctx, chartConfig);
}

function ensureChartAndPlugin() {
if (!window.Chart) {
loadScript('https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0', function() {
createChart();
});
} else {
createChart();
}
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', ensureChartAndPlugin);
} else {
ensureChartAndPlugin();
}
})();

.sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}

.netflix-data-chart-container {
position: relative;
margin-bottom: 40px;
}

.netflix-data-chart-container table {
border-collapse: collapse;
width: 100%;
margin: 10px 0;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
font-weight: bold;
}

/* Dark mode support for netflix bar graph – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.netflix-data-chart-container canvas {
background-color: #ffffff;
}

.netflix-data-chart-container table {
background-color: #ffffff;
}

.netflix-data-chart-container th,
.netflix-data-chart-container td {
background-color: #ffffff;
color: #333333;
border: 1px solid #ddd;
}

.netflix-data-chart-container th {
background-color: #f2f2f2;
color: #333333;
}
}

/* Additional dark mode support for better contrast – mobile only */
@media (prefers-color-scheme: dark) and (max-width: 768px) {
.netflix-data-chart-container .sr-only {
color: #333333;
}
}

/* Mobile responsive font sizes */
@media (max-width: 768px) {
.netflix-data-chart-container canvas {
font-size: 12px !important;
}
}

@media (max-width: 480px) {
.netflix-data-chart-container canvas {
font-size: 10px !important;
}
}


Full Netflix Top 10s for July 20th to July 26th, 2026

English TV

Rank Title Hours Views Week #
1 I Will Find You: Limited Series 40,100,000 (-17.32%) 7,300,000 6
2 The Hawk: Season 1 32,000,000 (29.55%) 6,200,000 2
3 Ransom Canyon: Season 2 25,500,000 4,100,000 1
4 Little House on the Prairie: Season 1 26,300,000 (-59.54%) 4,000,000 3
5 The Ultimatum: Marry or Move On: Season 4 21,800,000 (68.99%) 2,600,000 2
6 Raw: July 20, 2026 4,100,000 (-19.61%) 2,400,000 1
7 Avatar: The Last Airbender: Season 2 17,100,000 (-32.14%) 2,300,000 5
8 Salish & Jordan Matter: Season 2 4,700,000 (-9.62%) 2,100,000 5
9 Worst Neighbor Ever: Season 1 7,100,000 (-43.20%) 1,900,000 4
10 Stokes Twins: Season 1 4,900,000 1,500,000 1

English Film

Rank Title Hours Views Week #
1 72 HOURS 38,700,000 22,100,000 1
2 A Toxic Love Story 27,300,000 18,000,000 1
3 Sniper: No Nation 8,400,000 (64.71%) 5,300,000 2
4 Voicemails for Isabelle 9,100,000 (-18.75%) 4,600,000 6
5 Quarantine 2: Terminal 6,000,000 4,200,000 1
6 Ordinary Angels 8,100,000 4,100,000 1
7 KPop Demon Hunters 6,100,000 (7.02%) 3,700,000 58
8 Swapped 5,700,000 3,400,000 11
9 War Machine 5,900,000 3,200,000 9
10 Monsters vs. Aliens 4,800,000 3,000,000 1

Non-English TV

Rank Title Hours Views Week #
1 Elite Force: Season 1 49,600,000 10,100,000 1
2 The East Palace: Limited Series 55,200,000 (67.78%) 8,100,000 2
3 Agent Kim Reactivated: Limited Series 80,300,000 (11.53%) 7,300,000 5
4 My Daughter’s Father: Season 1 38,200,000 5,200,000 1
5 Spooky in Love: Limited Series 17,000,000 (385.71%) 4,200,000 2
6 The Map of Longing: Limited Series 14,900,000 (122.39%) 3,300,000 2
7 Teach You a Lesson: Limited Series 24,300,000 (-22.61%) 2,300,000 8
8 The Apartment Job: Limited Series 11,100,000 (0.00%) 2,000,000 3
9 The Polygamist: Season 1 17,800,000 (-30.47%) 1,800,000 7
10 Jujutsu Kaisen: Season 3 7,400,000 1,500,000 6

Non-English Film

Rank Title Hours Views Week #
1 Elize: Shadows of a Woman 25,100,000 16,200,000 1
2 Desire 24,300,000 (15.71%) 14,900,000 2
3 The Debt Collector 16,900,000 7,600,000 1
4 The Truthers 10,600,000 6,000,000 1
5 23 000 Lives 11,100,000 (76.19%) 5,800,000 2
6 Ikka 5,000,000 (-66.67%) 2,100,000 3
7 Love in Slow Motion 2,600,000 1,700,000 1
8 Nothing to Lose 2,400,000 (-79.49%) 1,400,000 3
9 Suzzanna: Witchcraft 2,800,000 1,200,000 1
10 The Marked Woman 2,200,000 (-21.43%) 1,200,000 8

That’s it for this week – we’ll be back again next Tuesday with another rundown of the Netflix top 10s!

Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
Previous ArticleThe Odyssey criticism: Why Emily Wilson’s pan won’t sink Oscar fortunes
Next Article Michael C. Hall Returns in ‘Dexter: Resurrection’ Season 2 Photos: See Who Else Is Back!
Williams M
  • Website

Related Posts

All Five ‘Twilight’ Movies and ‘Dune: Part Two’ Are Now Streaming on Netflix UK

September 11, 2026

Sweet Magnolias star reacts to cancellation of Ransom Canyon as fans wait for season 6 update

September 11, 2026

The 10 Best Netflix Original Musicals (And Why ‘Emilia Pérez’ Didn’t Make the Cut)

September 11, 2026

5 best sci-fi films on Netflix to check out right now

September 11, 2026

9/11 Documentaries and Movies on Netflix: Watch Guide for 25th Anniversary

September 11, 2026

Roku’s The Roku Channel Continues To Grow & Is Now The 4th Largest Streaming Service In The United States

September 11, 2026
Add A Comment
Leave A Reply Cancel Reply

Demo
Our Picks

Watching Wonder Woman 1984 with an HBO Max Free Trial?

January 13, 2021

Wonder Woman Vs. Supergirl: Who Would Win

January 13, 2021

PS Offering 10 More Games for Free, Including Horizon Zero

January 13, 2021

Can You Guess What Object Video Game Designers Find Hardest to Make?

January 13, 2021
  • Facebook
  • Twitter
  • Pinterest
  • Instagram
  • YouTube
  • Vimeo
Don't Miss
Netflix

All Five ‘Twilight’ Movies and ‘Dune: Part Two’ Are Now Streaming on Netflix UK

By Williams MSeptember 11, 2026

Picture Credit; Lionsgate Welcome to your end-of-week roundup of everything new on Netflix UK, and…

Toronto Film Festival Oscar analysis, Robert Pattinson, Kate O’Flynn

September 11, 2026

The Best Widow’s Bay Merch & Gifts

September 11, 2026

Prime Video’s New Space Opera Sci-Fi Is Officially Losing Its Chart-Topping Status

September 11, 2026

Subscribe to Updates

Get the latest creative news from SmartMag about art & design.

Facebook X (Twitter) Instagram Pinterest
  • Contact Us
  • About Us
  • Privacy Policy
  • Terms and Conditions
  • Disclaimer
© 2026 All right reserved

Type above and press Enter to search. Press Esc to cancel.

Powered by
►
Necessary cookies enable essential site features like secure log-ins and consent preference adjustments. They do not store personal data.
None
►
Functional cookies support features like content sharing on social media, collecting feedback, and enabling third-party tools.
None
►
Analytical cookies track visitor interactions, providing insights on metrics like visitor count, bounce rate, and traffic sources.
None
►
Advertisement cookies deliver personalized ads based on your previous visits and analyze the effectiveness of ad campaigns.
None
►
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
None
Powered by