Bad Sisters Recap: Ashes to Ashes, Dust to Busybodies
ByCaroline Framke,
a freelance TV and media criticwho has been reviewing TV and explaining how media shapes the world we live in for ten years and counting. Formerly Chief TV Critic at Variety, her byline can also be found at Vox, The Atlantic, The A.V. Club, and more.
If there’s one thing Bad Sisters is gonna do, it’s give us a villain worth rooting against. Fiona Shaw’s Angelica isn’t as overtly contemptible as Claes Bang’s JP, who seemed to make it his life’s mission to make everyone around him as deeply unhappy as himself, no matter the human cost. But Angelica still sets my skin crawling every time she shows up, in no small part because of her refusal to acknowledge that she could ever be doing anything wrong. She lives by the dubious ethos she shared with Ursula after the funeral that “that which is done in love cannot be bad” — though whatever Angelica considers to be “love” is a completely different story. It can’t be dangling someone’s future in the balance to see what she can get out of it or reacting to news of a rape with a smile. No: However lonely or “kind to a fault” Angelica considers herself to be, she’s a calculating, self-interested power player — a “hateful, homophobic wagon,” in Bibi’s words — who feeds off others’ guilt to feed the void of own empty life.
Tl;dr: I really, really do not like this woman! Garvey solidarity forever, baby.
The sisters have also hit something of a breaking point with Angelica this week, especially now that they suspect her of blackmailing Grace. (I’m inclined to believe it because, again, she’s infuriating, but it’s unfortunately my recapper duty here to remind us all that we still don’t know much for sure about the night Grace died.) They even confront her on the beach, where they’re hoping to do a sisterly cold plunge only to see Angelica picking up trash like the Good Civilian she purports to be. The Garveys are in no mood for that, nor her claims of being “very close” to Grace, nor the idea that Grace told her old choir mate “everything,” either. “Bollocks,” Eva scoffs. “Grace was the most cautious of all of us, and you weren’t very close.”
It’s clear the sisters prefer to attack their enemies as a group, which is definitely intimidating, but is it effective? Eh. Far from being chastened, Angelica sharpens her tone into a devastating point and unleashes a vicious referendum. “Shame drove Grace to her death, not me,” she spits. “I’m not going to carry your guilt. You didn’t look after her in life; you let her hold onto that awful secret, ye’s got blood on your hands.” With that, Angelica ensures she’s got four enemies for life, all of whom are teetering on the precipice of a nervous breakdown. Not ideal for anyone involved, really.
In an ongoing theme for this season, this week’s episode highlights one Garvey meltdown in particular. Shout-out to the commenters who weren’t fooled by Becka throwing up at Grace’s wedding, because you were right: In accordance with the traditional explanation for why anyone throws up on TV, she wasn’t just drunk, but pregnant.
Becka’s not altogether organized on the best of days, but this unwelcome news sends her down a whole new spiral. It’s not long before she’s suggesting — or more accurately, demanding — that they break into Angelica’s house to find proof of blackmail. Only Bibi is brazen enough to join her in the break-in, but all they find is a pet bunny stashed in a closet (odd) and a pristine guest room made up for Blanaid (odder and very concerning). They also discover the obit for Angelica’s husband — an ex-husband, as it turns out, since the wife named in the announcement isn’t Angelica at all. Becka then bungles the mission when Angelica catches her sprinting out of the bathroom in her comically large hoodie that somehow still can’t hide her distinctive face. A small shove on Becka’s way out ensures that Angelica also spends the rest of the episode moaning in a huge neck brace, because this is a woman who only needs the slightest of nudges to make herself a martyr.
Speaking of Blanaid … well, things could be better. Though she has what looks like an incredibly satisfying outlet for her grief and anger in the physical game of camogie, she also has to deal with wildly out-of-pocket bullies asking, “Who in your family’s going to die next?” When challenged, this teen jerk fully punches Bla’s cousin (i.e., Ursula’s daughter) in the teeth. Eva and Ian, both dutifully cheering on the sidelines, almost get into their own fight with the parents grumbling on about how the Garveys are “all the same.” Not a lot of grace for Grace’s death ’round these parts, as it turns out. Blanaid doesn’t appreciate Eva’s fury, nor basically anything about Eva these days, and storms off the pitch with her shiny new helmet — a present courtesy of nobody’s favorite busybody (except maybe Blanaid’s …?), Angelica.
If blaming Grace’s sisters for her death were the worst thing Angelica did in this episode, that would be enough. However, she continues her reign of terror by fleecing her flop brother for yet more information on JP’s fraught relationship with Grace’s sisters, which is how she learns about him raping Eva. Filing that piece of collateral away for later, she still finds a fun new way to step over the line. While Becka sits in the police station, only barely dodging Fergal and Houlihan’s increasingly hostile questions, Eva and Ursula bargain with Angelica to drop her complaint. They expect her to ask for more money, but no. “I’d like to spread her ashes,” she says through pursed lips, like it isn’t the most outrageously inappropriate request she could’ve made.
Becka does get let off the legal hook, so they apparently agreed to these terms — though it seems far more likely that Bibi will instead incinerate Angelica’s bunny or something to provide some alternate ashes. But the very fact of her leveraging Becka’s well-being to hijack such a personal stage of grief is noted and resented by all who witnessed it (myself included, clearly).
Not that Becka’s well-being was in such great shape before her arrest, anyway. Though she eventually confesses her pregnancy to Eva, she mostly spends this episode ping-ponging between her sisters and Matt in a total panic. As Houlihan says, the Garveys’ stories are “springing leaks” all over the place. Becka, the worst Garvey liar by a mile (“I never dated Matt Claflin!” … girl), is definitely a weaker link. In fairness to her, she’s also grieving, terrified, and carrying a baby she doesn’t seem to want. She doesn’t respect her (ex?) boyfriend, not least because she’s obviously still in love with her ex(?)-boyfriend. That would be enough to make anyone lose it, let alone someone holding onto a dozen other terrible secrets.
Too bad Houlihan’s on her case. She was way too excited to say the words “We’re arresting you,” practically salivating at the idea of making Becka crack. By season’s end, she just might. Then again, Becka does kind of gag her when she finally snaps that the guards are too busy trying to solve a two-year-old murder to bother figuring out what actually happened to Grace mere weeks ago. Houlihan’s main motivation seems to be catching the Garveys at all costs and deepening her smirks in the process, neither of which I like at all. Garvey solidarity forever, baby!
In the meantime, another leak has sprung — and it’s a weird one. Ian, revved up by the camogie carnage and fresh off consoling Eva (eye emojis x2), takes it upon himself to tell Angelica in no uncertain terms to back off the Garvey sisters. “I’m only telling you once,” he snarls in her gobsmacked face. As he walks away, the thrill of the threat even makes him laugh in … what do we think, exactly? Satisfaction? Perverse glee? Sadistic pleasure? Knowing this show, Ian could have all sorts of secrets lurking up his sleeve — but he could also just be a regular guy who’s been pushed to his limit and discovering deep, dark things about himself he never knew possible. Just ask any of the Garveys, or Roger, or maybe even the furious ticking time bomb that is Blanaid. Sometimes, all you need to become a harder version of yourself is a little push, and everyone on Bad Sisters has been well and truly shoved over the edge.
Loose Ends
• I desperately need Roger to move away from this town for his health, the Garveys’, and mine. I didn’t think he could get much more pathetic, and then he went and asked Ursula out “because let’s face it, I’ll never find the ideal woman.” My dude, please just start over elsewhere! Also, rude.
• Gotta admit that I did a little cheer when Ursula called Ian out for disappearing after the “first row of his marriage.” Rude? Sure. Correct? Absolutely.
• Love this show, but we’re halfway through this second season and I’m still waiting for a substantial Bibi plotline and/or highlight episode. Don’t tease me with tales of lesbian poker nights and shakshouka mornings if you’re not prepared to show me, is all I’m saying.
• Detective Fergal’s having a weird week, interrogating Garveys in between Googling disputed custody how-to’s. But I did laugh at his reaction to Bibi protesting that Becka did “nothing wrong!” with a lingering, “You’re fuckin’ kidding, right?” look.
• Angelica standing in the front row of her church choir despite being several inches taller than everyone around and behind her is a perfectly accurate (and very funny) bit of blocking.
• I’m Team Becka/Matt because I’m ultimately Team Hot Mess, but I will grant oblivious Joe some credit for responding to Becka trying to literally run away with a disbelieving, “What are you, 10?”
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"17":17,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(17),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let i=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||i.classList.remove("open")})}function gtmSendReport(e,n,t){let i={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(i.eventLabel=n.href),gtm.reportNow(i)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const i=t.split("?"),o=new URLSearchParams(i[1]);for(let e of n.entries())o.set(e[0],e[1]);t=`${i[0]}?${o.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),(auth.isSubscriber()||auth.isMobileAppRequest())&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"3":3,"17":17,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(152),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"152":152,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]