Free Trial

JPM economists said that Developed..........>

US VIEW
US VIEW: JPM economists said that Developed Markets' "central bank risk
assessment is becoming more balanced." They add "perceived risks often are a
small factor in policy setting but they have loomed large in recent years. For
the DM, GDP is on track to deliver a 4th consecutive year of above-trend growth
and labor markets are operating close to full employment. Despite this
performance, central bank balance sheets continue to expand and real policy
rates remain in negative territory."
- JPM economists added "while persistently below-target inflation can partly
explain central banks' stances, their hesitancy to normalize is also linked to
concerns not reflected in modal forecasts that continue to see inflation moving
higher. Over 2014-16, weak EM growth and falling oil prices raised concerns
about the fragility of the global expansion and the stability of medium-term
inflation expectations. In addition, uncertainty related to key structural
parameters (equilibrium interest rates and NAIRU) generally tilted in a dovish
direction. Finally, the zero interest rate constraint generated an asymmetric
loss function, reinforcing the case for delayed normalization."

To read the full story

Close

Why MNI

MNI is the leading provider

of intelligence and analysis on the Global Fixed Income, Foreign Exchange and Energy markets. We use an innovative combination of real-time analysis, deep fundamental research and journalism to provide unique and actionable insights for traders and investors. Our "All signal, no noise" approach drives an intelligence service that is succinct and timely, which is highly regarded by our time constrained client base.

