It’s the end of the line for season nine, which in retrospect may be called “the Ellie season.” She got so muchair time just to suck the air out of everything. I wish there were a reunion so we could see her fully hash it out with Aesha and the crew, but we’ll have to settle for the aftershow. The finale starts with a replay of Aesha confronting Ellie about overstepping. Ellie plays shocked and claims it was unintentional. Aesha thinks it’s calculated. Ellie explains to us that she thought she needed to demonstrate leadership so Aesha would recommend her as a chief stew. It’s wild she believesshe’s getting a recommendation at all after nearly being fired.
The editors really rub in how bad Ellie’s night is going by intercutting her quietly cleaning up the dinner table as Aesha, the guests, and drag queens have a blast upstairs. The party comes downstairs, and Aesha asks, “Does it take long to do lemon-drop shots?” Ellie looks horrified — she was not told anything about lemon-drop shots. But even if she misheard what Aesha said, this is not the right response. Just start making the shots! Aesha repeats what she asked and tells her not to be so defensive. I can’t believe this all goes down in front of the guests. If I were them, I would be eating it up.
It’s a rough night for Ellie. Later, a guest asks Carrie who on the crew she would most want to sleep with. She says Joe … right as Ellie enters the room. As Carrie leaves for the night, the guests encourage her to “get that dick tonight.” She laughs it off and professionally says she can’t. Ellie thinks Carrie is rubbing Joe in her face (she’s definitely not), taking over her job (okay, she kind of is), and acting like Regina George (truly, what?). I think Ellie is jealous of how easily Carrie interacts with the guests — they’re saying “love you” after two days!
The next morning brings our last docking. Iain is proud of his crew and says they have “big deck energy.” (What is this, 2018?) The guests say good-bye and tell the crew they made their trip amazing, leaving a $20,000 tip. We’ve never seen this crew so happy; they’re thankful to be done with the season. In the tip meeting, Sandy commends Jono for persevering and staying calm and compliments everyone for bringing the energy. She’s so pleased with them that she wants them all there for her proposal to her girlfriend, Leah, this evening. I assume this means Bravo wants them there, because I doubt she cares about having people she almost fired witness her engagement. Sandy thinks Leah doesn’t have a clue about the proposal, but Leah must be suspicious that she’s got a whole camera crew on her while she waits for Sandy at the marina. Sandy went to greet her before the charter actually finished, but before I can criticize her, she herself acknowledges it wasn’t very professional. Way to get ahead of it, Sandy.
Sandy has trusted Aesha to set up dinner and violins on a secluded beach for the proposal, and Aesha asks Gael and Carrie to help her. Ellie thinks it’s “horseshit” she wasn’t chosen. She can tell Aesha is playing favorites, but Aesha’s favorites just happen to be the most efficient at their jobs. But Ellie will never be satisfied; days ago she would’ve been salivating at running the boat while Aesha’s gone. Ellie puts on one last over-the-top chandelier-esque outfit she can’t wear underwear with, I think because of see-through netting on the sides. But before going out, she’ll have to wear this impractical dress while hiding behind bushes up a mountaintop during the proposal. She complains in the van on the way there, “If they’ve done décor without me, I am going to flip out.” It would be truly insane to make a scene at your boss’s proposal over tablescapes, but the threat of it sure is entertaining. In the backseat, Nathan and Iain exchange looks, and I wish we could’ve seen them react to the other crazy things she’s said.
Joe is tasked with driving Sandy and Leah on the tender to the beach for the proposal, and Sandy’s happy to be in tourist mode. Unfortunately, there are lines stuck on the propellers so she has to turn boss mode back on to walk Joe through getting them off. She knows it’s not his fault, but the clock is ticking to get to the beach in time for sunset. Leah thinks the boat ride alone is romantic, so slightly missing sunset isn’t a real issue. When they arrive, the violinists play a wedding song. How did the event planners okay that?! At this point, Leah must know what’s about to happen and looks a bit nervous. It’s a little awkward at first, but once Sandy starts speaking from the heart, it’s clear how much the two love each other. Leah says “yes,” and the crew cheers from their hiding spot in bushes up the hill. If we can look past the built-in cringe of a staged TV proposal, it’s a nice moment for our captain.
The rest of the crew goes out to celebrate their final night, and things are already going awry in the cars. Nathan tells Aesha about Ellie complaining. In front of them, Joe and Carrie are hamming up the flirting and hugging and she sits in his lap. It’s too much for Bri, who’s right next to them. She makes it known and tells Joe to f- - - off. He understands why she’s upset but doesn’t care enough to stop trying to get with Carrie. Carrie similarly knows that hooking up with Joe will ruin “whatever friendship” she and Ellie have but doesn’t mind. Carrie and Joe just want to make the most of their last night.
Some slo-mo dancing paired with royalty-free-sounding EDM does not make the crew look cool or convince me this is a fun time. Everyone’s drinking, and Iain joins in the dancing, excited to release the tension of the season. Joe and Carrie dance close, during which he murmurs, “listen to my hands,” which may be the first sign he’s getting too drunk. Or he thinks he’s a poet Casanova. Either way, they’re both turn-offs. He takes a moment away from Carrie to apologize to Bri, who’s not having it. Nathan dances on a table above them, hilariously unaware of the argument happening below.
On the way back to the boat, Bri and Ellie make it a point to not share a car with Joe and Carrie. It’s hard to believe the two stews hated each other so much mere weeks ago. They get their revenge, in a way, even if it’s self-inflicted from Joe. He can barely stand and ends his night in the bathroom, wanting to “die alone.” Carrie’s disappointed he got so drunk. From the bathroom audio, it sounds like she tries to make something happen, but he can’t perform. It was a sexless season, and it feels right for it to stay that way through the end.
The classic hungover good-byes begin with Jono, who’s proud of himself but also says he wouldn’t turn down an opportunity to go to culinary school. Bri’s thrilled she made it through her first full season (although I think the show’s seasons are much shorter than normal charter seasons). Bri thanks Sandy for giving her so many chances and cries one last time. Bri gained confidence, a theme we see all the crew members (except Ellie) express as they depart. Nathan came to the Mustique to have fun but leaves more open to leadership roles in the future. Sandy says she’d have him back any day. Reflecting on the season, he and Joe both feel like they’ve found lifelong friends in each other. I wonder how long that’ll last since Nathan seems on the path to maturity while Joe declares he has no plans to settle down and will continue acting like he’s 19.
My favorite line of the episode is when Ellie says bye to Aesha: “It’s been … I don’t know.” Aesha says Ellie is a hard worker and should be proud of herself. Of course, Ellie isn’t happy with this — she wanted more than one compliment, even though it didn’t seem like she gave Aesha any. Obviously, she wanted to hear that she’d make a fantastic chief stew, but the only person who gets that kind of praise is Gael. Aesha calls Gael her “gift of the season,” and Sandy says she would make a great captain. Gael’s a little unsure about leaving the boat with Nathan, but they’re feeling in love, especially after Sandy’s engagement. Their latest Instagram posts — individual shotswhere they’re clearly in the same hotel in Milan — not so subtly hint that they’re still together.
Aesha departs last, feeling great walking off the boat as a Mediterranean chief stew. Sandy loves her, and I believe it, because Aesha makes her seemingly small wedding guest list. We see some of Sandy and Leah’s wedding eight months later on a yacht (of course) in Fort Lauderdale. Season seven’s Dave was the chef, Kate and Aesha gave speeches, and most importantly, Norma from staffing was there. I can’t wait to see the personalities she finds next season.
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,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(12),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 o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.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()&&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,"4":4,"12":12,"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(182),_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,"182":182,"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();
// ]]