Avatar: The Last Airbender. (L to R) Gordon Cormier as Aang, Kiawentiio Tarbell as Katara in season 2 of Avatar: The Last Airbender. Cr. Katie Yu/Netflix © 2026
What happens when you have to wait over two years for a series to return? Your viewership really struggles. Debuting at #2 in the weekly global charts, Avatar: The Last Airbender season 2 viewership has cratered 58% with just 8.7M views from its 64.6M hours watched. That mirrors Beef’s woes from earlier this year. There is a silver lining, however.
The caveat to all of this reporting on the numbers: they don’t matter all that much. The series has already been renewed for season 3, has wrapped production, and is expected to return to our screens either by the end of the year or in early 2027.
(function () {
if (!window.wonWatermarkPlugin)
bodyFont = getComputedStyle(document.body).fontFamily
// 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 {
if (typeof Intl !== ‘undefined’ && Intl.NumberFormat) {
if (!window.wonCompactFormatter) {
window.wonCompactFormatter = new Intl.NumberFormat(‘en’, ”;
);
}
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 – Avatar The Last Airbender – Season 1 and Avatar: The Last Airbender – Season 2 (1-week cumulative views)”,
“description”: “Cumulative weekly views for Avatar The Last Airbender – Season 1 and Avatar: The Last Airbender – Season 2 on Netflix over 1 weeks. Avatar The Last Airbender – Season 1 leads the comparison with 21,200,000 cumulative views. Combined total: 29,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, Avatar The Last Airbender – Season 1, Avatar: The Last Airbender – Season 2”,
“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-06-30”,
“dateModified”: “2026-06-30”,
“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”:”Avatar The Last Airbender – Season 1″},
{“@type”:”CreativeWork”,”name”:”Avatar: The Last Airbender – Season 2″} ],
“distribution”: {
“@type”: “DataDownload”,
“encodingFormat”: “JSON”,
“contentUrl”: “#netflix_bar_graph_6a4419e663280” }
}
(function() {
var showLabels = true;
var titleHighlight = “Avatar: The Last Airbender – Season 2”;
// 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_6a4419e663280’);
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: [“Avatar The Last Airbender – Season 1″,”Avatar: The Last Airbender – Season 2”],
datasets: [{
label: chartTitle,
data: [21200000,8700000],
backgroundColor: [“#b9090b”,”#000″],
borderColor: [“#b9090b”,”#000″],
borderWidth: 0,
hoverBackgroundColor: [“#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;
}
}
Now the silver lining with these initial week numbers is that season 1 has shot up into the top 10 to the #3 spot with an additional 3M views and 27.1M viewing hours. This suggests to us that a large portion of the audience was behind or forgot and is rapidly catching up. That’s in addition to any newcomers, too.
As a reminder, season 1 of the show went on to feature in the top 10s for 6 weeks, amassing 442.6 million viewing hours and 61.2 million completed views.
| Week in Top 10 | Week Period | Hours Viewed | Views / CVE | Weekly Rank |
|---|---|---|---|---|
| 1 | Feb 18 to Feb 25, 2024 | 153,400,000 (New) | 21,200,000 | 1 |
| 2 | Feb 25 to Mar 3, 2024 | 144,200,000 (-6%) | 19,900,000 | 1 |
| 3 | Mar 3 to Mar 10, 2024 | 65,700,000 (-54%) | 9,100,000 | 2 |
| 4 | Mar 10 to Mar 17, 2024 | 37,500,000 (-43%) | 5,200,000 | 2 |
| 5 | Mar 17 to Mar 24, 2024 | 24,600,000 (-34%) | 3,400,000 | 4 |
| 6 | Mar 24 to Mar 31, 2024 | 17,200,000 (-30%) | 2,400,000 | 5 |
FlixPatrol Numbers Paint Grim Picture
The warning signs of a soft launch have been present in the daily top 10s, tracked by FlixPatrol, since Friday, with the show unable to topple Harlan Coben’s I Will Find You in its opening five days.
Season 2 has locked down a rock-solid #2 position across most major Western territories—including the United States, Germany, France, and the Netherlands—while finding its absolute strongest viewership in emerging markets like Nigeria, Sri Lanka, and Jamaica, where it has comfortably held the #1 spot for days. It also saw brief surges to the top of the charts in parts of South Asia, proving the franchise’s global appeal is still very much intact out of the gate.
However, a closer look at the regional breakdown suggests the series might already be losing some of its initial momentum. The show is struggling to gain any meaningful foothold in key East Asian markets, barely scraping the bottom of the Top 10 in South Korea and Taiwan, and largely underperforming in pockets of Latin America. More concerning for its long-term legs is the noticeable decay in several major regions just days after release; the UK, for example, saw a sharp drop from #2 to #5, while early #1 peaks in places like the Philippines and India have already cooled off.
Noting that Netflix’s daily top 10s don’t show intensity of viewing, here’s, in pure daily globally assigned points, how season 2 is stacking up against season 1 right now:
| Day | Season 1 Points | Season 2 Points |
|---|---|---|
| Day 1 | 881 | 705 |
| Day 2 | 912 | 765 |
| Day 3 | 911 | 735 |
| Day 4 | 903 | 737 |
| Day 5 | 898 | 734 |
| Day 6 | 897 | – |
| Day 7 | 887 | – |
| Day 8 | 895 | – |
| Day 9 | 886 | – |
| Day 10 | 884 | – |
| Day 11 | 858 | – |
| Day 12 | 835 | – |
| Day 13 | 809 | – |
| Day 14 | 766 | – |
Of course, at this stage, we should note that viewership down for returning seasons is not a new phenomenon; in fact, it’s very much the name of the game at this point, with very few shows ever coming back managing to actually increase their viewership, which seems very much a problem across the industry although HBO shows in particular are very good at growing season over season.
Why this is becoming such a big problem for Netflix and how they can remedy it is unclear. Some have pointed out that the problem has worsened with the Netflix UI changing so dramatically, giving fewer titles space on the user’s TV.
Then there’s the production time. This is another show that’s taken a long time to return to our screens. 854 days in fact, which breaks down to 2 years, 4 months and change. Definitely on the longer side of the 20-month average we reported on last year.
Are you disappointed in the opening week’s viewership for Avatar: The Last Airbender season 2? Let us know in the comments.