Our Head Office is in London with offices in Chicago, Washington and Beijing, as well as an on the ground presence in other major financial centres across the world.
}); window.REBELMOUSE_TASKS_QUEUE.push(function(){ window.dataLayer.push({ 'event' : 'logedout', 'loggedOut' : 'loggedOut' }); }); window.REBELMOUSE_TASKS_QUEUE.push(function(){ (function appendPosts () { var policyPosts = document.getElementsByClassName('policy-posts-wrapper')[0]; var policyPostsMenu = document.querySelector('.policy-posts-span'); policyPostsMenu.append(policyPosts); policyPosts.style.display = "block"; var empolicyPosts = document.getElementsByClassName('em-policy-posts-wrapper')[0]; var empolicyPostsMenu = document.querySelector('.em-policy-posts-span'); empolicyPostsMenu.append(empolicyPosts); empolicyPosts.style.display = "block"; var dataPosts = document.getElementsByClassName('data-posts-wrapper')[0]; var dataPostsMenu = document.querySelector('.data-posts-span'); dataPostsMenu.append(dataPosts); dataPosts.style.display = "block"; })(); }); window.REBELMOUSE_TASKS_QUEUE.push(function(){ document.querySelectorAll(".my-mni").forEach(function(item){ item.href="/core/users/email_login/"; item.innerHTML="Log In"; }) }); window.REBELMOUSE_TASKS_QUEUE.push(function(){ document.querySelector('.signup-form').addEventListener('submit', () => { window.dataLayer = window.dataLayer || []; dataLayer.push({ 'event' : 'submission_click', 'event_category': "Sign Up Button Clicks", 'event_label': "Posts" }); }) }); window.REBELMOUSE_TASKS_QUEUE.push(function(){ REBELMOUSE_STDLIB.createElementChangeListener('.signup-form.authentication--form',function(item){ item.onsubmit=function(e){ ga('b.send', 'event', {eventCategory: 'Signup', eventAction: 'CompletedForm', eventLabel:'pageTitle', eventValue:15}); window.dataLayer = window.dataLayer || []; dataLayer.push({ 'event' : 'signup_click', 'event_category': "Signup", 'event_action': 'CompletedForm', 'event_label': 'pageTitle', 'event_value': 15 }); } }) }); window.REBELMOUSE_TASKS_QUEUE.push(function(){ document.querySelectorAll("img").forEach(function (img) { img.addEventListener("contextmenu", function (e) { return false; }); }); document .querySelector(".site-logo img") .addEventListener("contextmenu", function (e) { return true; }); }); window.REBELMOUSE_TASKS_QUEUE.push(function(){ document.querySelector('.signup-form').addEventListener('submit', () => { window.dataLayer = window.dataLayer || []; dataLayer.push({ 'event' : 'submission_click', 'event_category': "Sign Up Button Clicks", 'event_label': "Posts" }); }) }); window.REBELMOUSE_TASKS_QUEUE.push(function(){ REBELMOUSE_STDLIB.createElementChangeListener('.signup-form.authentication--form',function(item){ item.onsubmit=function(e){ ga('b.send', 'event', {eventCategory: 'Signup', eventAction: 'CompletedForm', eventLabel:'pageTitle', eventValue:15}); window.dataLayer = window.dataLayer || []; dataLayer.push({ 'event' : 'signup_click', 'event_category': "Signup", 'event_action': 'CompletedForm', 'event_label': 'pageTitle', 'event_value': 15 }); } }) }); window.REBELMOUSE_TASKS_QUEUE.push(function(){ let posts = document.querySelectorAll(".all-content-wrapper .widget:not(.stream-story-processed)"); window.check_story_posts(posts, "streamOfPosts"); }); window.REBELMOUSE_LOW_TASKS_QUEUE.push(function(){ function populateInputsWithAPAPI(c) { document.querySelectorAll('.signup-form input[name="country"]').forEach(el => { el.setAttribute("value", c.country_name); }); document.querySelectorAll('.signup-form .country_name').forEach(el => { el.setAttribute("value", c.country_name); }); let country_code = c && c.country_code ? c.country_code.toLowerCase() : "auto"; document.querySelectorAll('.signup-form .country_code').forEach(el => { el.setAttribute("value", country_code); }); document.querySelectorAll('.signup-form .selected_country').forEach(el => { el.setAttribute("value", country_code); }); } const fetch = function (err, res) { var r = new XMLHttpRequest(); r.open("GET", err, !0), (r.responseType = "json"), (r.onload = function () { var err = r.status; res(200 === err ? null : err, r.response); }), r.send(); }; function setupCountry() { if (window.preventDuplicateExec) { return; } window.preventDuplicateExec = true; window.REBELMOUSE_STDLIB.onElementInViewport({ threshold: 0, firstOnly: true, oneTime: true, selector: ".signup-form", onIntersect: (entry) => { // when you need to get access to that data you call it in that way: let ipapiData = localStorage.getItem("ipapiData"); if (!ipapiData) { fetch("https://ipapi.co/json/", function (err, ipData) { console.log("populating inputs with data from IP API "); localStorage.setItem("ipapiData", JSON.stringify(ipData)); populateInputsWithAPAPI(ipData); }); } else { console.log( "populating inputs with data from IP API data stored in local storage" ); populateInputsWithAPAPI(JSON.parse(ipapiData)); } }, }); } setupCountry(); }); window.REBELMOUSE_LOW_TASKS_QUEUE.push(function(){ /* const sidebar = document.querySelector('.left-sidebar-container'); const stickyContent = document.querySelector('.sticky-content'); const siteContent = document.querySelector('.all-posts-stream'); if (sidebar && stickyContent && siteContent) { if (siteContent.clientHeight > sidebar.clientHeight) { console.log('grater -> ', siteContent.clientHeight + ' > ' + sidebar.clientHeight); stickyContent.style.height = (siteContent.clientHeight - sidebar.clientHeight) + 'px'; } } */ }); window.REBELMOUSE_LOW_TASKS_QUEUE.push(function(){ function populateInputsWithAPAPI(c) { document.querySelectorAll('.signup-form input[name="country"]').forEach(el => { el.setAttribute("value", c.country_name); }); document.querySelectorAll('.signup-form .country_name').forEach(el => { el.setAttribute("value", c.country_name); }); let country_code = c && c.country_code ? c.country_code.toLowerCase() : "auto"; document.querySelectorAll('.signup-form .country_code').forEach(el => { el.setAttribute("value", country_code); }); document.querySelectorAll('.signup-form .selected_country').forEach(el => { el.setAttribute("value", country_code); }); } const fetch = function (err, res) { var r = new XMLHttpRequest(); r.open("GET", err, !0), (r.responseType = "json"), (r.onload = function () { var err = r.status; res(200 === err ? null : err, r.response); }), r.send(); }; function setupCountry() { if (window.preventDuplicateExec) { return; } window.preventDuplicateExec = true; window.REBELMOUSE_STDLIB.onElementInViewport({ threshold: 0, firstOnly: true, oneTime: true, selector: ".signup-form", onIntersect: (entry) => { // when you need to get access to that data you call it in that way: let ipapiData = localStorage.getItem("ipapiData"); if (!ipapiData) { fetch("https://ipapi.co/json/", function (err, ipData) { console.log("populating inputs with data from IP API "); localStorage.setItem("ipapiData", JSON.stringify(ipData)); populateInputsWithAPAPI(ipData); }); } else { console.log( "populating inputs with data from IP API data stored in local storage" ); populateInputsWithAPAPI(JSON.parse(ipapiData)); } }, }); } setupCountry(); });