Tuesday, June 30, 2026
HomeNetflix NewsNetflix Top 10s: Harlan Coben’s ‘I Will Find You’ Nears ‘Fool Me...

Netflix Top 10s: Harlan Coben’s ‘I Will Find You’ Nears ‘Fool Me Once’ Records as New Comedy ‘Little Brother’ Lands

- Advertisment -

little brother i will find you netflix top 10 report

Picture Credit: Netflix

Welcome to your weekly breakdown of the biggest hits, misses, and surprises in the Netflix Top 10s. This week, we’re diving into the global viewing data for the week ending June 28th, 2026. It is a week of fascinating contrasts on the charts. While some massive, highly anticipated properties are struggling to find their footing, word-of-mouth is doing the heavy lifting for a few sleeper hits, resulting in some incredibly rare second-week viewing bumps.

In this week’s report, we’ll break down the respectable debut of a new R-rated comedy, look at Harlan Coben’s continued (and practically ironclad) dominance on the TV charts, and track an animated giant that is officially knocking on the door of the all-time Top 10 list.

Before we dive into the biggest winners of the week, let’s quickly address the elephant in the room. If you’re looking for our report on Avatar: The Last Airbender, which tanked in week 1 compared to the first season several years ago, we’ve done a story on that and how the early tea leaves of poor performance were clear.

A few big no-shows this week, with the biggest probably being In The Hand of Dante, suggesting it got less than 2.7M views. Some have pointed out that it was a weird pickup for Netflix, given that the entire thing leaked and received poor reviews when it debuted. Worse still, the movie barely featured in the daily top 10s with FlixPatrol recording entries in Romania, Serbia, Slovakia, Spain, and Ukraine only. 

On the doc side, Chris & Martina: The Final Set was a no-show, as was The American Experiment, Rhythm + Flow Italy S3, and Ryan Hamilton: This Just Hit Me.


1. Little Brother Debuts OK For A Pure Comedy 

"Two men outdoors: one wears a colorful shirt, head bandage, and neck brace, holding a can, looking surprised; the other in a tan jacket and white shirt, looking serious. Urban background with greenery and brownstone building."

Little Brother. (L to R) John Cena as Rudd, Eric Andre as Marcus in Little Brother. Cr. Clifton Prescod/Netflix © 2026

A big new R-rated comedy just touched down on Netflix, but it didn’t manage to top the movie charts, instead coming in a distant second. Ultimately, the movie pulled in 14M views from its 23.4M hours watched, which places it towards the bottom of the 2026 releases: 

(function () {
if (!window.wonWatermarkPlugin) !Chart.defaults

// 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)
bodyFont = getComputedStyle(document.body).fontFamily
try 0);
catch (e) 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;

// Manual fallback for browsers without Intl compact notation support.
var abs = Math.abs(n);
var divisor, suffix;
if (abs >= 1e9)
total += (datasets[i].data[idx]
else if (abs >= 1e6) 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;

else if (abs >= 1e3)
total += (datasets[i].data[idx]
else
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 (document.readyState === ‘loading’) 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;
else 0);

})();

