US Briefing - Tuesday 11.02
Headlines
  • 2,478 New China Mainland Virus Cases On Feb 10 Down From 3,062 On Prior Day
  • China Virus Expert: Situation Improving In Some Provinces, New Diagnoses Falling
  • Fed’s Harker: Need To Act If Virus Takes Toll On US Economy But Not Yet
  • Fed’s Daly: Baring A Material Change In Outlook, I Am Comfortable With Policy
  • China Is Said To Be Urging Quick Output Resumption In Most Regions Amid Virus
  • ECB’s Lagarde’s ECB Review Rush May See Inflation Goal Decided By July
  • UK (Q/Q) GDP Flat As Expected For Q419; Y/Y In At 1.1% Beats 0.8% Estimate
  • EU’s Von Der Leyen: Open To 'Unique' Trade Deal With Post-Brexit UK
  • EU's Barnier Slaps Down UK Call For Permanent Equivalence After Brexit
  • Merkel's Conservatives Set To Stop Short Of Huawei 5G Ban In Germany
  • Italy 16Y Bond Sale Reportedly Said To Top EUR48Bln Of Orders In New Record
  • Tass: Russia's Novak To Meet With Oil Companies On OPEC+ Deal On Feb 12
  • Risk On: Oil Rallies As Markets Wait On Russian Response; Gold Falls
  • Federal Judge Expected To Clear Way For T-Mobile And Sprint Merger
  • Mastercard Wins Approval From The PBoC To Enter China’s $27Tln Market
Commentary
China Virus Expert: Coronavirus Outbreak May Be Over By April

The coronavirus outbreak is hitting a peak in China this month and may be over by April, the government’s senior medical adviser said on Tuesday, in the latest assessment of an epidemic that has rattled the world.

 

In an interview with Reuters, Zhong Nanshan, an 83-year-old epidemiologist who won fame for combating the SARS epidemic in 2003, shed tears about the doctor Li Wenliang who died last week after being reprimanded for raising the alarm. But Zhong was optimistic the new outbreak would soon slow, with the number of new cases already declining in some places. The peak should come in the middle or late February, followed by a plateau and decrease, Zhong said, basing the forecast on mathematical modeling, recent events and government action.

 

“I hope this outbreak or this event may be over in something like April,” he said in a hospital run by Guangzhou Medical University, where 11 coronavirus patients were being treated. (Reuters - Continue Reading)

UK GDP Review – Volatile Year For Growth Finishes On Subdued Note

- UK GDP grew by 0.3pct in December, bolstered by services and construction

- 3M/3M GDP growth was flat from 0.1pct in November

- Underlying momentum in the UK economy stagnated at end of 2019

- December trade surplus largest recorded but skewed by precious metals

- UK total trade deficit narrowed in 2019

- Higher exports helped total trade surplus in December

 

London, 11 February 2020 (LS NEWS) – Underlying UK activity came to a halt at then end of last year, but the country’s performance compared favourably to its closest neighbours over the period, according to data from the Office for National Statistics.

 

The ONS said UK GDP growth was flat in the fourth quarter compared to the previous three months, which was in-line with forecasts. This followed revised quarterly growth of 0.5pct from July to September.

 

The economy expanded at an annual rate of 1.1pct year-on-year in the fourth quarter, down from a revised 1.2pct in the previous three months.

 

Growth in December hit a monthly rate of 0.3pct to beat the 0.2pct consensus.

 

In terms of output, positive contributions included gains in services and construction. Despite a slowdown in private consumption growth to a quarterly rate of 0.1pct in the fourth quarter from 0.4pct in the third, the sector—alongside government spending—helped expenditure growth. Negative contributions came from production and gross capital formation.

 

ONS Head of GDP Rob Kent-Smith said, “There was no growth in the last quarter of 2019 as increases in the services and construction sectors were offset by another poor showing from manufacturing, particularly the motor industry.”

 

Political uncertainty added to Q4 slump

 

Economists blamed the UK’s unclear political situation for the overall deterioration in activity at the end of last year.

 

Howard Archer, chief economic advisor to the EY ITEM Club said, “Fourth-quarter stagnation continued the yo-yo performance of the UK economy through 2019 as activity was distorted by a number of factors, most notably the two scheduled Brexit deadlines. Clearly, the economy was held back in the fourth quarter by particularly heightened domestic political uncertainties as well as elevated Brexit uncertainties.”

 

A slide in growth expectations prompted members of the Bank of England’s rate setting committee to voice concern and expand the debate on a need for a rate cut.

 

The statement from the committee’s Monetary Policy Report (MPR) said, “Policy may need to reinforce the expected recovery in UK GDP growth should the more positive signals from recent indicators of global and domestic activity not be sustained or should indicators of domestic prices remain relatively weak.”

 

Nonetheless, post-election survey data has shown a slight pick-up in activity. UK Prime Minister Boris Johnson’s dominating win provided him a mandate to engage with the European Union on future trade arrangements and is expected to support consumer confidence and business investment in the near-term, a so-called "Boris bounce".

 

