(function(){
var CN = 'menthorq_utm_params';
var LK = 'menthorq_utm_params';
var UK = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content','utm_id'];
var CK = ['gclid','fbclid','msclkid','ttclid','twclid'];
var CD = 30;
var AK = UK.concat(CK);function sC(n,v,d){var e=new Date(Date.now()+d*864e5).toUTCString();var c=n+'='+encodeURIComponent(v)+';expires='+e+';path=/;SameSite=Lax';if(location.protocol==='https:')c+=';Secure';document.cookie=c;}
function gC(n){var m=document.cookie.match(new RegExp('(?:^|; )'+n+'=([^;]*)'));return m?decodeURIComponent(m[1]):'';}
function sv(d){var j=JSON.stringify(d);sC(CN,j,CD);try{localStorage.setItem(LK,j);}catch(e){}}
function hk(o){if(!o)return false;for(var i=0;i<AK.length;i++)if(o[AK[i]])return true;return false;}
function nm(d){if(!d)return null;if(d.first)return d;if(hk(d))return{first:d,last:d};return null;}
function ld(){var r=gC(CN);if(r){try{var n=nm(JSON.parse(r));if(n)return n;}catch(e){}}try{var s=localStorage.getItem(LK);if(s){var n=nm(JSON.parse(s));if(n)return n;}}catch(e){}return null;}
function mg(p,n){var o={};if(p)for(var k in p)o[k]=p[k];for(var k in n)o[k]=n[k];return o;}var ps = new URLSearchParams(window.location.search);
var fd = {}, has = false;
for (var i = 0; i < AK.length; i++) {
var v = ps.get(AK[i]);
if (v) { fd[AK[i]] = v; has = true; }
}// Click-ID synthesis: when only a click-id is present (no utm_source), derive
// utm_source/utm_medium so downstream analytics groups under the right channel.
var SY = {
gclid: ['google', 'cpc'],
fbclid: ['facebook', 'cpc'],
msclkid: ['bing', 'cpc'],
ttclid: ['tiktok', 'cpc'],
twclid: ['twitter', 'cpc']
};
if (has && !fd.utm_source) {
for (var sk in SY) {
if (fd[sk]) { fd.utm_source = SY[sk][0]; fd.utm_medium = SY[sk][1]; break; }
}
}if (has) {
fd.captured_at = new Date().toISOString();
var ex = ld();
// Last-touch: merge new fields ON TOP of previous last (preserva campi pregressi)
var newLast = ex && ex.last ? mg(ex.last, fd) : fd;
// First-touch: se ex.first ha almeno un UTM, e' completo e sticky.
// Se ex.first esiste ma e' click-id-only (orphan), completa con i campi nuovi.
// Se ex.first non esiste, usa fd come first.
var newFirst;
if (ex && ex.first) {
var firstHasUtm = false;
for (var i = 0; i < UK.length; i++) if (ex.first[UK[i]]) { firstHasUtm = true; break; }
newFirst = firstHasUtm ? ex.first : mg(ex.first, fd);
} else {
newFirst = fd;
}
sv({first: newFirst, last: newLast});
return;
}var raw = gC(CN);
if (raw) {
try {
var p = JSON.parse(raw);
if (!p.first && hk(p)) sv({first: p, last: p});
} catch(e) {}
return;
}try {
var s = localStorage.getItem(LK);
if (s) { var n = nm(JSON.parse(s)); if (n) sv(n); }
} catch(e) {}
})();
var breeze_prefetch = {"local_url":"https://menthorq.com","ignore_remote_prefetch":"1","ignore_list":["/account/","/login/","/thank-you/","/wp-json/openid-connect/userinfo","wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
https://menthorq.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js
https://menthorq.com/wp-content/themes/yootheme/vendor/assets/uikit/dist/js/uikit.js
https://menthorq.com/wp-content/themes/yootheme/vendor/assets/uikit/dist/js/uikit-icons-circle.min.js
https://menthorq.com/wp-content/themes/yootheme/assets/site/js/theme.js
window.yootheme ||= {}; yootheme.theme = {"i18n":{"close":{"label":"Close","0":"yootheme"},"totop":{"label":"Back to top","0":"yootheme"},"marker":{"label":"Open","0":"yootheme"},"navbarToggleIcon":{"label":"Open menu","0":"yootheme"},"paginationPrevious":{"label":"Previous page","0":"yootheme"},"paginationNext":{"label":"Next page","0":"yootheme"},"searchIcon":{"toggle":"Open Search","submit":"Submit Search"},"slider":{"next":"Next slide","previous":"Previous slide","slideX":"Slide %s","slideLabel":"%s of %s"},"slideshow":{"next":"Next slide","previous":"Previous slide","slideX":"Slide %s","slideLabel":"%s of %s"},"lightboxPanel":{"next":"Next slide","previous":"Previous slide","slideLabel":"%s of %s","close":"Close"}}};
The Futures Curve, the Crowd, and the Catalyst Why Structure and Story Matter Together Step One: Start with the Curve The futures curve is your structural foundation. It tells you the cost or reward of holding a long or short position through time. The key concept here is carry , the profit or drag associated with rolling your position forward.
There are two main curve shapes:
Backwardation : Near-term contracts are priced higher than deferred ones.This is a tailwind for long positions. Rolling a long position earns yield as you sell high and buy lower. Suggests near-term tightness in supply (e.g., inventory draws, strong demand). Contango : Near-term contracts are priced lower than deferred ones.This is a headwind for long positions. Rolling a long position loses money (negative roll yield). Implies weak immediate demand or storage overhang. Learn how to Read the Term Structure .
The Futures Curve, the Crowd, and the Catalyst 5 To measure carry, calculate the average of the front 3–6 month spreads (e.g., CL1–CL2, CL2–CL3, CL3–CL4). A positive average suggests long bias is rewarded. A negative average implies staying flat or looking short.
This curve shape doesn’t tell you where price is going tomorrow, but it helps you filter directional setups. It answers the question: “Is this a market that rewards longs or punishes them?”
Step Two: Follow the Flows, Not Just the Labels CFTC positioning reports are often misunderstood. Traders get caught up in net long vs net short numbers, but the real edge is in watching how fast the flows are changing .
The weekly Commitment of Traders (COT) report breaks down open interest across categories like:
Money Managers (hedge funds, CTAs ) Producers, Merchants, Processors, Users Swap Dealers Other Reportables But these labels are fuzzy in oil. Banks might appear under “swap dealers” but could be carrying both airline hedges and investor exposure. What matters more than the label is the speed of trading .
Here’s what matters:
Fast money : Trend-following funds, CTAs, and algo traders. These groups move quickly with momentum and often drive short-term volatility.Slow money : Long-only investors, large hedgers. These groups shift more gradually and tend to follow fundamental changes.Other traders : Often retail or small participants, historically the least profitable group in oil.Watch weekly changes in positioning, especially from the fast money group. A sharp build in longs from CTAs alongside rising prices often confirms strength. But when that same group hits extreme positioning , the risk of reversal grows.
The weekly flow gives you a crowd signal , not to trade blindly, but to assess where the leverage is. Are traders chasing or fading? Is there fuel left in the trend or are we stretched?
Step Three: Anchor to a Catalyst The final leg of the framework is narrative. What is the dominant macro story that the market is trading?
Common catalysts include:
OPEC+ decisions or surprises Inventory data (API/EIA draws and builds) Central bank policy shifts (affecting the dollar) War, sanctions, or weather disruptions Refinery outages or maintenance Global demand shocks (e.g., China reopening) Why is narrative important? Because it determines how traders interpret the same data .
For example:
A 3 million barrel draw during a bullish narrative (tight market, strong demand) could spike prices $3. The same draw during a bearish macro (recession risk) might be ignored or faded. The narrative acts as a magnifier or dampener . It tells you whether positioning and structure are likely to work with or against you.
A strong narrative layered on top of bullish structure and light positioning? That’s a high-conviction long. A weak narrative on top of crowded longs and flat curve? That’s a market prone to reversal. How to Combine the Three Here’s how traders often use this framework in practice:
1. Filter with Curve
First, assess the carry regime :
Is the curve in backwardation (tailwind for longs)? Is the curve in contango (headwind)? This shapes your default bias . In backwardation, be open to long setups. In contango, stay nimble or flat.
2. Check Positioning Flows
Next, look at weekly COT changes :
Are fast money flows accelerating into the trend? That supports continuation. Are they hitting extremes? That increases reversal risk. Are they flipping (net selling)? Watch for trend change. This gives you a sentiment read who’s long, who’s trapped, who’s waiting.
3. Layer in Catalyst
Finally, ask: what’s the story?
Is there a reason for trend to extend? Are we heading into a high-impact data point? Are headlines supporting or contradicting the structural read? This gives you timing context when to size up, fade, or wait.
An Example: Applying the Framework Let’s say:
Brent curve is in backwardation by +$0.60 (carry tailwind). Price is trending above the 200-day moving average (momentum). CFTC shows fast money adding to longs, but still below extreme levels. The dominant story is OPEC+ maintaining cuts and China refining runs are high. In this case:
Carry supports long bias Positioning has room to build Narrative aligns with structural tightness This is a setup where traders may lean into long exposure, using dips to enter or pyramiding risk with confirmation.
Contrast that with:
Curve in mild contango Fast money heavily long, starting to sell Narrative turning bearish (e.g., demand slowdown, SPR releases) That’s a setup where traders may fade strength or stay flat.
What This Isn’t
This framework is not:
A signal generator A perfect forecasting model A substitute for risk management It is a contextual playbook a way to frame the market’s structure, sentiment, and story so you’re not trading blind.
Learn How to Trade Oil Futures.
Conclusion: Structure, Flow, and Story Win In a world flooded with data, simplicity wins. The best oil traders often reduce the chaos into just three questions:
What does the curve say? What is the crowd doing? What’s the story right now? This “curve, crowd, catalyst” model isn’t magic. But it helps traders avoid chasing noise and align with meaningful moves.
Ask QUIN how to interpret the futures curve for your favourite commodity.
Join us today
Access daily Market Research and our interactive Dashboard . Make better trading decisions.
MenthorQ ©2025 701 Brickell Key BLVD 33131, Miami (FL)
Quantitative Models
Resources
Company
Account console.warn({"message":"Unknown argument \"membership_level_operator\" on field \"customMpcsCourse\" of type \"MpcsCoursesQuery\". Did you mean \"skill_level_operator\"?"});
window.$yooessentials = window.$yooessentials || {};
window.$yooessentials.infos = window.$yooessentials.infos || [];
window.$yooessentials.errors = window.$yooessentials.errors || [];
window.$yooessentials.warnings = window.$yooessentials.warnings || [];
window.$yooessentials.errors.push({"log":"Unknown argument \"membership_level_operator\" on field \"customMpcsCourse\" of type \"MpcsCoursesQuery\". Did you mean \"skill_level_operator\"?","path":null,"trace":"#0 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/Language\/Visitor.php(403): YOOtheme\\GraphQL\\Validator\\Rules\\KnownArgumentNames::YOOtheme\\GraphQL\\Validator\\Rules\\{closure}()\n#1 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/Language\/Visitor.php(470): YOOtheme\\GraphQL\\Language\\Visitor::YOOtheme\\GraphQL\\Language\\{closure}()\n#2 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/Language\/Visitor.php(276): YOOtheme\\GraphQL\\Language\\Visitor::YOOtheme\\GraphQL\\Language\\{closure}()\n#3 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/Validator\/DocumentValidator.php(119): YOOtheme\\GraphQL\\Language\\Visitor::visit()\n#4 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/GraphQL.php(155): YOOtheme\\GraphQL\\Validator\\DocumentValidator::validate()\n#5 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/GraphQL.php(97): YOOtheme\\GraphQL\\GraphQL::promiseToExecute()\n#6 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder-source\/src\/Source.php(71): YOOtheme\\GraphQL\\GraphQL::executeQuery()\n#7 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder-source\/src\/Source\/SourceTransform.php(122): YOOtheme\\Builder\\Source->query()\n#8 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder-source\/src\/Source\/SourceTransform.php(69): YOOtheme\\Builder\\Source\\SourceTransform->querySource()\n#9 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(275): YOOtheme\\Builder\\Source\\SourceTransform->prerender()\n#10 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(288): YOOtheme\\Builder->applyTransforms()\n#11 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(288): YOOtheme\\Builder->applyTransforms()\n#12 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(288): YOOtheme\\Builder->applyTransforms()\n#13 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(104): YOOtheme\\Builder->applyTransforms()\n#14 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(121): YOOtheme\\Builder->load()\n#15 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/templates\/menu\/menu.php(159): YOOtheme\\Builder->render()\n#16 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(268): require('...')\n#17 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View\/FileLoader.php(25): YOOtheme\\View->evaluate()\n#18 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(169): YOOtheme\\View\\FileLoader->__invoke()\n#19 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress\/src\/UrlLoader.php(26): YOOtheme\\View->YOOtheme\\{closure}()\n#20 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(169): YOOtheme\\Theme\\Wordpress\\UrlLoader::resolveRelativeUrl()\n#21 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(231): YOOtheme\\View->YOOtheme\\{closure}()\n#22 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress-menus\/src\/MenuWalker.php(102): YOOtheme\\View->render()\n#23 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/nav-menu-template.php(621): YOOtheme\\Theme\\Wordpress\\MenuWalker->walk()\n#24 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/nav-menu-template.php(241): walk_nav_menu_tree()\n#25 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/widgets\/class-wp-nav-menu-widget.php(109): wp_nav_menu()\n#26 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress-widgets\/src\/WidgetsListener.php(353): WP_Nav_Menu_Widget->widget()\n#27 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress-widgets\/src\/WidgetsListener.php(536): YOOtheme\\Theme\\Widgets\\WidgetsListener->displayWidget()\n#28 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress-widgets\/src\/WidgetsListener.php(499): YOOtheme\\Theme\\Widgets\\WidgetsListener->getWidget()\n#29 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress-widgets\/src\/WidgetsListener.php(130): YOOtheme\\Theme\\Widgets\\WidgetsListener->createMenuWidget()\n#30 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/container\/src\/Container.php(229): YOOtheme\\Theme\\Widgets\\WidgetsListener->afterSidebar()\n#31 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/platform-wordpress\/src\/FilterLoader.php(28): YOOtheme\\Container->call()\n#32 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/class-wp-hook.php(343): YOOtheme\\Wordpress\\FilterLoader->YOOtheme\\Wordpress\\{closure}()\n#33 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/class-wp-hook.php(365): WP_Hook->apply_filters()\n#34 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/plugin.php(522): WP_Hook->do_action()\n#35 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/widgets.php(717): do_action()\n#36 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/templates\/header.php(239): dynamic_sidebar()\n#37 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(268): require('...')\n#38 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View\/FileLoader.php(25): YOOtheme\\View->evaluate()\n#39 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(169): YOOtheme\\View\\FileLoader->__invoke()\n#40 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress\/src\/UrlLoader.php(26): YOOtheme\\View->YOOtheme\\{closure}()\n#41 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(169): YOOtheme\\Theme\\Wordpress\\UrlLoader::resolveRelativeUrl()\n#42 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(231): YOOtheme\\View->YOOtheme\\{closure}()\n#43 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(82): YOOtheme\\View->render()\n#44 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/header.php(145): YOOtheme\\View->__invoke()\n#45 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/template.php(814): require_once('...')\n#46 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/template.php(749): load_template()\n#47 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/general-template.php(48): locate_template()\n#48 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/page.php(10): get_header()\n#49 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/template-loader.php(132): include('...')\n#50 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-blog-header.php(19): require_once('...')\n#51 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/index.php(17): require('...')\n#52 {main}"});
console.warn({"message":"Unknown argument \"membership_level_operator\" on field \"customMpcsCourses\" of type \"MpcsCoursesQuery\". Did you mean \"skill_level_operator\"?"});
window.$yooessentials.errors.push({"log":"Unknown argument \"membership_level_operator\" on field \"customMpcsCourses\" of type \"MpcsCoursesQuery\". Did you mean \"skill_level_operator\"?","path":null,"trace":"#0 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/Language\/Visitor.php(403): YOOtheme\\GraphQL\\Validator\\Rules\\KnownArgumentNames::YOOtheme\\GraphQL\\Validator\\Rules\\{closure}()\n#1 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/Language\/Visitor.php(470): YOOtheme\\GraphQL\\Language\\Visitor::YOOtheme\\GraphQL\\Language\\{closure}()\n#2 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/Language\/Visitor.php(276): YOOtheme\\GraphQL\\Language\\Visitor::YOOtheme\\GraphQL\\Language\\{closure}()\n#3 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/Validator\/DocumentValidator.php(119): YOOtheme\\GraphQL\\Language\\Visitor::visit()\n#4 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/GraphQL.php(155): YOOtheme\\GraphQL\\Validator\\DocumentValidator::validate()\n#5 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/graphql\/lib\/GraphQL.php(97): YOOtheme\\GraphQL\\GraphQL::promiseToExecute()\n#6 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder-source\/src\/Source.php(71): YOOtheme\\GraphQL\\GraphQL::executeQuery()\n#7 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder-source\/src\/Source\/SourceTransform.php(122): YOOtheme\\Builder\\Source->query()\n#8 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder-source\/src\/Source\/SourceTransform.php(69): YOOtheme\\Builder\\Source\\SourceTransform->querySource()\n#9 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(275): YOOtheme\\Builder\\Source\\SourceTransform->prerender()\n#10 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(288): YOOtheme\\Builder->applyTransforms()\n#11 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(288): YOOtheme\\Builder->applyTransforms()\n#12 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(288): YOOtheme\\Builder->applyTransforms()\n#13 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(288): YOOtheme\\Builder->applyTransforms()\n#14 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(104): YOOtheme\\Builder->applyTransforms()\n#15 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/builder\/src\/Builder.php(121): YOOtheme\\Builder->load()\n#16 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/templates\/menu\/menu.php(159): YOOtheme\\Builder->render()\n#17 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(268): require('...')\n#18 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View\/FileLoader.php(25): YOOtheme\\View->evaluate()\n#19 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(169): YOOtheme\\View\\FileLoader->__invoke()\n#20 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress\/src\/UrlLoader.php(26): YOOtheme\\View->YOOtheme\\{closure}()\n#21 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(169): YOOtheme\\Theme\\Wordpress\\UrlLoader::resolveRelativeUrl()\n#22 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(231): YOOtheme\\View->YOOtheme\\{closure}()\n#23 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress-menus\/src\/MenuWalker.php(102): YOOtheme\\View->render()\n#24 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/nav-menu-template.php(621): YOOtheme\\Theme\\Wordpress\\MenuWalker->walk()\n#25 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/nav-menu-template.php(241): walk_nav_menu_tree()\n#26 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/widgets\/class-wp-nav-menu-widget.php(109): wp_nav_menu()\n#27 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress-widgets\/src\/WidgetsListener.php(353): WP_Nav_Menu_Widget->widget()\n#28 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress-widgets\/src\/WidgetsListener.php(536): YOOtheme\\Theme\\Widgets\\WidgetsListener->displayWidget()\n#29 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress-widgets\/src\/WidgetsListener.php(499): YOOtheme\\Theme\\Widgets\\WidgetsListener->getWidget()\n#30 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress-widgets\/src\/WidgetsListener.php(130): YOOtheme\\Theme\\Widgets\\WidgetsListener->createMenuWidget()\n#31 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/container\/src\/Container.php(229): YOOtheme\\Theme\\Widgets\\WidgetsListener->afterSidebar()\n#32 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/platform-wordpress\/src\/FilterLoader.php(28): YOOtheme\\Container->call()\n#33 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/class-wp-hook.php(343): YOOtheme\\Wordpress\\FilterLoader->YOOtheme\\Wordpress\\{closure}()\n#34 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/class-wp-hook.php(365): WP_Hook->apply_filters()\n#35 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/plugin.php(522): WP_Hook->do_action()\n#36 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/widgets.php(717): do_action()\n#37 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/templates\/header.php(239): dynamic_sidebar()\n#38 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(268): require('...')\n#39 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View\/FileLoader.php(25): YOOtheme\\View->evaluate()\n#40 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(169): YOOtheme\\View\\FileLoader->__invoke()\n#41 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/theme-wordpress\/src\/UrlLoader.php(26): YOOtheme\\View->YOOtheme\\{closure}()\n#42 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(169): YOOtheme\\Theme\\Wordpress\\UrlLoader::resolveRelativeUrl()\n#43 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(231): YOOtheme\\View->YOOtheme\\{closure}()\n#44 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/packages\/view\/src\/View.php(82): YOOtheme\\View->render()\n#45 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/header.php(145): YOOtheme\\View->__invoke()\n#46 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/template.php(814): require_once('...')\n#47 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/template.php(749): load_template()\n#48 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/general-template.php(48): locate_template()\n#49 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-content\/themes\/yootheme\/page.php(10): get_header()\n#50 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-includes\/template-loader.php(132): include('...')\n#51 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/wp-blog-header.php(19): require_once('...')\n#52 \/mnt\/BLOCKSTORAGE\/home\/1543348.cloudwaysapps.com\/tsqhnrsppe\/public_html\/index.php(17): require('...')\n#53 {main}"});
UIkit.icon.add({"fa6-regular--user":"<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 448 512\" width=\"20\" height=\"20\"><path d=\"M304 128a80 80 0 10-160 0 80 80 0 10160 0zm-208 0a128 128 0 11256 0 128 128 0 11-256 0zM49.3 464h349.5c-8.9-63.3-63.3-112-129-112h-91.4c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304h91.4c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3z\"\/><\/svg>"})
var menthorq_gtm = {"system":{"ajax_url":"https://menthorq.com/wp-admin/admin-ajax.php","nonce":"4c11b822d9","site_url":"https://menthorq.com","home_url":"https://menthorq.com","timestamp":1786929945,"environment":"production"},"debug":{"enabled":false,"environment":"production"},"user":[],"container_id":"GTM-599ZCR89"};
//# sourceURL=gtm-tracking-js-extra
https://menthorq.com/wp-content/themes/memberpress-wp-th/modules/GoogleTagManager/Assets/Public/Js/gtm-tracking.js
https://menthorq.com/wp-content/themes/memberpress-wp-th/modules/Mixpanel/Assets/Public/Js/mixpanel-tracking.js
var menthorq_common = {"system":{"ajax_url":"https://menthorq.com/wp-admin/admin-ajax.php","nonce":"c1ac38650a","version":"1.30.1","site_url":"https://menthorq.com","home_url":"https://menthorq.com","timestamp":1786929945},"debug":{"enabled":false,"environment":"production"}};
//# sourceURL=common-core-js-extra
https://menthorq.com/wp-content/themes/memberpress-wp-th/modules/Core/Assets/Public/Js/common.js
https://menthorq.com/wp-content/themes/memberpress-wp-th/modules/TableOfContents/Assets/Public/Js/tableofcontents.js
https://menthorq.com/wp-content/themes/memberpress-wp-th/dist/js/public.bundle.js
(function() {
'use strict';
// Function to get cookie value
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
return null;
}
// Function to delete cookie
function deleteCookie(name) {
document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
// Read pending events from cookie
const cookieValue = getCookie('gtm_events_v2');
if (cookieValue) {
try {
// First decode URL encoding (browsers automatically encode cookies)
// Then decode from base64, then parse JSON
const urlDecoded = decodeURIComponent(cookieValue);
const decodedValue = atob(urlDecoded);
const events = JSON.parse(decodedValue);
// Validate that events is an array
if (!Array.isArray(events)) {
throw new Error('Events is not an array');
}
console.log('%c[TrackingManager GTM]%c Found ' + events.length + ' pending events in cookie', 'color: #4CAF50; font-weight: bold', 'color: inherit');
// Ensure dataLayer exists
window.dataLayer = window.dataLayer || [];
// Push all events to dataLayer
events.forEach(function(eventData, index) {
const dataLayerEvent = {
event: eventData.event
};
// Add all properties
if (eventData.properties && typeof eventData.properties === 'object') {
Object.keys(eventData.properties).forEach(function(key) {
dataLayerEvent[key] = eventData.properties[key];
});
}
dataLayerEvent._timestamp = eventData.timestamp;
window.dataLayer.push(dataLayerEvent);
console.log('%c[TrackingManager GTM]%c Event #' + (index + 1) + ':', 'color: #4CAF50; font-weight: bold', 'color: inherit', eventData);
});
console.log('%c[TrackingManager GTM]%c All events pushed to dataLayer', 'color: #4CAF50; font-weight: bold', 'color: inherit');
// Delete the cookie
deleteCookie('gtm_events_v2');
} catch (e) {
console.error('[TrackingManager GTM] Error parsing events from cookie:', e);
// Delete corrupted cookie
deleteCookie('gtm_events_v2');
}
}
// Also clean up old cookie format (v1) if it exists
deleteCookie('gtm_pending_events');
})();
(function(){
var GA4_COOKIE = 'ga4_client_id';
var GA4_LS_KEY = 'menthorq_ga4_client_id';
var COOKIE_DAYS = 730;
var MAX_RETRIES = 10;
var RETRY_MS = 500;function getCookie(name) {
var match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));
return match ? decodeURIComponent(match[1]) : '';
}function setCookie(name, value, days) {
var expires = new Date(Date.now() + days * 864e5).toUTCString();
var cookie = name + '=' + encodeURIComponent(value) + ';expires=' + expires + ';path=/;SameSite=Lax';
if (location.protocol === 'https:') cookie += ';Secure';
document.cookie = cookie;
}function extractClientId() {
var ga = getCookie('_ga');
if (ga) {
var parts = ga.split('.');
if (parts.length >= 4) {
return parts.slice(2).join('.');
}
}
return '';
}function capture() {
if (getCookie(GA4_COOKIE)) return true;var clientId = extractClientId();
if (clientId) {
setCookie(GA4_COOKIE, clientId, COOKIE_DAYS);
try { localStorage.setItem(GA4_LS_KEY, clientId); } catch(e) {}
return true;
}
return false;
}if (capture()) return;// _ga cookie not yet set — poll until gtag.js initializes
var attempts = 0;
var timer = setInterval(function() {
attempts++;
if (capture() || attempts >= MAX_RETRIES) {
clearInterval(timer);
// Last resort: restore from localStorage
if (!getCookie(GA4_COOKIE)) {
try {
var stored = localStorage.getItem(GA4_LS_KEY);
if (stored) setCookie(GA4_COOKIE, stored, COOKIE_DAYS);
} catch(e) {}
}
}
}, RETRY_MS);
})();