(function() {
var showLabels = true;
var titleHighlight = “Little Brother”;
// 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_6a4436f137e2c’);
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”,”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,20900000,17500000,17200000,15500000,14000000,12500000,11900000,10400000,8800000],
backgroundColor: [“#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderColor: [“#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderWidth: 0,
hoverBackgroundColor: [“#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#1a1a1a”,”#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/[email protected]/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/[email protected]', 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;
}
}

But how does it stack up against pure comedies? It does much better and ranks more in line with the “pure” comedies, without the IP of Happy Gilmore or the action component of Back in Action

(function() {
var showLabels = true;
var titleHighlight = “Little Brother”;
// 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_6a4436f137edb’);
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″,”Nonnas”,”Little Brother”,”Ladies First”,”Incoming”,”Roommates”,”Unfrosted”],
datasets: [{
label: chartTitle,
data: [46800000,46700000,15300000,14000000,11900000,9900000,8800000,7100000],
backgroundColor: [“#b9090b”,”#b9090b”,”#b9090b”,”#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderColor: [“#b9090b”,”#b9090b”,”#b9090b”,”#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderWidth: 0,
hoverBackgroundColor: [“#8a0708″,”#8a0708″,”#8a0708″,”#1a1a1a”,”#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/[email protected]/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/[email protected]', 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. Voicemails for Isabelle in Week 2

While in week 1, Voicemails for Isabelle were “above average”, week 2 was pretty impressive with viewing hours up 77% thanks to strong reviews, word of mouth, and some viral clips we’ve seen floating about, no doubt pushing people towards it. Stacked up against many other titles in the genre, you can see that it’s had an incredibly strong second week with only A Family Affair toppling it. Out of nowhere, this has become a big romance hit for Netflix, even comfortably beating People We Meet on Vacation, which Netflix internally put more weight on being a big hit. 

(function () {
var showLabels = true;
var titleHighlight = “Voicemails for Isabelle”;

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_6a4436f137f58’);
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: [“A Family Affair”,”Your Place or Mine”,”Mother of the Bride”,”Voicemails for Isabelle”,”Office Romance”,”Irish Wish”,”People We Meet on Vacation”,”Ladies First”,”Find Me Falling”,”Love at First Sight”,”Lonely Planet”,”Happiness for Beginners”,”A Tourist’s Guide to Love”,”French Lover”,”The Perfect Find”],
datasets: [{“label”:”Week 1″,”data”:[26800000,27700000,26700000,17500000,20900000,19500000,17200000,11900000,14400000,14100000,11000000,9300000,8400000,8100000,7000000],”backgroundColor”:[“#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090b”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”],”borderWidth”:0,”barPercentage”:0.90000000000000002220446049250313080847263336181640625,”categoryPercentage”:0.90000000000000002220446049250313080847263336181640625},{“label”:”Week 2″,”data”:[31900000,29100000,25400000,31000000,24600000,25500000,23300000,18800000,16100000,15200000,13700000,13100000,13100000,12300000,11000000],”backgroundColor”:[“#900608CC”,”#900608CC”,”#900608CC”,”#900608″,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#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/[email protected]/dist/chart.umd.min.js’, ensureChartAndPlugin);
} else if (showLabels && !window.ChartDataLabels) {
loadScript(‘https://cdn.jsdelivr.net/npm/[email protected]’, 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;
}
}


3. I Will Find You 

IWILLFINDYOU 102 250501 CK 00416 R2

I Will Find You. (L to R) Sam Worthington as David Burroughs and Britt Lower as Rachel Mills in Episode #102 of I Will Find You. Cr. Christos Kalohoridis/NETFLIX © 2025

Harlan Coben fatigue? That’s still a long way away, apparently. The series is still going gangbusters in week 2, with another 34.1M views, bringing its total to 58.1 M. That’s still a bit behind Adolescence when it comes to the biggest limited series of all time, but the runtime of that show gives it a huge leg up. Either way – this is huge.  

(function () {
var showLabels = true;
var titleHighlight = “I Will Find You”;

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_6a4436f1380af’);
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: [“Adolescence”,”I Will Find You”,”The Watcher”,”Queen Charlotte: A Bridgerton Story”,”The Perfect Couple”,”Griselda”,”Zero Day”,”Sirens”,”The Witness”,”The Madness”,”Black Rabbit”,”The Brothers Sun”,”Toxic Town”],
datasets: [{“label”:”Week 1″,”data”:[24300000,24000000,22300000,22900000,20300000,20600000,19100000,16700000,13200000,9300000,6600000,4100000,4800000],”backgroundColor”:[“#b9090bCC”,”#b9090b”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”],”borderWidth”:0,”barPercentage”:0.90000000000000002220446049250313080847263336181640625,”categoryPercentage”:0.90000000000000002220446049250313080847263336181640625},{“label”:”Week 2″,”data”:[42000000,34100000,26400000,24500000,21900000,20600000,17900000,18200000,10100000,13300000,7000000,6900000,4700000],”backgroundColor”:[“#900608CC”,”#900608″,”#900608CC”,”#900608CC”,”#900608CC”,”#900608CC”,”#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/[email protected]/dist/chart.umd.min.js’, ensureChartAndPlugin);
} else if (showLabels && !window.ChartDataLabels) {
loadScript(‘https://cdn.jsdelivr.net/npm/[email protected]’, 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;
}
}

As we mentioned last week, we can’t do many accurate comparisons against previous Coben series because they were given extraordinary release dates, which makes 1:1 comparisons hard. That said, if we do stack them up, noting that a few had more days to get views in their opening week, we can see I Will Find You is on an absolute tear and fast approaching overtaking Fool Me Once. The biggest question we now have: why did it take so long for a US adaptation!? 

document.addEventListener(‘DOMContentLoaded’, function () {
var ctx = document.getElementById(‘cumulativeChart_6a4436f138103’).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;
}
}


4. Sweet Magnolias in Week 3

Sweet Mangolias stuck around in the top 10s for a third week (something we weren’t expecting, honestly) with a drop of viewing hours of 42% – season 4 couldn’t manage that, but ultimately this one now lies with the Netflix Gods and the completion rate, which should hopefully get the series over the line for a finale of some description. 

document.addEventListener(‘DOMContentLoaded’, function () {
var ctx = document.getElementById(‘cumulativeChart_6a4436f13816c’).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;
}
}


5. Oasis Gets a Huge Boost in Week 2

The Spanish teen drama Oasis debuted pretty poorly last week, but it had a huge rise in week 2, with viewing hours jumping up 228%! That rockets it up the chart compared to other titles from Spain, but ultimately it is still hampered by being slow out of the gate. Hopefully it can continue momentum and secure a season 2 renewal. 

(function () {
var showLabels = true;
var titleHighlight = “Oasis – 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_6a4436f138200’);
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: [“Welcome to Eden – Season 1″,”Billionaires Bunker”,”Breathless – Season 1″,”Olympo”,”Oasis – Season 1″,”Sky High: The Series”,”Gangs of Galicia – Season 1″,”The Ladys Companion”,”1992″,”Rotten Legacy”,”Salvador”,”The Girl in the Mirror”],
datasets: [{“label”:”Week 1″,”data”:[4700000,3700000,3800000,3200000,2100000,3700000,2900000,2600000,2100000,2200000,1200000,1100000],”backgroundColor”:[“#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090b”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”,”#b9090bCC”],”borderWidth”:0,”barPercentage”:0.90000000000000002220446049250313080847263336181640625,”categoryPercentage”:0.90000000000000002220446049250313080847263336181640625},{“label”:”Week 2″,”data”:[11400000,10300000,6400000,6900000,7000000,5400000,6000000,4900000,3600000,2700000,3600000,2400000],”backgroundColor”:[“#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/[email protected]/dist/chart.umd.min.js’, ensureChartAndPlugin);
} else if (showLabels && !window.ChartDataLabels) {
loadScript(‘https://cdn.jsdelivr.net/npm/[email protected]’, 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. Agent Kim Reactivated From Netflix South Korea

agent kim reactivated netflix preview

Picture Credit: Netflix

A new Friday means a new K-drama series, and this week, we got a new limited series that’ll be dropping episodes weekly. It’s another success with 6.6M views placing it above most other weekly releases from prior years. That’s two massive ongoing hits right now, with Teach You a Lesson also still going strong in the top 10s in week 4. 

(function() {
var showLabels = true;
var titleHighlight = “Agent Kim Reactivated”;
// 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_6a4436f13829a’);
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: [“Agent Kim Reactivated”,”When Life Gives You Tangerines”,”My Demon”,”No Tail to Tell”,”Still Shining”],
datasets: [{
label: chartTitle,
data: [6600000,3600000,3000000,2100000,1500000],
backgroundColor: [“#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderColor: [“#000″,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”],
borderWidth: 0,
hoverBackgroundColor: [“#1a1a1a”,”#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/[email protected]/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/[email protected]', 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;
}
}


7. Another Self From Netflix Turkey

We nearly had a perfect comparison from season to season, but alas, Netflix opted to release the third season on Wednesday rather than Thursday for seasons 1 and 2. With that caveat, season 3 looks on paper like it did a bit better than season 2, but in reality, it was probably net square, which is still a remarkable hold for a show like this. 

(function() {
var showLabels = true;
var titleHighlight = “Another Self – Season 3”;
// 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_6a4436f1382f9’);
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: [“Another Self – Season 1″,”Another Self – Season 3″,”Another Self – Season 2”],
datasets: [{
label: chartTitle,
data: [2600000,2400000,2100000],
backgroundColor: [“#b9090b”,”#000″,”#b9090b”],
borderColor: [“#b9090b”,”#000″,”#b9090b”],
borderWidth: 0,
hoverBackgroundColor: [“#8a0708″,”#1a1a1a”,”#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/[email protected]/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/[email protected]', 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. Notes from The Last Row from Netflix South Korea

Not only did Agent Kim drop from South Korea, but we also got the complete release of Notes from The Last Row, which looks like it was overshadowed completely, ranking right towards the bottom of the list. 

(function() {
var showLabels = true;
var titleHighlight = “Notes from the Last Row”;
// 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_6a4436f138363’);
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: [“Teach You a Lesson”,”My Name”,”Parasyte: The Grey”,”The Trauma Code: Heroes on Call”,”Can This Love Be Translated?”,”The Art of Sarah”,”Cashero”,”The Silent Sea”,”Karma”,”Narco-Saints”,”Trigger”,”If Wishes Could Kill”,”Doona!”,”Mask Girl”,”The WONDERfools”,”Boyfriend on Demand”,”As You Stood By”,”The Price of Confession”,”Dear Hongrang”,”Notes from the Last Row”],
datasets: [{
label: chartTitle,
data: [6400000,6300000,6300000,4700000,4000000,3800000,3800000,3700000,3600000,3200000,2900000,2800000,2800000,2800000,2700000,2600000,2300000,2200000,2200000,1600000],
backgroundColor: [“#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#000″],
borderColor: [“#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#b9090b”,”#000″],
borderWidth: 0,
hoverBackgroundColor: [“#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#8a0708″,”#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/[email protected]/dist/chart.umd.min.js', function() {
ensureChartAndPlugin();
});
} else if (showLabels && !window.ChartDataLabels) {
loadScript('https://cdn.jsdelivr.net/npm/[email protected]', 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. Swapped Headed for All-Time Top 10 List Imminently

Finally, last week we covered how Swapped was closing in on the all-time top 10s. In the next couple of weeks, we’ll see it enter as it’s now overtaken War Machine, and it should manage to get to #8 in the all-time list according to our estimates, which places its 91-day number at somewhere between 139.3M in the absolute worst case scenario, but somewhere more like 143.4M and 146.9M. 

Let’s look at how it’s performing vs some of Netflix’s other big animated titles, and the curves are super interesting. Traditionally, with live-action movies, we see them almost go flat when plotted on graphs like this due to heavy viewing decay, but as we already know, repeat viewing is higher for animated titles. While Swapped isn’t in the same realm as KPop, it shows very similar decay rates to Leo and The Sea Beast and remains comfortably Netflix’s second-biggest animated movie release ever. 

document.addEventListener(‘DOMContentLoaded’, function () {
var ctx = document.getElementById(‘cumulativeChart_6a4436f1383aa’).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;
}
}


Netflix Top 10s For Week Ending June 28th, 2026

English TV

Rank Title Hours Views Week #
1 I Will Find You: Limited Series 187,200,000 (42.14%) 34,100,000 2
2 Avatar: The Last Airbender: Season 2 64,600,000 8,700,000 1
3 Avatar: The Last Airbender: Season 1 21,700,000 3,000,000 7
4 Raw: June 22, 2026 4,300,000 (-12.24%) 2,300,000 1
5 AMERICA’S SWEETHEARTS: Dallas Cowboys Cheerleaders: Season 3 15,300,000 2,200,000 2
6 Salish & Jordan Matter: Season 1 7,200,000 (22.03%) 2,000,000 6
7 Sweet Magnolias: Season 5 15,700,000 (-42.49%) 2,000,000 3
8 Salish & Jordan Matter: Season 2 4,400,000 (-25.42%) 2,000,000 1
9 The Amazing Digital Circus: Season 1 9,400,000 (6.82%) 1,900,000 4
10 The Last Ship: Season 1 13,100,000 1,900,000 1

English Film

Rank Title Hours Views Week #
1 Voicemails for Isabelle 60,900,000 (76.52%) 31,000,000 2
2 Little Brother 23,400,000 14,000,000 1
3 Maternal Instinct 13,700,000 (-66.75%) 8,500,000 3
4 Swapped 7,800,000 (-6.02%) 4,600,000 9
5 Office Romance 8,200,000 (-44.97%) 4,300,000 4
6 KPop Demon Hunters 6,300,000 (5.00%) 3,800,000 54
7 The Contractor 6,000,000 3,600,000 1
8 Turbo 5,400,000 3,400,000 5
9 The Creator 7,200,000 3,200,000 1
10 5lbs of Pressure 4,900,000 2,700,000 1

Non-English TV

Rank Title Hours Views Week #
1 Teach You a Lesson: Limited Series 78,200,000 (-38.03%) 7,300,000 4
2 Oasis: Season 1 40,000,000 (227.87%) 7,000,000 2
3 Agent Kim Reactivated: Limited Series 14,200,000 6,600,000 1
4 The Polygamist: Season 1 51,600,000 (-30.55%) 5,300,000 3
5 Another Self: Season 3 14,900,000 2,400,000 1
6 India’s Got Latent: Season 2 2,400,000 (9.09%) 2,400,000 2
7 My Royal Nemesis: Limited Series 33,000,000 (-23.08%) 2,000,000 8
8 Notes from the Last Row: Limited Series 10,400,000 1,600,000 1
9 Losing Judgment: Season 1 12,700,000 (-45.96%) 1,400,000 3
10 BAKI-DOU: The Invincible Samurai: Season 1 13,400,000 1,300,000 4

Non-English Film

Rank Title Hours Views Week #
1 Husbands in Action 11,400,000 (9.62%) 6,300,000 2
2 Blast 10,300,000 4,400,000 1
3 Torrente for President 2,900,000 1,700,000 1
4 The Marked Woman 2,800,000 (-54.84%) 1,500,000 4
5 Bhooth Bangla 4,100,000 (-68.22%) 1,500,000 3
6 Colors Of Evil: Black 2,700,000 (-80.43%) 1,500,000 3
7 Dhurandhar The Revenge (Raw & Undekha) 4,800,000 (14.29%) 1,200,000 5
8 King Kaew 1,900,000 1,100,000 1
9 Les Condés 1,200,000 800,000 1
10 Raja Shivaji 2,600,000 800,000 1

What are your big takeaways from the Netflix top 10s this week? Let us know in the comments down below. 

RELATED ARTICLES
- Advertisment -

Most Popular

Recent Comments