Economists at Citi Research said, “We still expect a rebound in the first quarter of 2020 as forestalled investment, hiring and consumption plans are realized following the Conservatives’ decisive election victory. The rebound in services and construction output in December points to resilience in the UK economy moving into the first quarter. Weakness in investment in fourth quarter may be the springboard for a rebound.

 

“However, the weakness in consumer sentiment gives us some cause for concern. If this proves sticky, weak household sentiment could weigh in the first quarter. For now, we still expect a robust rebound.”

 

International commerce supports growth  

 

The latest trade data from the ONS also offers reason for optimism. The report showed that rising exports drove the UK’s total trade balance to a surplus in fourth quarter. In the three-months to December, the trade balance increased GBP 9.3bln to a surplus of GBP 5.9bln when compared to the three-months to September.

 

Exports rose GBP 5.2bln (2.9pct) to GBP 180.5bln and imports decreased by GBP 4.1bln (2.3pct) to GBP 174.6bln

 

 “The underlying trade deficit widened, as exports of services fell, partially offset by a fall in goods imports,” said the ONS’s Kent-Smith.

 

Markets reaction

 

Sterling surged on Tuesday’s release. Cable rallied some 30-40 pips from 1.2905, above the 100-hour moving average of 1.2938 to 1.2942 and was just shy of the overnight high of 1.2946.

 

The March UK 10-year Gilt future fell around 20 ticks from 133.96 to 133.77 on the news.

 

Fiscal impetus anticipated

 

Outgoing BoE Governor Mark Carney spoke at his last Economic Affairs Committee hearing Tuesday afternoon and talked about the economy and the latest figures.

 

On the low interest rate environment Carney said: “We would expect that interest rates are going to be relatively low for a period of time, the foreseeable future, and that adjustments to rates will be relatively modest, or certainly upward adjustments to interest rates we would expect to be relatively modest.”

 

When quizzed on economic growth Carney said, “Frictions from the end-of-Brexit transition period will hurt productivity in short term.

 

“We should be providing some stimulus to bring the UK economy back to trend rate of growth. The MPC will need to take into account any stimulus in the 11 March [UK] budget in future decisions.”

 

Chancellor of the Exchequer Savid Javid’s March budget is expected to boost economic activity and was a suspected factor behind the BoE’s reticence to cut rates at last month’s meeting.

 

HSBC Senior Economist Elizabeth Martins said, “The profile of UK quarterly growth in 2019 (+0.6pct, -0.1pct, +0.5pct, 0.0pct) is unusually volatile, which is perhaps indicative of the volatility around the two planned Brexit dates (29 March and 31 October). The government hopes this uncertainty has now receded and that will be enough to lift business and consumer confidence in 2020. And indeed, the surveys suggest it may have done so -- at least temporarily.

 

“However, we remain sceptical, and indeed so does the BoE, which recently revised down its 2020 forecast for GDP growth to just 0.8pct. We expect the bank to cut rates in May, even if growth does not disappoint relative to its already low expectations. Downside news on the global environment, as well as weaker than expected labour-market or inflation prints, could be the trigger for this. After all, the BoE effectively endorsed a market curve that included a rate cut in its January Monetary Policy Report.”

 

 

--- Harry Daniels

 

@harry.daniels71

What To Look For When Fed's Powell Meets With Congress

Federal Reserve Chairman Jerome Powell heads to Capitol Hill on Tuesday at a touchy juncture: The world is awash in fear from a deadly virus outbreak, lawmakers are just getting over a historically bruising political battle, and the central bank continues to fight against the perceived evil of low inflation.

 

In his semiannual remarks to the House on Tuesday and the Senate a day after, Powell will look to provide a view on the economy and some clues on policy without tying himself or his colleagues to a specific policy path. Wall Street expects a generally upbeat presentation sprinkled with a nod toward the coronavirus threat as well as some of the other issues with which policymakers have wrestled.

 

“Generally, he’ll want to stick to the script,” said Mark Zandi, chief economist at Moody’s Analytics. “He may highlight the potential threat from the coronavirus as an issue. He’ll probably continue to remain on the dovish side.” (CNBC - Continue Reading)

Lagarde’s ECB Review Rush May See Inflation Goal Agreed By July

Speaking on condition of anonymity because the process is confidential, the officials described a rushed agenda under President Christine Lagarde, who reached her 100th day in the job over the weekend. Staff have started work despite some workstreams not yet getting formal approval by the Governing Council.

 

The aggressive start to the ECB’s first review since 2003 come amid rising concerns among some policy makers about the institution’s credibility. Despite years of controversial measures such as negative interest rates and bond purchases, it has so far failed to restore price growth to the goal of just under 2%.

 

The reappraisal has eight study teams covering themes ranging from the core topic of inflation to modern challenges such as climate change and trade, the officials said. Governing Council members will attend seminars on specific issues immediately before their next two policy meetings in March and April, one of the people said. (Bloomberg - Continue Reading)

Files & Links
LIVESQUAWK PREVIEWS AND REPORTS
DATA
GOVERNMENT/ CENTRAL BANK NEWS
FIXED INCOME NEWS
FX NEWS
ENERGY/COMMODITY NEWS
EQUITY NEWS
EMERGING MARKET NEWS
/*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; } }