Following the long Thanksgiving weekend in the US, investors return to high-frequency surveys and delayed data releases ahead of key interest rate decisions next week.
Federal Reserve officials have now entered the media blackout period ahead of the 9–10 December policy meeting. However, Fed Chairman Jerome Powell will give opening remarks at a panel discussion on George Shultz and his Economic Policy Contributions.
SocGen said in a client note that, with few market-moving data releases due, attention may instead focus on the US delegation’s visit to Russia and any movement toward a potential deal — one that may not lead to peace, the bank cautioned, as it is expected to exclude Ukraine.
US equities posted marginal gains in November, a month marked by persistent tech-sector weakness before a late rebound. The Stock Trader’s Almanac noted that since 1950, December has been the third-strongest month for both the Dow and S&P 500, and the third-best month for the Nasdaq since its inception in 1971.
On Sunday, at the end of the 40th OPEC and non-OPEC ministerial meeting, the cartel reaffirmed the level of overall crude oil production for OPEC and non-OPEC participating countries.
All Times Are GMT
Monday 1 December
15:00 – US Nov ISM Manufacturing Consensus: 49.0 (prev 48.7)
BMO Capital Markets’ Priscilla Thiagamoorthy said the ISM Manufacturing PMI is expected to edge up to 49.0 in November. However, the index has remained in contractionary territory for most of the past three years. She noted that production may rebound slightly after stumbling in the prior month, while new orders could also tick higher. However, the employment gauge is likely to show a faster pace of contraction amid softening labour market conditions. Meanwhile, the prices index is expected to extend its downward trend after spending much of the past year above 60. Overall, the report should underline the persistent headwinds facing the manufacturing sector.
10:00 – Eurozone Nov HICP (Flash) Consensus: 2.1% (prev 2.1%)
Citi said last week’s national HICP releases were broadly in line with expectations: Germany and Spain printed slightly higher outcomes, while Italy and France were lower. “We therefore leave our Eurozone aggregate forecast unchanged at 2.1% y/y but see upside risks of a 2.2% reading. Core HICP is tracking at 2.4% y/y, with services inflation inching up to 3.5% from 3.4% y/y, driven more by base effects than accelerating sequential price momentum.”
Speakers: Fed's Powell, Bowman
Wednesday 3 December
00:30 – Australia Q3 GDP Consensus: 0.7% (prev 0.6%)
HSBC said the Australian economy is in a modest growth upswing. Analysts noted that, unlike last year, when public spending dominated, growth this year has been led by the private sector. “The upswing is being driven by improved household consumption, supported by lower inflation, tax cuts, and a strong labour market. Data centre investment also appears to have risen sharply in Q3, while net exports are likely to make a marginally positive contribution,” the bank wrote.
“For us, the key is that the Australian economy appears to be operating around full capacity, reflected in accelerating underlying inflation and rising surveyed capacity utilisation in Q3. It will be important to assess the release for any improvement in productivity (GDP per hour).”
07:30 – Switzerland Nov CPI Consensus: 0.1% (prev 0.1%)
Nomura said it expects headline CPI inflation to edge up to 0.2% y/y in November, from October’s downside surprise of 0.1%. “Recreation and culture price inflation came in lower than expected in October, driven by package holidays, so we expect a smaller m/m decline in November to offset this. We forecast core CPI inflation at 0.4% y/y, down from 0.5% in October. The SNB forecasts Q4 CPI inflation to average 0.4%.”
13:15 – US Nov ADP Private Payrolls Consensus: 10.0k (prev 42.0k)
TD Securities said that with the BLS still catching up on delayed releases following the US government shutdown, the ADP employment report has been filling some of the informational gap. “Based on the report’s weekly trend, we expect November to show uninspiring private-sector employment conditions, with the series indicating a contraction in job creation,” analysts noted.
Speakers: ECB's Lagarde, Lane | BoE's Mann
Thursday 4 December
07:00 – Sweden Nov CPI Consensus: Y/Y 0.5% (prev 0.9%)
Danske Bank said it forecast core inflation to be 2.78% (October: 2.76%), CPIF to be 2.78% (October: 3.07%), and CPI to be 0.74% (October: 0.92%). “The monthly change in core inflation from October to November is estimated at -0.19, primarily attributed to Black Friday sales. Higher prices for electricity and petrol are expected to result in a monthly increase in CPIF of 0.25%,” said the bank.
Speakers: BoE's Mann | ECB's Lane, Cipollone, de Guindos
SocGen expects factory orders to rise 0.5% m/m in October, following positive growth in September. The bank cautioned that large orders could still distort the readings, as in the past. “The outlook is turning more negative again, with competition from China intense and US tariffs weighing. We expect winter to be challenging for industry, before a more sustained improvement emerges next year as infrastructure spending picks up.”
13:30 – Canada Labour Force Survey Consensus: Net change -5.0k (prev 66.5k)
National Bank of Canada said the strong gains reported in September (60.4k) and October (66.6k) appear inconsistent with a wide range of labour market indicators that continue to show weakness. “We therefore anticipate a partial reversal of these gains in November. We expect a 25k decline in employment, which could push the unemployment rate up by one-tenth to 7.0%, assuming the participation rate slips to 65.2%,” the bank wrote.
15:00 – US Sep Core PCE Price Index Consensus: 2.8% (prev 2.9%)
Citi economists said that based on details from the long-delayed September PPI release, they expect a 0.19% m/m increase in core PCE—slightly softer than the 0.21% they had previously pencilled in from CPI alone. “Core goods prices should rise modestly in PCE, a softer increase than in CPI, as tariff pass-through to consumer goods prices has been modest and gradual,” the bank said.
Speakers: ECB's Lane
All Times GMT
/*jshint esversion: 6 */
var socket;
var assigned_server = 3001;
var distributor_server = 3010;
var publisher_channel = '';
var broadcaster_channel = '';
var remote_ip = '';
var session_info = {};
var logging_interval;
var logging_interval_time = 120000;
var socket_emits = 0;
var session_start_time;
var reconnectionDelayGrowFactor = 1.2;
var reconnection_delay = 1000;
var playing = false;
var connected_to_assigned = false;
var socket_close_timeout;
var player_disconnected_annoucement_play_delay = 1500;
var player_disconnected_annoucement_play_timeout = null;
self.onmessage = function (msg) {
switch(msg.data.action) {
case 'Reactivate': reactivate(); break;
case 'ConnectDistributor': connect_to_distributor(msg); break;
case 'SessionStaticInfo': session_static_info(msg); break;
case 'SessionInfo': update_session_info(msg.data); break;
case 'PauseLogging': clearTimeout(logging_interval); break;
case 'RestartLogging': postMessage({action: 'RequestSessionStaticInfo' }); break;
case 'JoinPublisherChannel': join_publisher_channel(msg.data); break;
case 'JoinPlayerChannel': join_player_channel(msg.data); break;
case 'CheckChannelStatus': check_channel_status(msg.data); break;
case 'PlayerLogResponse': player_log_response(msg.data); break;
case 'CloseSocket': close_socket(); break;
case 'RequestMessageSearch': request_message_search(msg.data); break;
case 'RequestMoreMessages': request_more_messages(msg.data); break;
case 'PlayerDisconnectedAnnoucementTimeoutStart': player_disconnected_annoucement_timeout_start(); break;
case 'PlayerDisconnectedAnnoucementTimeoutClear': player_disconnected_annoucement_timeout_clear(); break;
}
};
function player_disconnected_annoucement_timeout_clear() {
clearTimeout(player_disconnected_annoucement_play_timeout);
player_disconnected_annoucement_play_timeout = null;
}
function player_disconnected_annoucement_timeout_start() {
player_disconnected_annoucement_play_timeout = setTimeout(function() { send_play_disconnect_annoucement(); }, player_disconnected_annoucement_play_delay );
}
function send_play_disconnect_annoucement() {
postMessage({action: "PlayDisconnectAnnoucement"});
}
function reactivate() {
playing = false;
connect_to_assigned_server();
}
function player_log_response(data) {
var data_array = {};
data_array.type = 'PlayerLogResponse';
data_array.respond_to_socket_final = data.respond_to_socket_final;
data_array.respond_to_socket = data.respond_to_socket;
data_array.player_socket_id = data.player_socket_id;
data_array.logs = data.logs;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
function request_message_search(data) {
var data_array = {};
data_array.type = 'request_message_search';
data_array.publisher_channel = data.publisher_channel;
data_array.search_term = data.search_term;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
function request_more_messages(data) {
var data_array = {};
data_array.type = 'request_more_messages';
data_array.publisher_channel = data.publisher_channel;
data_array.last_record_id = data.last_record_id;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
function check_channel_status(data) {
var data_array = {};
data_array.type = 'check_channel_status';
data_array.app_name = data.app_name;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1 && connected_to_assigned) { socket.send(msg_string); }
else { setTimeout(function() { check_channel_status(data); },500); }
}
function check_channel_status_response(data) {
postMessage({ action: 'CheckChannelStatusReponse', stream_status: data.stream_status.status, onair: data.stream_status.onair, connected: data.stream_status.connected });
}
function join_publisher_channel(data) {
var data_array = {};
data_array.type = 'join_publisher_channel';
if (typeof data.api_key !== 'undefined') { data_array.api_key = data.api_key; }
else {
data_array.publisher_channel = data.publisher_channel;
data_array.username = data.username;
data_array.subscriber_group = data.subscriber_group;
data_array.display_name = data.display_name;
data_array.single_sign_on = data.single_sign_on;
data_array.remote_ip = data.remote_ip;
data_array.http_referrer = data.http_referrer;
data_array.current_page = data.current_page;
data_array.php_session_id = data.php_session_id;
data_array.from_react = data.from_react;
}
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) {
socket.send(msg_string); }
postMessage({action: 'PublisherChannelJoined' });
}
function session_static_info(msg) {
set_static_session_info(msg.data);
start_log();
}
function connect_to_distributor(msg) {
publisher_channel = msg.data.publisher_channel;
remote_ip = msg.data.remote_ip;
socket = new WebSocket("wss://ws.livesquawk.com/ws"+distributor_server);
socket.onopen = function(event) { request_server_assignment(); };
socket.onmessage = function(event) {
var msg_string = event.data.toString();
var data = JSON.parse(msg_string);
switch(data.type) {
case 'server_assignment_response': server_assignment_response(data); break;
}
};
}
function session_info_interval() {
postMessage({action: 'RequestSessionInfo' });
logging_interval = setTimeout(session_info_interval,logging_interval_time);
}
function server_assignment_response(data) {
assigned_server = data.selected_server;
socket.close();
connect_to_assigned_server();
}
function request_server_assignment() {
var data_array = {};
data_array.type = 'request_server_assignment';
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
function connect_to_assigned_server() {
socket = new WebSocket("wss://ws.livesquawk.com/ws"+assigned_server);
socket.onopen = function(event) {
postMessage({ action: 'VisibleConsole',console_string: "Connected to server "+assigned_server });
console.log("Connected to server "+assigned_server);
postMessage({ action: 'ConnectedToAssigned' });
connected_to_assigned = true;
if (playing) {
postMessage({ action: 'RejoinPlayerChannel' });
}
};
socket.onmessage = function(event) {
var msg_string = event.data.toString();
var data = JSON.parse(msg_string);
if (data.type != 'server_ping') { /* console.log(data.type); */ }
switch(data.type) {
case 'reconnect': postMessage({ action: 'VisibleConsole',console_string: "Reconnected" }); break;
case 'reload': postMessage({ action: 'Reload' }); break;
case 'start_log_response': start_log_response(data); break;
case 'application_refresh_start': application_refresh_start(data); break;
case 'application_refresh_stop': application_refresh_stop(data); break;
case 'player_log_request':
case 'check_channel_status_response': check_channel_status_response(data); break;
case 'PlayerLogRequest':
case 'new_tweet':
case 'new_latest_news':
case 'delete_report':
case 'add_report':
case 'add_ref_doc':
case 'calendar_change':
case 'calendar_insert':
case 'calendar_delete':
case 'new_note':
case 'AppStart':
case 'AppStop':
case 'BroadcasterStarted':
case 'BroadcasterStopped':
case 'added_cme_report':
case 'updated_cme_report':
case 'added_cme_commentary':
case 'updated_cme_commentary':
case 'server_assignment_response':
case 'initial_messages':
case 'message_categories':
case 'more_messages':
case 'matched_messages':
pass_straight_to_post_message(data);
break;
case 'output':
case 'server_ping':
case 'reconnect':
case 'disconnect':
break;
}
};
socket.onerror = function(event) {
postMessage({ action: 'VisibleConsole',console_string: "LS Socket Error" + event.type });
console.log(event);
postMessage({ action: 'LSSocketConnectionError' });
};
socket.onclose = function(event) {
console.log('Socket is closed. Reconnect will be attempted in 1 second.', event.reason);
socket_close_timeout = setTimeout(connect_to_assigned_server, reconnection_delay);
reconnection_delay = reconnection_delay*reconnectionDelayGrowFactor;
connected_to_assigned = false;
};
}
function close_socket() {
clearTimeout(socket_close_timeout);
socket_close_timeout = null;
socket.onclose = function(event) {};
socket.onmessage = function(event) {};
socket.onerror = function(event) {};
socket.close(1000);
console.log('Socket Closed');
}
function pass_straight_to_post_message(data) {
data.action = data.type;
postMessage(data);
}
function join_player_channel(data) {
var data_array = {};
data_array.type = 'join_player_channel';
data_array.player_channel = data.player_channel;
data_array.remote_ip = data.remote_ip;
data_array.username = data.username;
data_array.app_name = data.app_name;
data_array.onair_status = data.onair_status;
data_array.http_referrer = data.http_referrer;
data_array.current_page = data.current_page;
data_array.php_session_id = data.php_session_id;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
postMessage({action: 'PlayerChannelJoined' });
playing = true;
}
function start_log_response(data) {
session_info.session_id = data.log_record_id;
session_info_interval();
}
function application_refresh_start(data) {
if (data.app_name == session_info.application_name) { postMessage({action: 'ApplicationRefreshStart' }); }
}
function application_refresh_stop(data) {
if (data.app_name == session_info.application_name) { postMessage({action: 'ApplicationRefreshStop' }); }
}
function set_static_session_info(data) {
session_info.browser_codename = data.browser_codename;
session_info.browser_name = data.browser_name;
session_info.user_agent = data.user_agent;
session_info.browser_version = data.browser_version;
session_info.cookies_enabled = data.cookies_enabled;
session_info.platform = data.platform;
session_info.player_version = data.player_version;
session_info.stream = data.stream;
session_info.connection_protocol = data.protocol;
session_info.delay_target = data.delay_target;
session_info.session_email = data.session_email;
session_info.remote_ip = data.remote_ip;
session_info.php_session_id = data.php_session_id;
session_info.application_name = data.application_name;
session_info.http_referrer = data.http_referrer;
}
function start_log() {
var session_start_date = new Date();
session_start_time = session_start_date.getTime();
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var session_start_date_string = session_start_date.getDate() + " " + months[session_start_date.getMonth()] + " " + session_start_date.getFullYear();
var data_array = {};
data_array.type = 'webrtc_start_log';
data_array.remote_ip = session_info.remote_ip;
data_array.username = session_info.session_email;
data_array.php_session_id = session_info.php_session_id;
data_array.webrtc_protocol = '';
data_array.session_start_time = (session_start_time/1000).toFixed(0);
data_array.stream_name = session_info.stream;
data_array.session_start_date = session_start_date_string;
var msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
function update_session_info(data) {
var data_array = {};
var msg_string = '';
var current_date = new Date();
var current_time = current_date.getTime();
session_info.protocol = data.protocol;
session_info.curr_delay = (data.effective_latency / 1000).toFixed(2);
session_info.session_length = current_time - session_start_time;
session_info.ping_time = data.ping_time;
session_info.jitter = data.jitter;
session_info.packet_loss = data.packet_loss;
session_info.effective_latency = data.effective_latency;
session_info.mean_opinion_score = data.mean_opinion_score;
session_info.restarts = data.restarts;
if (socket_emits == 0) {
data_array = {};
data_array.type = 'webrtc_log_data_full';
data_array.connection_protocol = session_info.protocol;
data_array.threshold = 0;
data_array.curr_delay = session_info.curr_delay;
data_array.session_length = session_info.session_length;
data_array.date = current_time;
data_array.browser_codename = session_info.browser_codename;
data_array.browser_name = session_info.browser_name;
data_array.user_agent = session_info.user_agent;
data_array.browser_version = session_info.browser_version;
data_array.cookies_enabled = session_info.cookies_enabled;
data_array.platform = session_info.platform;
data_array.player_version = session_info.player_version;
data_array.stream = session_info.stream;
data_array.restarts = session_info.restarts;
data_array.delay_target = 0;
data_array.op_sys = '';
data_array.flash_version = '';
data_array.remote_ip = session_info.remote_ip;
data_array.http_referrer = session_info.http_referrer;
data_array.php_session_id = session_info.php_session_id;
data_array.user_email = session_info.session_email;
data_array.webrtc_protocol = session_info.protocol;
data_array.ping_time = session_info.ping_time;
data_array.jitter = session_info.jitter;
data_array.packet_loss = session_info.packet_loss;
data_array.effective_latency = session_info.effective_latency;
data_array.mean_opinion_score = session_info.mean_opinion_score;
data_array.session_id = session_info.session_id;
msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
else {
data_array = {};
data_array.type = 'webrtc_log_data';
data_array.session_id = session_info.session_id;
data_array.php_session_id = session_info.php_session_id;
data_array.connection_protocol = session_info.protocol;
data_array.restarts = session_info.restarts;
data_array.threshold = 0;
data_array.curr_delay = session_info.curr_delay;
data_array.session_length = session_info.session_length;
data_array.date = current_time;
data_array.webrtc_protocol = session_info.protocol;
data_array.ping_time = session_info.ping_time;
data_array.jitter = session_info.jitter;
data_array.packet_loss = session_info.packet_loss;
data_array.effective_latency = session_info.effective_latency;
data_array.mean_opinion_score = session_info.mean_opinion_score;
data_array.stream = session_info.stream;
msg_string = JSON.stringify(data_array);
if (socket.readyState == 1) { socket.send(msg_string); }
}
socket_emits++;
if (socket_emits == 100) { socket_emits = 0; }
}
Following the long Thanksgiving weekend in the US, investors return to high-frequency surveys and delayed data releases ahead of key interest rate decisions next week.
Federal Reserve officials have now entered the media blackout period ahead of the 9–10 December policy meeting. However, Fed Chairman Jerome Powell will give opening remarks at a panel discussion on George Shultz and his Economic Policy Contributions.
SocGen said in a client note that, with few market-moving data releases due, attention may instead focus on the US delegation’s visit to Russia and any movement toward a potential deal — one that may not lead to peace, the bank cautioned, as it is expected to exclude Ukraine.
US equities posted marginal gains in November, a month marked by persistent tech-sector weakness before a late rebound. The Stock Trader’s Almanac noted that since 1950, December has been the third-strongest month for both the Dow and S&P 500, and the third-best month for the Nasdaq since its inception in 1971.
On Sunday, at the end of the 40th OPEC and non-OPEC ministerial meeting, the cartel reaffirmed the level of overall crude oil production for OPEC and non-OPEC participating countries.
All Times Are GMT
15:00 – US Nov ISM Manufacturing
Consensus: 49.0 (prev 48.7)
BMO Capital Markets’ Priscilla Thiagamoorthy said the ISM Manufacturing PMI is expected to edge up to 49.0 in November. However, the index has remained in contractionary territory for most of the past three years. She noted that production may rebound slightly after stumbling in the prior month, while new orders could also tick higher. However, the employment gauge is likely to show a faster pace of contraction amid softening labour market conditions. Meanwhile, the prices index is expected to extend its downward trend after spending much of the past year above 60. Overall, the report should underline the persistent headwinds facing the manufacturing sector.
Speakers: BoE's Dhingra | ECB's Nagel | BoJ's Ueda
10:00 – Eurozone Nov HICP (Flash)
Consensus: 2.1% (prev 2.1%)
Citi said last week’s national HICP releases were broadly in line with expectations: Germany and Spain printed slightly higher outcomes, while Italy and France were lower. “We therefore leave our Eurozone aggregate forecast unchanged at 2.1% y/y but see upside risks of a 2.2% reading. Core HICP is tracking at 2.4% y/y, with services inflation inching up to 3.5% from 3.4% y/y, driven more by base effects than accelerating sequential price momentum.”
Speakers: Fed's Powell, Bowman
00:30 – Australia Q3 GDP
Consensus: 0.7% (prev 0.6%)
HSBC said the Australian economy is in a modest growth upswing. Analysts noted that, unlike last year, when public spending dominated, growth this year has been led by the private sector. “The upswing is being driven by improved household consumption, supported by lower inflation, tax cuts, and a strong labour market. Data centre investment also appears to have risen sharply in Q3, while net exports are likely to make a marginally positive contribution,” the bank wrote.
“For us, the key is that the Australian economy appears to be operating around full capacity, reflected in accelerating underlying inflation and rising surveyed capacity utilisation in Q3. It will be important to assess the release for any improvement in productivity (GDP per hour).”
07:30 – Switzerland Nov CPI
Consensus: 0.1% (prev 0.1%)
Nomura said it expects headline CPI inflation to edge up to 0.2% y/y in November, from October’s downside surprise of 0.1%. “Recreation and culture price inflation came in lower than expected in October, driven by package holidays, so we expect a smaller m/m decline in November to offset this. We forecast core CPI inflation at 0.4% y/y, down from 0.5% in October. The SNB forecasts Q4 CPI inflation to average 0.4%.”
13:15 – US Nov ADP Private Payrolls
Consensus: 10.0k (prev 42.0k)
TD Securities said that with the BLS still catching up on delayed releases following the US government shutdown, the ADP employment report has been filling some of the informational gap. “Based on the report’s weekly trend, we expect November to show uninspiring private-sector employment conditions, with the series indicating a contraction in job creation,” analysts noted.
Speakers: ECB's Lagarde, Lane | BoE's Mann
07:00 – Sweden Nov CPI
Consensus: Y/Y 0.5% (prev 0.9%)
Danske Bank said it forecast core inflation to be 2.78% (October: 2.76%), CPIF to be 2.78% (October: 3.07%), and CPI to be 0.74% (October: 0.92%). “The monthly change in core inflation from October to November is estimated at -0.19, primarily attributed to Black Friday sales. Higher prices for electricity and petrol are expected to result in a monthly increase in CPIF of 0.25%,” said the bank.
Speakers: BoE's Mann | ECB's Lane, Cipollone, de Guindos
07:00 – Germany Oct Industrial Orders
Consensus: M/M 0.5% (prev 1.1%)
SocGen expects factory orders to rise 0.5% m/m in October, following positive growth in September. The bank cautioned that large orders could still distort the readings, as in the past. “The outlook is turning more negative again, with competition from China intense and US tariffs weighing. We expect winter to be challenging for industry, before a more sustained improvement emerges next year as infrastructure spending picks up.”
13:30 – Canada Labour Force Survey
Consensus: Net change -5.0k (prev 66.5k)
National Bank of Canada said the strong gains reported in September (60.4k) and October (66.6k) appear inconsistent with a wide range of labour market indicators that continue to show weakness. “We therefore anticipate a partial reversal of these gains in November. We expect a 25k decline in employment, which could push the unemployment rate up by one-tenth to 7.0%, assuming the participation rate slips to 65.2%,” the bank wrote.
15:00 – US Sep Core PCE Price Index
Consensus: 2.8% (prev 2.9%)
Citi economists said that based on details from the long-delayed September PPI release, they expect a 0.19% m/m increase in core PCE—slightly softer than the 0.21% they had previously pencilled in from CPI alone. “Core goods prices should rise modestly in PCE, a softer increase than in CPI, as tariff pass-through to consumer goods prices has been modest and gradual,” the bank said.
Speakers: ECB's Lane