Hi, welcome to Visual Studio Toolbox. I'm your host, Robert Green, and joining me today is Brady Gaster. Hey, Brady. How's it going? Good. We're going to talk about containers and microservices. So this is Episode 4 of our five-part series on the Smart Hotel 360 app. Exactly. We had previously done the overview, we talked about the website, we talked about the mobile apps, and today we're going to talk about the guts of the matter, the microservices running in containers, running on Azure, and these microservices are basically what does all the work. Pretty much. Whether you're booking or looking up rooms or notifications or whatever. We have a bunch of this code. Tell us a little bit about the architecture. What does it mean to be a microservices app? How do microservices and containers play along? This whole stuff here running in a Kubernetes cluster in Azure Container Service. We can talk a little bit about that. We are going to do a toolbox show that is more of an introduction to containers. That's going to come out in a couple of weeks. But in the meantime, tell us a little bit about this. I can do that. So really what we did when we set out to build the Smart Hotel 360 stuff was to show a couple of things. Was to show obviously all of our technology and how awesome it is, all of our tools and all that goodness. But what we also wanted to show was sometimes you build an application, and then you have to build a second application augment it, and over time you get a developer who's good in technology, X, Y, Z. Things we get a little bit crazy. You might have a Node app, a Java app, a .NET Core app, a .NET Framework app, everything. The nice thing about is the point that Robert touched on here. I'll do it with my mouse. This area is that these are all the individual microservices that we've got. And in this case, running up in a Kubernetes cluster in Azure. So what makes it a microservice as opposed to is any? Is any service a microservice? Well, that's a really good question considering how we architected this. Robert knows that's a very hot button question, what is a microservice? It depends on who you ask on what day of the week. But to me, and I'm only going to say this from my perspective, to me microservice is a thing that you can build, that's a self-contained unit of code that does one thing. In the case of our architecture, we've got one that allows for searching the hotels. We've got an API that does some interesting configuration stuff, which we'll talk about later on. We've got the notifications API, task API, and all kinds of different things. Nice thing about all these APIs is that they literally run inside of a cluster. One thing that we talked about earlier was why we didn't put the app service inside of the cluster. We already had that public web app and we basically started bringing things that were in the smart hotel 360 architecture into Azure. So basically, sort of like you take your code and put it in a box. In lay person's terms, rather than just having a project that does all these things, booking, suggestions, sentiment, profiles, discounts, instead of having it one project, sitting in one service. One giant solution. One giant solution. We've made a WCF service, we've made a web API, but instead of having it as one big thing, all written in the same language, all by one or a small number of people. Because that happens like so never. In a real environment. You could say, well, let's break it down into individual pieces. The word micro is, it doesn't necessarily mean micro in terms of, it does one thing, it only adds, it doesn't update. It's not quite like that. You're breaking down these feature areas into their own services and then putting those into containers so that you can swap them in and out and scale them individually as needed. And then the Kubernetes cluster part is basically orchestration. It's what's running these containers of services and managing them. Now, one thing that's always been impressed upon me, I like the way you define microservice, it's not like one line of code. It's one unit of your kind of your overall topology or your overall enterprise and you want it to be totally self-contained. With that self-containment comes not only the code and the dependencies that the code needs to run, but the environmental dependencies that the code needs to run. For instance, if I wanted to run, let me look on my ribbon here. If I wanted to run PowerPoint, I would need a full blown OS. I would need some sort of a graphics card. I would need a lot of stuff. If I want to run an ASP.NET web API, I pretty much only need the.NET Core runtime, ACTP stack, that kind of stuff. So the idea behind the container is it's the bare metal that only the pieces that you need for your app to run given no other surrounding circumstances. This cluster part, which I think is interesting is if you're outside of the cluster, if you think about the cluster almost like a network. If I wanted to make a call to you, I would just say, Mac, Mac, Robert, MSFT, laptop, and it would go directly to your machine. But if I was outside, I would have to know the full DNS address. So each one of these services can communicate with one another just by saying bookings API or sentiment API or whatever, they can just communicate independently. But one thing I do want to point out here, we were talking about this out in the lobby a moment ago. These microservices don't just have to be code. We actually have microservices running that run SQL server on Linux. And that run, help me say it, you know, always screw it up. Postgres SQL, I can't say it, it's a listy thing, I can't get it right. But what we've got over here, this is the smart hotel 360 repository that we've sent you to throughout the other shows. If you scroll down, you'll see that we have this backend services link. If I scroll down in this, you'll see that we have some pretty great instructions with screenshots of how to do everything. And I'll kind of walk through what I've already done and what I would use the tools to do at this point. So I've already done a Docker compose build. What that'll do is that I'll bring down the base images that I need to. It might bring down the ASP.NET base image for the core stuff and node base image, etc, etc. It'll bring all that stuff down and then I'll deploy everything to it. And then I would use Docker compose up commands to actually do everything. In this case, what I would do first, I'll talk to people who've said, I'm being OCD about it, we're friends, I'm OCD. It's a part of the poison here. Is that I would definitely want to have my databases online first. Now I know that I could do that in my Docker compose and it would take care of everything, it would orchestrate everything. But when I'm doing it on my local machine, I'm just picky about it. So what we've done is we've given you two sets of commands that you could run that would actually bring everything up into your local Docker and you could party on it. Now I'm using VS Code in this case because there's some really awesome extensions for Docker and for Azure within VS Code. And also because if you go back to where you just were. Yep. To the architecture diagram. Sorry. Some of the services are written in. Java. .NET Core. .NET Core. Summer in Java, summer in Node. Exactly. Obviously the .NET Core ones could have been written in Visual Studio. Exactly. Could have been written in Visual Studio Code. The Node ones, same. The Java ones, not so much in Visual Studio, could have been written in code. JetBrains doesn't matter, you may have it. So rather than bounce back and forth between Visual Studio and Visual Studio Code, we're just going to do the entire episode today in Visual Studio Code. Exactly. I think you have some surprises coming later with Visual Studio and later shows. I know you've done a couple of other Docker shows as well. I'm going to do probably a two-parter on containerizing existing apps. Like you've got a web forms app, you've got a WCF service, right? Containers are not just about core and non.NET languages. In fact, they're absolutely not about .NET or non.NET. The idea behind a container is just a container. It's the bare minimum I need to run whatever code I want. We're going to do a couple of episodes in a couple of weeks or so that are containers with .NET framework apps. And then sometime in the future, Steve Lasker probably, although it could be somebody else, will come on. But I want to get Lasker on to show us some enhancements of Visual Studio that make it easier to work with this type of scenario where you've got a bunch of container, a bunch of services in containers that talk to each other. And you might have written these two, but to test the application, you need to be able to talk to all of them. There's some tooling that was shown at Kinect that is coming out in the future that will make that easier. So we'll do an episode on that. Cool, that would be exciting. That would be good stuff. But back to the present. Oh, back to the present. So back to the VS Code stuff. What I've done is I've gone into the Visual Studio Marketplace, which is where you can get all the extensions for Visual Studio that our good friends work on in the building across the street. You can also get extensions for VS Code. And what I want to point out is that there's actually an Azure category, and you can go out there and you can find a bunch of great extensions. There's one for App Service, so if I want to deploy my ASP.NET apps or my Node.js apps up to App Service, I could do that. You can access Cosmos DB using some pretty handy extensions. And then the one that we'll talk about a little bit today, if I can find the whale, is right here, this Docker extension. So that's what I'll be using today. Now the nice thing about both VS and VS Code is that both tools make it really easy for you to do things like work on your Docker Compose file, which I'll open up right here. I would get handy IntelliSense directly from within this tool or from within Visual Studio that makes it a lot easier for me to actually create these Docker Compose files. I'm not good at these files. So I usually have to lean on somebody or lean on the tools. And so again, the Docker Compose file. The Docker Compose file effectively, what you can see here, you'll see this term Services. Then you'll see the Bookings API, the Hotels API, just like we saw earlier on the architectural diagram. Each one of these guys live over here. So if I were to expand this particular folder, this is Profiles, you'll see this is a CS Proj. So that's a.NET Core app. However, if I were to go down here and expand into Reviews, you can see there's a Palm XML, that's a Java app. Okay. So we've got a bunch of different architectures running here. Now the Java apps in the Node app, they actually reach out and they make a connection to the PostgreSQL database. Yeah. And then a couple of the other microservices will actually reach out and talk to the MSSQL database that's also running in a container. So again, the Docker Compose file. It's sort of your orchestration file. It says, here's our network, here are the machine names. I want to call each one of these things. What you can also see is the Docker file. So if I were to look in the Docker file for the bookings API, we would see right here is the Docker file. And it's basically going to tell me which image I would want to pull down from the registry, how to go ahead and get started. So this file takes an image sitting in a registry. It could be the Docker registry. Basically, it could be Docker Hub. Or it could be Azure Container Registry. It could be anywhere. Brings that down and then builds the container locally with things you need. Well, builds the image locally. Builds the image. Image locally with things you need. So in this case, it's going to bring down ASP core. And then it's going to actually install the actual service into that image, which would then be able to run locally. But then you want to push it out somewhere. Exactly. And you can run publish. Exactly. And you can see here that we'll do in the front build as publish. And then we do the run.net publish. That actually just takes that publish image, like you said, and just puts that into the container. Now if we wanted to, I could use the Docker stuff right here. If I expand this, you'll see I've already done a Docker compose build. So I've already got all of my images. So the compose is just basically the equivalent of the build across the number of services. Exactly. It's like I have this whole enterprise with the services. Build each image individually. Correct. Compose will build them all for you. That's correct. It'll build them all for you. And if you were to author your compose file, again, this is beyond the scope of my knowledge, I admit.  Of course, if you're OCD like me, you probably still would do it in order from the command line. But that's just me not trusting everything. So what I'll do here is you'll see that I've already got these images inside of my VS Code tools. If I were to expand containers, it's expanded. But there's nothing there. Because I have no containers running on my computer right now at all. So what I'll do at this point is I'll flip over to my bash prompts. And you'll see that I've got Docker compose up, which will basically compose all those Docker images that I've got and bring them in and turn them on. Basically wakes them all up. And you'll see that I'm launching SQL data, reviews data, and task data. So I'm going to bring up my SQL server and my Postgres SQL databases. Containers are all running what? Linux or Windows? Linux. Happen to be Linux? Yep, they happen to be Linux. We could run these in Windows, I believe. I know the SQL one you definitely could, but why not? It's containers. So we can see that we've already got all our images running. The build would take a little bit longer than that. Now if I flip over here to the tools. And you're running locally at this point? Because I'm running locally. I'll flip over here to the tools and refresh this. We should see there's the containers that I've already got running. So you see that I've created the two Postgres SQL and one SQL server on Linux. So we've got this guy running. And over here, I'll do Docker compose up. And what you should see is that it'll go ahead and start compiling everything or not compiling where I did that with the build. It'll go ahead and launch all these images up. You'll see Spring run by, because that's our Java app that happens to be running. If you were to look closely, you would see some .NET tracing that's coming, as well as some Node.js tracing. If I'll flip over here to this guy, you'll see that my terminal window where I have the Docker compose up with the database images, you can see that now the apps are actually, the individual services are actually reaching out and talking to those databases. Now if I were to show you real quickly, if I flip over here inside of our code, you'll see that we've got this configuration service. That's actually one of the services that we sort of like glue in there for that app service that we have. So we have the public web app. Since the public web app is actually written in .NET core, if we wanted to, we could package that up and containerize that as well. We've put that in the app service that we already had that running out there. We saw no reason to do that, but when we started bringing all these services up into our Kubernetes cluster, now we've got an app service outside of that cluster that needs to reach in and make communications to the APIs. As you remember from the show with Maria, we talked about how that app actually is a spy app that uses, what was it, React to communicate back and forth to the microservices in the backend. So what I'll do here is I'll actually go up to localhost 6103, and you'll see that I've got this localhost docker. That's because we might have multiple configs. In this case, I've only got one. This is my local configuration. If I was gonna deploy this up to Azure, I'd probably have a second config file here. And the idea behind this is all of our apps can just reach out to that configuration's URL. And once it does, we can see that my app service app would reach out and it would reach out to this configuration URL. It's gonna say, I need to know how to get to the hotel's API. I need to know how to get to the bookings API, et cetera. Since this is really my development environment, this is my localhost file, I might have another file out there that was my ACR file or my staging file, just for each individual environment where I've got this stuff set up.  You can take those containers and push them into your own Kubernetes cluster. Cluster, Kubernetes. Or you could push your images into Azure Container Registry and then you could bring them into Azure Container Service. You could also put them into Docker Hub if you wanted to use that registry instead of the Azure Registry. Or we have them all up and running at public end points that you can use. Correct, correct. And if you were to take a look at the public website, GitHub repository, that one's already pre-wired for what we call our public end points. We wanted folks in the field and MVPs and folks out there and customers to be able to just clone this code and party on it without having to deploy everything. Because the only thing you really wanna see how to use is the ASP.net site in the serverless function. You might not need all this other stuff.  What you'll see that's on my screen right here is the TAS API. I've been on your show before talking about Swagger and Open API specification. We use Swagger in all these services. So if we wanted to discover them, we could do that if we needed to. Just to call out to my friends in the OAI. So, but that's kind of the smart hotel kind of the backend. This is really what we built kind of showing if you have apps that are built over time, if you have an enterprise that's being built over time and by multiple developers, multiple languages. We have the tools for a .NET developer to be able to do the stuff in Visual Studio. You could use the Docker tools of Visual Studio to build everything and deploy it to Azure. Likewise, if you're running on and on Windows environment or you're building stuff in Node or Java that you wanna use VS Code for, we've got very similar tools in there as well. We've got tools to make Docker and containers as easy as possible for you. So this is an application pattern that a lot of people are investigating, the microservices running in containers. Benefits of it. Let's just review. Gives you more of an ability to break pieces of the application up and assign them to different teams who are not necessarily all using the same language. So you've got Java developers, Node, Core and this .NET Core in this case. You can have each of them write a particular piece of it and then bring it all together. So it gives you the ability to get additional people building the app, spread the work around. You've got more separation of these things so that it's easier to swap them in and out, easier to scale them up and down as potentially needed. So bookings, the actual hotel API to talk to the hotel may be stable over time, but bookings tend to peak, have peaks and valleys, think about classic example. One other thing we talked about. Black Friday in the hotel. Exactly, scaled out or what have you. Right, so it makes it easier to scale individual pieces. Then containerizing them gives you again, the ability to, makes it easier to scale, makes it easier to deploy these individual pieces and then the Kubernetes part is just an orchestrator. Just an orchestrator. Not that that's a little deal or anything. Thank you, Kubernetes. Yeah. This is a complex topic, unfortunately. One other thing we talked about in the green room out there was the concept of SQL and Postgres SQL. So why would I want to put a database? You have databases running in containers. Right, I said well let's say you have a monthly process or a weekly process or something that just happens intermittently. You might not want that database running online all the time because you might need that database online for 10 minutes a month. So if you put that into a container image, put that into your registry, whenever that process kicks up, it would bring that image over. Now you have a SQL server running in the cloud, you do your data massaging whenever you gotta do with it, take it out. So it's good. So you would save money there too because then you wouldn't have everything running all the time. Okay, so this is kind of a modern architecture. And so, folks watching this, go take a look at the code. Again, you have the ability to run it all locally in your own containers. If you don't want to do that, you just want to run the apps calling existing services. We have them all running publicly. So you can kind of decide what you want to do here. Exactly right, all right. And we have all the shows are going out pretty soon and we'll have a nice page for you to learn all about SmartHotels 360. We'll be tweeting about- Three of the shows are up. This is the fourth and the fifth is ready to go. We've already recorded it. Exactly, we did amount of order. Yeah, I'm about that. We containerized it. There you go. Awesome, thanks a lot, man. Thanks, Brady. No problem, thanks a lot. All right, I hope you enjoyed this. Take a look at the code, let us know what you think about it, play around with it and we will see you next time on Visual Studio Toolbox. Take care and don't forget to send pull requests if you have ideas.


What the FreeRTOS requires from you when you implement it on a microcontroller? It's not much, but it's still enough to be able to do all the tasks that you expect from the FreeRTOS. So when you implement the FreeRTOS, it will allocate the system timer. It will use the system timer as a periodic time base. Typically, you can set up your own frequency of the time base, but the shortest time you could use for the time base is defined as 1 millisecond. It doesn't allow you to go faster, but you can define 2, 5, 10 milliseconds, so the granularity is on you, but the resolution is 1 millisecond. So a system timer sys-tick is hooked to sys-tick interrupt. So you need to hook or let the RTOS take the sys-tick interrupt. Further, it gets access to the stack pointers, MSP, so main stack pointer, and program stack pointer. The MSP is used for the interrupts and the scheduler, and it's used during the task switch. However, the PSP program stack pointer is used for the tasks to point to their local stacks, which means if you run your task, it uses its own dedicated pointer to the stack, and it moves with that. However, when you jump into the scheduler, the scheduler uses its own separate stack pointed by the main stack pointer. So they are independent, they don't cross each other, and that has got a safety benefit. Further, it takes another interrupt vectors. It takes the system service call to get the priority when you call different API functions. So if you want something from the RTOS, you have to switch from the thread mode to the interrupt mode so that all RTOS functions occur in the interrupt. This has one benefit because the free RTOS runs in a dual stack model where it has separated privileges for the tasks and for the kernel. And by calling the SVC function, you are giving it all the privileges for the kernel, and the free RTOS takes care about all the functionality with high privilege. That's why all the functions are running in the interrupts. Further, it has got a hook on the pandable system service call, which is an interrupt used for switching the context. This is an asynchronous interrupt typically with a low priority that is switched on by setting a flag in the NVIC controller register. So when you want to do a context switch, you set this flag, it will launch the interrupt and this will do the context switch. The advantage is that you can trigger the context switch, for example, at the end of the standard interrupt routines. So if you have an interrupt from UART where you send this new data to the queue, you typically call or put the data in the queue in this interrupt, and then it will trigger the pandable system call, so that when the UART interrupt finishes, the pandable system call will be launched just afterwards. So it's very effective, uses tail chaining and it allows you to do more stuff and process the context switch just once at the end of the interrupts. And it takes the sys-tick. The flash memory it needs for the kernel depends on how many features you want to implement. You can strip all of them away, so you can remove mutexes, counting semaphores, timers. You can decide which memory management you will use and this all will add to the complexity and size of the kernel. So if you want a really minimal one, you will just probably use queues and mutexes and nothing more. But if you want a full featured freeRTOS kernel, it will be a little bit bigger. In terms of RAM, it will allocate approximately half kilobyte plus everything you give to the heap. Using the system service call, it's launched by an instruction where the instruction holds the number of the request. Such mechanism is typically used in the RTX from Kyle. FreeRTOS doesn't use it that much, so we can probably skip it. The pandit or pandable system call interrupt is the one that takes care about the context switch and it can be launched by this line of code. One thing the pandable system call doesn't execute immediately, but only when all higher priority interrupts are finished. The system service call instruction is executed immediately while pandable system call is pandable, so it means it can wait. Speaking about the system timer, it's always allocated by the FreeRTOS. When you operate with the STM32 and with the hardware abstraction layer, the hardware abstraction layer needs as well a time base. When you don't use the FreeRTOS, SysTick is used as the time base. However, if you activate a FreeRTOS, the Cubemix will warn you that you need to use a different time base for the hull. It has a very good meaning because if you combine several different tasks and you would wait for the same interrupt from the SysTick to elapse a timeout and to finish the context switch, you would create a code lock and you wouldn't be able to recover. So having the SysTick used for both hull time base and the FreeRTOS time base is quite a dangerous thing. So we don't recommend it and that's why we offer another timer as a time base for the hull. So please use it. Typically, if you choose in the SysSection of the Cubemix the time base for the hull as a timer 6 or 7, which don't have much other usage, you do the best thing. Because timers 6 and 7 are very small in implementation and can give you only a periodic interrupt, apart from the synchronization of the ducts. Normally, when you have a Cubemix open and you click on the FreeRTOS, it gives you an option of chapter Sys, like system, that you can choose a time base from a list of timers. So it can be a SysTick, it's not recommended, but it can be as well any other timer. If you choose the timer then it will be grayed out so you can't use it for any other purpose. But it will be then automatically initialized by the init code and it will be used as a time base for hull.


Published in August 2021. This article was authored by Hafsa Sohail, Shah Ali Ahmed, Parveen Usman and others.


Hello and welcome back to the final session of day one. The past decades have been characterised by a sustained period of stable inflation. But with populations set to age, will those forces that have been so beneficial to central banks go into reverse? And how will the pandemic affect the inflation outlook? Central banks around the world have been adopting their monetary policy for, sorry, adapting their monetary policy frameworks. The strategy review that the ECB conducted saw it redefine its inflation target, centring it around a 2% goal. With interest rates close to the lower bound, there's been more of an emphasis on keeping monetary policy measures in place forcefully and persistently. But will that work? Today, I'm delighted to say we have a highly distinguished panel to answer these questions. Our chair for the session is Isabel Schnabel, a member of the European Central Bank's Executive Board. Ms Schnabel, the floor is yours. Good afternoon to everybody, and thank you very much, Claire, for the introduction. It is a great pleasure to welcome all of you to our panel on the future of inflation. As discussed by the president in her speech at the beginning of today's conference, there is hardly any topic more relevant for the conduct of monetary policy than the future of inflation dynamics and their most likely underlying drivers. In our strategy review, we extensively discussed the factors that may explain the sustained decline in inflation rates over the past decade, such as this inflationary expectations in the vicinity of the effective lower bound, secular stagnation and structural factors like globalization, demographic change, inequality and falling productivity. But today we will discuss the future of inflation. Are these inflationary structural factors here to stay, or will some of these factors start to revert? Will we see a more sustained increase in inflation after the COVID-19 pandemic due to highly expansionary fiscal and monetary policies, pent-up demand and supply bottlenecks? Most market participants continue to perceive the recent surge in inflation as largely temporary. This view is in line with the ECB's latest staff projections. But an increasing number of observers argue that price pressures might persist. In the light of this highly topical debate, we are delighted to welcome three excellent speakers to this panel to shed some light on this discussion, bringing a variety of different views. The panel is scheduled to last for one hour, with 10 minutes each for our three panelists' introductory remarks. The remaining 30 minutes will be allocated to the discussion among panelists and with the audience. Please raise your virtual hands if you would like to ask a question. Our first panelist is Gita Gopinath, Economic Counselor and Director of the Research Department at the IMF, who will share with us her perspective on the global inflation outlook and on how different cyclical and structural factors may evolve in the years to come. Gita, thank you so much for joining us today. The floor is yours. Thank you, Isabel. It's a real pleasure to join this panel and speak on this highly topical and important issue. So since we are talking about the future of inflation, I think it's appropriate for me to start with what we expect at the IMF to be the future of inflation in the near term in the next couple of years. And so this is where this is the first slide I start with. So we have here on the left our projections for headline and core inflation in the U.S. and in the Euro area. As we all are abundantly aware, inflation is running high, both headline and core in the U.S. As of now, but the expectation is that this will be transitory in the U.S. It is transitory in the sense that it will come down, but of course it will stay at some elevated levels for a few more quarters. And by the end of 2022, it comes down to levels more in the normal ranges. It's also important to compare with what our focus of the Euro area, which is that for the Euro area, we also have transitory forces that we expect will bring down inflation. In fact, faster than what we have for the U.S., given the differences in some of the policy senses. And importantly, our projection for the end of 2022, for instance, which is what you see in this graph, is for inflation to remain significantly below the ECB's two percent symmetric target. So this is where we are. So now this is our baseline. And the question is what are the main forces driving this particular view? Firstly, is that, of course, we have the so-called base effects, which is, for example, the fact that last year, German VAT rates were cut and now they are being raised up. So that's going to show up in inflation today. A second factor, of course, is what we've seen with commodity prices. We have a 60% increase in commodity prices this year. It's highly unlikely that we will have multiple years of another 60% increase in commodity prices. And then there are, of course, sectoral factors, like specific to certain countries in the U.S., a used goods price inflation has been driving important parts of the story. So if you look at the middle graph, you see that inflation in many parts of the world, not just in the U.S. and in the Euro area, this time around is being driven by goods price inflation as opposed to services inflation, which is anomalous relative to what we have seen over the last decade, where it is mainly services inflation that tends to drive core inflation and headline inflation in most, in many cases. And again, there is variation. But this is a reflection of the fact that with one, there is the pent up demand that has returned strongly for certain sectors, but also the supply side bottlenecks that are persisting. And I would say that they're persisting much longer than many of us expected at the start of this year. So the pandemic driven bottlenecks, I think, are an important factor weighing on the prospects including for inflation going forward. What the right graph shows you is one of the variables that give you some sense of what might happen to inflation. And this is on inflation expectations, it's long run inflation expectations. And you can see that this remains very well anchored as of now, and including the large announcements that have been made on fiscal policy and monetary policy in the last 12 months, including on conventional policies in emerging markets, did not have much of an effect on these inflation expectations numbers. Now, of course, what also matters is what's happening in labor markets and what's happening to wages. There again, while there are issues with labor mismatch, there are issues with a large number of vacancies being posted, yet jobs not being filled. And at the same time, large levels of unemployment. It is the case that you do not see widespread wage inflation showing up again as of now. So even in the US, where overall wage inflation is high, that is driven by a few sectors like recreation and retail and hospitality, and you're not seeing a broad based increase in inflation. So that is the baseline. But of course, we have to keep in mind that this is a very unusual recovery. And there is high uncertainty. And in our opinion, there are upside risks overall to inflation. So first, let me look at one of the reasons we could have inflation surprising on the upside. But before I tell you why we want to worry about the upside, let me just give you a picture here of sectoral inflation dispersion. This is over time. It goes back to 2000 over the last 20 years. Now, we've seen some very big prints in terms of inflation for certain specific sectors. And you might think that that puts sectoral inflation dispersion as some sort of a historical high. But actually, that's not the case. If you look at this figure here on the left or on the right, we are seeing sectoral inflation. Certainly you have dispersion, you have some sectors, which is where the right graph shows you going up quite a bit. But that said, overall historically, and especially compared to the period of the GFC, dispersion remains well within historical ranges. But okay, let's now look at all the reasons that one needs to worry about upside risks to inflation. Firstly, I think there is the issue of certain sectors where we haven't seen the pass through to inflation. And I think housing is one such sector in the US, where we haven't shown it while we've had a big increase in housing prices. It hasn't still shown up in owner occupied rents. And that tends to be the case. It shows up with a lag. There are certain services again, which are inflation is being held back also because of the pandemic. And the supply bottlenecks are not going away any time soon. So this last graph that I slide that I have here digs into possible sources of inflation risks on the upside. And so the left graph simulates a scenario where there are adverse sectoral and commodity price shocks that continue. And today's, for instance, oil price reading of going up to $80, it tells me the fact that we're not over this yet. But let's suppose that there you have multiple months of commodity price shocks on the upside. By the way, comparing this to history, that will be a pretty rare occurrence. It would be a 0.01% probability, which is why this is a tail risk. But again, in that scenario, you get inflation breaching levels well above what central bankers would be comfortable with and taking much longer to come back down. The right graph shows you a perfect storm, where in addition to these sectoral and commodity price shocks, you can have a shock to the expectations formation process. And because it becomes much more adaptive in nature. And in that case, again, you can see inflation, the median forecast and the mean forecast being around 8% to 12% drain so that it can turn out to be very high. But again, to be clear, this is a tail risk of inflation getting to levels that we haven't seen in multiple decades. Now, I want to end by a few comments on what to expect going forward into the further future, and I will make a few following points. Firstly, policies matter for what the path of inflation is going to be. So the particular stance of fiscal and monetary policy has important implications for the evolution of inflation. And we've seen that in past episodes of inflation scares. So it's not something that we can take. It's not as if policy has to take the power dynamics of inflation as given. It has a role to play. And this requires that a lot depends on what the perception are of the preferences of the central bankers. And so therefore, in addition to what the central bankers do, it's also important to communicate very strongly the adherence to the mandate to set clear triggers for when they will respond and to follow through when those triggers get hit. So it's very important for sound, monetary, and fiscal policy. Second is what about some of the structural forces? I will start with automation. I think there's every reason to think that automation will only increase further, which will then further mute the pass-through of wage inflation into price inflation. Another area is with respect to inequality and in terms of what spending, where spending gets done. Again, while savings rates have gone up, it's unlikely that all of the savings will show up in immediate consumption in the near term. And then, of course, there is the question of pricing power and profitability. What we've seen so far is that firms have tended to be very profitable in coming out of this crisis, so they have more of a buffer to also withstand some of these input prices increases that they're seeing. And then I'll end with globalization, where there is, of course, a bit of a mixed picture, which is that while as of now, there are supply disruptions, there are pandemic-driven disruptions, I think overall, we have to still determine whether we're going to see any kind of a real reversal of globalization. If that does happen, then, of course, that has implications for productivity, that has implications for price competition, and that can then have a possible upside risk to inflation. But again, I think the jury is still out on whether that's going to be the case. So let me just conclude with the basic point that the baseline is for transitory, though elevated inflation for a few more quarters. At the same time, we have to be concerned overall about upside risks at this juncture, given the unique nature of this recovery and the fact that we are seeing these very strong supply-side disruptions. So let me stop with that. Thank you very much, Gita, for these excellent remarks. It's interesting that you are actually stressing so much the tail risk. I would be interested in hearing how we actually judge these risks for the euro area, which of course has had very low inflation rates in the past. So let me now turn to our second speaker, who is Charles Gautard, Professor Emeritus at the London School of Economics, who was one of the first who challenged the view of high inflation being transitory, not only in the short but also in the longer run, by pointing to changing structural trends. He will also reflect on the impact of the COVID-19 pandemic on future developments. Charles, it's great to have you here. We're looking forward to your observations. Thanks. Thank you very much, Isabel. It's a pleasure to be here. The world at the moment is in a really rather extraordinary state, because we have no general theory of inflation. We used to have two interconnected theories. One of these was the Friedman monetary theory that inflation is always and everywhere a function of too much money chasing too few goods. Now, that theory has become so discredited that central banks now, as a general matter, do not even mention monetary aggregates at all, and seem embarrassed to do so. Then, of course, there is the somewhat interconnected Phillips Curve, the relationship between the natural level of unemployment and the rate of inflation. And that has also been behaving rather oddly. So into this vacuum has come what I rather tend to consider as the bootstrap theory of inflation, which is that as long as inflation expectations are anchored, inflation will also remain anchored. In other words, inflation depends on its expectations. Now, this unfortunately is a very weak read. It's a very weak read because actually inflation expectations are much more closely associated, as you can see from this particular chart, with what has happened in the past, which people tend to extrapolate, than what is likely to happen in future. As you can see by comparing the left hand autumn, which is the relationship between the Michigan Five Year Inflationary Expectations and the backward Five Year Moving Average of Inflation, as compared with the right hand, which is the relationship between the same Michigan Expectations and what actually then occurred in the subsequent five years. So that inflationary expectations are really not very good and not very useful in indicating what is likely to happen in future. They're adaptive and backwards looking. Now, you may not take my argument very seriously, but there has been a very recent and I think important though very controversial paper by Jeremy Rudd of the Federal Reserve Board. And if anything in my presentation, I hope that you will take away is the need to read that paper. It came and it came out a few days ago. And its title is, Why do we think that inflation expectations matter for inflation? And should we? And I'd just like to read, to give you an indication of how controversial and disruptive it is, one short paragraph. It is far more useful, I quote, it is far more useful to ensure that inflation remains off of people's radar screens than it would be to attempt to re-anchor expected inflation at some level that policymakers viewed as being more consistent with their stated inflation goal. In particular, a policy of engineering a rate of price inflation that is high relative to recent experience in order to affect an increase in trend inflation would seem to run the risk of being both dangerous and counterproductive in as much as it might increase the probability that people would start to pay more attention to inflation. And if successful would lead to a period where trend inflation once again began to respond to changes in economic conditions. And Jeremy and I tend to think that what has been important has been the changes in trend inflation, stochastic trend inflation movements, which I, though not him, I attribute to the fact that over the last three decades, there has been the greatest surge in the availability of labor, particularly of those who can move production from high to low wage economies, and that this huge surge in the availability of labor is about to and indeed is currently reversing very sharply. In the absence of any general theory of inflation, what we have heard from Gita and President Lagarde has been what you might describe as a menu of different bits and pieces of inflation of commodities, inflation in bits of services, inflation in good shortages of shipping, et cetera, et cetera. What you might describe as a bits and pieces approach rather than a general approach to inflation. In our view, one of the key factors is the availability of supply side shifts in labor. And I was particularly noticed that in President Lagarde's discussion, as far as I can tell, and I try to listen fairly closely, there was absolutely no discussion whatsoever of the fact that in most continental, well in many of the key continental countries, the growth in the working age population is not going to slow, it's actually going to decline. So all the factors that have led to an increase in labor, the reduction in labor bargaining power that went with it, the decline in trade unions, et cetera, et cetera, all that will now reverse. And we are beginning to see already, and much quicker than I'd ever expected, quite rapid shortages of labor in many sectors, which is now expected to continue and deteriorate to some degree, even after the temporary anti-COVID policy measures like furloughs and so on have gone away. Can I turn to my next slide, please? Next, thank you. I'd like to turn now briefly to housing crisis. I very much welcome and applaud the ECB for thinking of including owner occupied housing on a net acquisitions basis into the HICP, Harmonized Index of Consumer Prices in future. I should warn you, however, that this is going to introduce a much more volatile element into the index, as you can see from the blue line. It's much more volatile than the rental element. These data, of course, come from the United States, but the rental element will come up. In some of the discussion we've heard earlier today, there's been comments that there's no sign of instability in the housing market of housing booms and busts. Well, actually, there is. There has never been such a worldwide coordination of sharp housing prices as is currently in process. There is no reason to believe that that worldwide coordination of very high and sharply rising housing prices is going to go away. If you were to include a net acquisition basis of owner occupied housing into the present ECB Harmonized Index, you would find that that Harmonized Index would be quite considerably higher than it is at the moment. And if you take the US position where it is the rental income, the rental approach that matters, it is likely that the rental rents will start rising to reduce the margin between new house prices and rentals, and that will lead to some considerable persistence in inflation over this period. So can we move on to the final slide? Now, there are clearly different elements in inflation, and some of the COVID supply shortages will will over time decline, perhaps more slowly, even than is suggested in this particular chart. But offsetting that, the effect of the labor shortages as the working population declines in many countries, slows more or less everywhere, and the ratio of workers to the aged worsens continuously. And again, as has been pointed out, it is the intention of policy at the moment that monetary policies should remain strictly accommodative. We're going to get declines in unemployment, and that is going to mean that cyclical inflation is going to rise. So offsetting the decline in supply shortages is going to be a rise over coming years in cyclical inflation on both of you, like the Phillips and the Freedman type approach, underlying which, of course, is the demographic and globalization change, which makes the availability of labor from having been coming out of your ears to being hard to find, and people will bid up wages in order to deal with the shortages of workers that they will increasingly be facing, not just temporarily. If that's not transitory, it's here for the long run. And that's enough for me. Thank you very much, Charles. So you were as provocative as ever. So thank you very much for that. And we can now turn to our final panelist, who is Francesco Lippi, a professor at Lewis University in Rome, who is well known for his research on individual firms' price-setting behavior and on how this may influence the transmission of economic and monetary shocks to the real economy, and ultimately to inflation. This is an area that our researchers in the euro system are also exploring in the context of our Prisma project. Francesco, we are very much looking forward to your intervention. Thank you. Thank you. Okay, so thanks for the invitation, and I will start like people before me by saying something on the current juncture where we stand. When asked to talk about the future, needless to say this is an intimidating task. And my only compass in doing this will be to appeal to some kind of logical thinking informed by data and history. And I think a formal analysis is really at the heart, even a very simple one of any verifiable statement that one should make. And I will discuss in order conjunctural trends, and then if I have time, I'll turn to some structural issues. So let me start from a very basic historic perspective of what's happened in the past 20 years of ECB policy. Inflation has been remarkably stable compared to the past. It hovered about 2% in the first 10 years. There seems to be two regime in the last 10 years. Inflation has been more volatile and something that's been extensively discussed. Its average value has been often below the 2% target. Yet, I think it is important to keep a big picture image in mind. We have had no big deflation, no big inflation. We've been afraid of having deflations a few times when inflation was close to the bottom. And we've been afraid of losing the control of inflation in other instances, as we maybe are now. But this did not happen. And why did it not happen? Well, I'm going to put forth some bold propositions here, strongly in contrast with what Charles said before me. I think history has told us that stable inflation is the result of good monetary policy. And if you keep a good compass steady, you will get the low inflation. Just like you cannot sail a boat with the perfectly right course, the boat will be moving up and down. But if you have a good captain, the boat will move steadily towards its target, the same way monetary policy will behave with respect to inflation. And my prediction for the future is that as the good policy continues, similar outcomes will occur in future. So what am I basing these things on? I do have a simple model of inflation in mind. This could be made very complicated, but it's not for today. I want to think of a price setter, somebody who runs a firm out there having to choose the new prices for the next year, PT plus one. Now this agent, this person, is facing some transitory shocks, the prices of energy, the price of imports, technology shocks, robots, et cetera, COVID shortages. But also in doing, in setting prices for the future, he must be having an idea in mind about where the aggregate prices, the general level of prices is going to go. And this is where expectations come to play a big role. And many of us in Southern Europe have learned the lesson the hard way because we live through the 80s and we know what happened. Others who travel to Turkey or Argentina can still see that today. So it's a lesson that it's maybe easy to forget when you live in a low inflation country, but we should be aware and learn some history because history can teach us a lot about that. What I'm saying is that we have to, in looking at inflation data, we have to disentangle the temporary from the systematic component. And moreover, I have two propositions in mind. The first proposition is that we should not, we as policymakers and analysts, we should not confuse relative price shocks with trend changes. You know, yes, maybe there's going to be labor shortages. Labor is going to become more expensive. Real wages will go up. Maybe energy will become scarce or more expensive because of green concerns. And then it will become more expensive. But these relative price movements ought not become inflation. They're relative price movements. And, you know, the anchor to the overall movement of the price index is not given by what happens to real wages. It's given by what happens to monetary policy. So I'm, when I say this, I appeal to, you know, a long run dichotomy between nominal movements and real movements that I think it's clearly there in the data and will be there in the data. And there's good reasons why it will be there, you know, because theory, a minimal amount of theory will tell you that it has to be so in the long run, that you cannot. It's very difficult to generate permanent real effects out of nominal shocks. And, you know, essential to the future of good policy is that monetary policy is credible and maintains and continues to do what it has been doing up now, not being confused, you know, oh, maybe we got low inflation because we were lucky. No, it was a result that followed from the actions that were put forth and those actions must continue. So let me give you some examples of things that I find confusing. Every time I took this picture from one of Isabel's presentation, every time I read about these inflation scares or the fears that you were going back to the Weimar Republic, I find that really incredibly wrong. How can we be so confused from confusing like a temporary price increase with the permanent inflation scares? Now, I'm not saying that it would not be possible to go back to the German Weimar to the Weimar Republic, but, you know, that would take a very different monetary policy from the one that, thanks God, we have today in the Euro area. And, you know, these inflation scares look even more peculiar if one looks at the recent history of deflation scares only, you know, a few months ago. So my second proposition is that, and I know it's a bold proposition, but I will echo what Dieter also said in our presentation, policy is the key. Fiscal and monetary policy is the key to the final outcome. And perhaps a big, one of the biggest lessons we had in this area was the 70s, you know, when oil shocks hit almost all of the developed country.  I could have put any other big developed countries there. Germany would be behaving different from all of these countries. And why is that? It is because monetary policy was conducted in a very different way. It is not because Germany was less energy intensive or what have you. And the lesson was learned and the monetary union was created. And, you know, if you see it from the south, this is a very clear message. Of course, I just gave you one picture. This is no hard theory, but there's very many historic episodes supporting this view, the great work of Tom Sargent and George Hall at New York University, they can, if you're curious, you can read about really tons of material about episodes like this. Now, let me make a remark about expectations. I do find, I am claiming that central banks should control expectations and use them as an indicator of whether or not they're doing their job right. Now, I found an extremely interesting paper by Ricardo Rice, recently published in the Brookings papers, who's found some data from the 70s on what happened to inflation expectations following the oil shocks. These are data from the Michigan service that Ricardo was able to recover. And what you see is that, you know, before the shock, you had this kind of unimodal distribution centered around the 5% inflation and following the oil shocks. What happened was a de-anchoring of the expectations. You see this bimodal green distribution here, so there is an increase in the dispersion of the cross-sectional expectations that signals, and Ricardo claims that this happens in real times. He also has some recent examples on Brazil and Turkey, this increasing disagreement about the private sector expectations signals that the central bank is losing the inflation anchor. And now if I look today at what I can look at, like the survey of monetary analysts from the ECB, what do I see? I see three histograms here from three different dates, September to June, and I see just a slight movement of the mean closer to 2%, which is exactly what I expect, given the strategy review. I don't see any opening up of this agreement. I don't see any growing tail of upward risks. So I don't want to look too naive. I know that there's many complications one may look at, but overall I think this is a signal that expectations are being kept under control. It would be a big mistake to overreact to these facts by, I don't know, raising rates or showing that we are panicking. So my prediction for the future of inflation is that inflation will remain under control. It will get closer to 2%. In some sense, I don't find it so mysterious that it was below 2% on average, given the previous below but close that will give rise to some kind of peso problem in expectations formations. It got to be below 2%. And I was happy in reading the review of the strategy to notice the several margins of improved communications with the various audiences that are facing the ECB policy, because that's key to a better control of expectations. And I was also very happy to see that several downward risks have been recognized without compromising on the main objective, which is a low inflation objective. Now, if I have one more minute, Isabel, I'm not sure how I'm doing with time. Over time already, let's say 30 seconds. Is that fine? Okay, yes. I'll just take 30 seconds to mention that actually most of my work is not on the cyclical analysis. I work a lot on structural issues and what determines the linkages, the temporary linkages between inflation dynamics and other real variables, such as, you know, a shock to wages or a VATI and how that will transmit into inflation and real variables. And I was very happy to see that the ECB and several scholars are working to produce better data such that this analysis will be useful for us scholars to study and predict what the future of this propagation of shocks, which is an important dimension, will be. Thank you and sorry for getting out of time. Thank you. I'm done. Thank you so much, Francesco, for another very exciting presentation. Thank you also for giving us hope because, as you know, we actually have an excellent captain. So that looks good for the future inflation outlook. So thank you. Thanks to all of you for your excellent presentations. Let us now turn to the discussion. I would like to give all three of you the chance to very briefly respond to each other before we give the floor to our listeners for further questions. And I can tell you, we already have a long list of people who would like to intervene. So maybe you can be relatively quick. So maybe we go in the same order as before. So I don't know, Gita, maybe you want to start? Sure. Yes. Now, it was wonderful to listen to Charles, who said we should just effectively throw out all the frameworks that we have. And then Francesco, who said, well, we should embrace them even more than we are currently doing. So where do I end up? I would say that I am certainly closer to Francesco than to Charles. I would be a little, I guess I would have a little more humility about how our models do and how well we are able to control the path of inflation and how well we can steer the ship. Just given the recent history of missed targets, Japan strikes me as an example, for instance, of a country where we've had expansionary monitoring, expansionary fiscal policy. And yes, you can come up with very clever stories about incredible amounts of rational expectations to kind of get around and say, well, still they haven't done enough. But again, I think there is a lot that still needs to be understood. And Japan is also an example that I will use to counter what Charles said, which is the point about shrinking labor force and the implications of that for inflation. It can go in multiple different ways. Again, Japan is a country where since 1995, the labor force has been shrinking. And since 2008, the population has been shrinking. And if there's ever a country that's had the hardest time hitting its inflation target from below, it is Japan. So again, we have to keep in mind that demographics have implication on supply. They have implications for demand also. It has implications for savings. It has implications for investment. So overall, again, I don't think that we can draw a very simple conclusion based on one particular line of argument in terms of demographics. I'll stop with that. Thank you very much, Skita. So Charles, maybe you can be relatively brief, because as I said, we have a long list of speakers. The problem is that we don't have a framework. The only framework that is left is this inflation expectations lag, which is frankly, extremely weak. As for Japan, the problem with much economics, macroeconomics at the moment, is it is all done in terms of single nations, where you have to look at it in terms of the world. And the IMF should do that more than anybody else. And the reason why Japan didn't inflate, despite its adverse demographics, was its next door to China. And China was disinflating the world by producing cheap goods, and everybody was offshoring their production to China. And you've got a shift of the labor force from manufacturing to services, from good, stable, high-paid jobs in manufacturing, to low-paid, unstable, precarious, part-time jobs in services. If you look at the world or the trading world, the China made a huge difference in the last three decades. And China's demography is changing rate of knots. Its working population is actually going down. China will no longer disinflate the world if anything is going to go the other way. Look at the world when you're looking at individual countries. Don't focus solely on each country one at a time. Isabel, I'm sorry. I have to jump back in there. We can have a much longer discussion on this, and I'm happy to go into a discussion of the world as a whole. But Charles, again, I don't think your argument stands. All right. So I guess we have to postpone that discussion to later. But Francesco, maybe you can give your very brief thoughts on the two other presentations. Very briefly, I like Charles's hypotheses. I mean, I'm not saying that the demographic changes are not important. I just don't see the connection with inflation. That's going to be a real factor. And during the great bubonic plague in the 14th century, there was a major reduction of the world population and wages went up. In that occasion, there's demand and supply factors. But what does this have to do with inflation as long as monetary policy responds to it? I really don't see it. And let me just make one remark. I know that I've been a bit bold and I embraced our models perhaps too much, as Gita said. But the only reason for me to do it is what I read these days in the press, like this discussion paper by the Federal Reserve Board, who's just overshooting on the other hand, as if we know nothing or just, you know, frankly, I read these papers, and I don't know what to say, because these papers don't have a single, like, clear statement that you could confront with. There's no, like, model. There's no data. There's just a set of very weak, vague statements that I have a hard time, you know, understanding whether it's true or not. It's non-falsifiable. And that's a problem with, you know, the critics of the orthodoxy, as it's called, because if you don't have anything formal, how can it be criticized?   So I don't know, we could get much more technical, but I just don't see, you know, so the reason I'm concluding, the reason I'm exaggerating is that I don't want to toss the baby with the bad water. We know a lot and we should not forget about what we know and jump, you know, on things that we have no idea of. Thank you very much, Francesco. So let us now turn to all the questions that have come up from the audience. So I will start with Elgar Barc, after that, Krishna Guha and then Ricardo Reis. So Elgar, please, you're the first one. And please, if you can, limit your question to no more than one minute, because otherwise we will never get through this very long list. Thank you very much. So for this very rich discussion, and I think it really goes to the heart of the fact that we are facing a broad range of outcomes as we come out of COVID-19, as we come out of a macroeconomic policy revolution and as many central banks, including the ECB are adopting new frameworks. And I think that gives us a wide range of possible inflation outcomes. But interestingly, the debate thus far was primarily sort of on the upside risks. And I think that is true for the U.S. There I think there is a possibility or likelihood of a regime shift higher towards higher inflation. But I don't see the same thing for Europe, for the ECB, for the Euro area. And I do think the main difference between both sides of the Atlantic is what's happened with fiscal policy. And I would like to hear the views of the panelists on whether we need to make more of a differentiation between the U.S. and the Euro area with respect to the inflation outlook and, of course, the monetary policy consequences. Thank you very much, Elga. So maybe Gita can reply to that, because I had the same reaction, actually, to your presentation. Yes. In fact, that was the slide I started with, which was to basically show you our projections for the U.S. versus the Euro area. And there is an important difference, which is that we are projecting, even by the end of 2022, is for inflation to come significantly below the ECB target. So these are not very similar. Now, our projections for the U.S., the path of it includes our expectations of some very large packages being passed in the U.S. Congress. And, of course, we'll see how that works out. There is still uncertainty there. But again, the path of policy again makes a difference, and there is an important difference between the two parts of the world. Thank you very much. Charles, would you agree to that? Basically, yes. The Euro area is much better placed in terms of inflation and being able to maintain strong, accommodating expansionary policies. Just let me add one negative effect, which is that the demographic outlook is much worse in Europe than it is in America. Thank you very much, Charles. So let me move to Krishna Guha, please. Krishna. Krishna, can you, yes? Yes, thank you. I was just getting permission to unmute. So I wanted to build on, actually, the discussion that's just taken place. It strikes me that, particularly when we maintain a clear medium-term orientation, we need to distinguish very sharply between risks to forecasts and risks to goals. Now, what surely matters when we're conducting policy is risks to goals. So I would push back against the idea that there is upside risk to goals on a medium-term horizon in the Eurozone. And I just wanted to clarify whether Gita would agree with this or not. It strikes me that while the forecast could turn out to be a little low, the risk of being sustainably above target over the medium-term is a lot lower than the risk of returning to a trend inflation rate that remains stubbornly below target two, three, four, five years out. And consistent with this, I wanted to make a provocative point that I know no serving central bank would easily say. But should we not actually, in the European context, welcome just a little bit of second-round effects of higher wage dynamics and higher inflation expectations, because they take us closer to not further from our goals. For instance, wage gains in the, say, two and a half to 3% type range, representing target inflation plus productivity. Thank you. Thank you very much, Krishna. So the question was directed to Gita, please. So, Krishna, yes, I would agree with you that when I said there are upside risks, it's upside relative to the projections that I showed you. But as you can see, for the Euro area, projections come below the target, which means in terms of upside risk to the goals, I don't see much upside risk to the goals. In terms of wage dynamics and getting some more, being willing to actually welcoming some of those increases, I think, again, we should keep in mind the fact that we've been struggling with hitting the inflation target. And so while we are incredibly worried right now about inflation maybe being too high, I think there is still the concern about hitting the inflation target. And so indeed, getting wage inflation to behave in a way that's consistent with the 2% goal should be welcome. And by the way, I'm just going to add another point to this, which is that we've talked about what happens if you have greater wage bargaining power? What happens if now you have labor shortages? And because of that, there is more wage increases. Again, just to echo Francesco's point, I don't think we should confuse that with inflation. It would be a good thing if they could have greater wage bargaining power. It would be a good thing if some of the profits were shared more broadly. We need that. And that can go very well along with inflation being maintained at low levels. So again, we should be careful that the narrative is not that we want to keep all of this low so as to get the inflation target. Let's just be very clear. Thank you very much, Gita. So our next three speakers are Ricardo Reyes first, then Governor Andrew Bailey from the Bank of England, and my colleague from the Governor-General's Council, Janis Stenara. So Ricardo, please. Thank you. I was a little puzzled by the, I think it was a quote that Charles was reading, which started by saying inflation stations do not matter. What really matters is if people start paying attention to inflation. Because in any formal model, just like Francesco Lippi was noting, we need to turn these into formal models to understand what they mean. Paying attention means updating your information set and thus updating your expectations. So expectations don't matter. What really matters is expectations is what I read from that paragraph, which to me led me scratching my head. Now, Charles is completely right when he says that looking in inflation stations as a causal determinant of inflation would be a grave mistake. Inflation stations are reflecting fundamentals. They are a signal, not a cause or a driving factor. And ultimately, like Francesco said, there is no bigger mistake that a central bank can do than to think that it is not responsible inflation, that policy does not affect inflation. As such, inflation stations are very useful insofar as they reflect where the people believe in the central bank, in the future of monetary policy, and what it does. Given that, my question to the panel is the following. I very much agree. I think 95% of what Gita Gopinath said, I agree wholeheartedly, namely that most likely inflation will stay anchored. Why? Because I think policy will stay anchored, like Francesco said, because we'll continue to have good policy regime. But there is a tail risk that that is not the case. Insofar as that tail risk and inflation is permanent, is, given what I said, ultimately would be a policy failure to respond adequately. How do you think a policymaker, like the many in this audience, and Isabelle is also welcome to answer this, is able to overcome the difficult challenge right now of on the one hand, like Cristina Lagarde said earlier, saying we need to keep policy loose, not overreact to what's happening to inflation, consistent with, say, the business cycle, keep policy where it is. But at the same time, communicate that if inflation turns to be permanent, goes out of hand, we will do whatever it takes to stay within our manner of price stability. And that is something I'm not hearing from any policymaker, and maybe I should, perhaps because of differences in communication. But how do you trade off that tail risk against the middle forecast in terms of communicating policy? Thank you. Thank you very much, Ricardo. So I wanted to give the question to Francesco, but I know that you agree. So let me give you the next question. So I go to Charles, please. I think the point that Ricardo and Francesco and Dieter are making is that it doesn't matter too much if there are factors driving up prices, because the central bank can deal with it by good policy. The problem with that is that we have such high debt ratios in both the public and the private sector, and such extraordinarily high asset prices, that any attempt to drive up interest rates will lead to the fiscal deficit overall becoming a great deal worse. Ministers of finance will cease to find central bank as their best friends, and they'll become enemies. And the private sector, or at least parts of it, is so levered, and asset prices are so high, that raising nominal interest rates at all sharply could lead to really quite a sharp recession. And that would do nobody any good whatsoever, because it would make the fiscal position even worse as well. There was a very good article by John Cochran in Project Syndicate about a week ago, which people should read on this. You can't be in a position to raise interest rates sufficiently to deal with these kind of inflationary pressures until you've got the fiscal position under some kind of control, and we aren't, and we're miles away from that at the moment. Thank you very much, Charles. So now we're going to turn to Governor Andrew Bailey. It's a pleasure to have you here with us. And then afterwards we have Janice Donaras and then John Mulbauer. Andrew, please. We cannot hear you yet. Just one second. Can you try again? Hopefully that's okay. Perfect. Thank you, Isabel. I went Jeremy Runs' paper this morning, actually. And what struck me about it was that in a way what it was saying was that if you have prolonged low levels of inflation, you get a sort of form of rational inattention, in which it's sort of a version of Alan Greenspan's old view on definition of price stability, which is when people don't explicitly factor expectations into their expectations of inflation into their decisions. And it's consistent with one thing we've seen, which is that for surveys of inflation expectations, we've seen increasing numbers of people saying they don't know. Now, I agree with Francesco, because that's not the case for countries that experience higher levels of inflation. I think that's a very different situation. So what reading that paper left me was not, I wouldn't agree with Charles on the sort of the irrelevance of expectations in that sense. I may be able to state what Charles said, but rather that we need to sort of think again about how we actually model and think about the role of expectations. In other words, we may need better models of how we incorporate it. Because I think it is, there is a sort of a breakpoint, in a sense, with prolonged stable and low stable inflation in terms of how it feeds through into expectations. Thanks. Thank you very much, Andrew. Francesco, do you want to say a few words on that? Yes. I think it's a great point. There is a lot of ongoing research dedicated to understanding how expectations behave and the extent to which private agents, different sorts of firms, households are inattentive. And actually Riccardo Rice is also pioneering that. So what does it mean to be inattentive? The way most of us think about it is that agents can afford, or because of some mental attitude, do not continuously check what's happening to the state of the economy. So you may have economies where for prolonged period of times something is happening, say to the general level of prices, that is not immediately recognized by firm. Maybe price of energy goes up and this takes sometimes before the firms realize. But I want to make two observations. First, even in the models where such mechanisms are taken seriously, this is a temporary effect, because eventually the agent will receive a call from reality. You cannot own a shop with the 1915 prices if you live in 2020.  And the second thing is even more interesting, there is a lot of evidence that shows how inattention depends on the inflation regime itself. It is, in some sense, one of the comforts of living in a low inflation world that we can ignore inflation. I don't look at the ECB reports every quarter. I'm sorry, Isabel. But the reason I don't look at it is that I trust the ECB. I know I do not expect big surprises. But if I were to move to Argentina, I would look at it much more often. So rational inattention is not something that is inherent to an agent's DNA. Agents are not born rationally inattentive. They decide or they learn to be so in an environment that lets them do so. So I think these are great points. They're very important for understanding the propagation of shocks. But again, I don't think we should get confused and use these refinements of our theory to make forecasts about the next 20 years. So thank you very much, Francesco. So I see we are already at six o'clock, but I will abuse my power as a chair to extend this session by five minutes, because it's just too interesting. And I'm very happy to see my dear colleague, Yannis Stonara. So do you think, Yannis, that Francesco should look at our reports more frequently? Thank you. Can you hear me? Yes. Thank you very much. I think that we had three excellent presentations. I have only one question. With the exception of Francesco, a slight exception, the emphasis of the other two speakers on domestic factors determine inflation. However, if inflation was so low in the past, it was perhaps due to international factors, to international low prices, energy prices, commodity prices, final good prices, and globalization. Do you think that this upside risk that Zeta talked about, and we also talked about in the ECB, is due perhaps to the reversal of this benign international environment. And we have might have increasing prices of commodities, energy, final goods, which might have also a second round effect through wage contracts. So I'd like to ask this question. Thank you. Thank you very much, Yannis. Who wants to take the question? My answer is just yes. That's a short answer. It's good because we have very little time. Yeah. So my response is yet so that, you know, the table scenario we had about commodity prices going very high and so on. Firstly, is that, do we think that's a reflection of globalization in reverse? I don't think so. There is at this point a lot of transitory forces, and that is one of them. So this doesn't strike me as a trend change. Secondly, to the point of, is this then the source of inflation? It comes down to the point we made earlier, which is that all of these factors have implications for the level of competition in the global economy. They have implications for the amount a firm will pass through, say, wage inflation and so on. But ultimately, the stance of policies matter for what all of that translates into in terms of actual inflation. So again, these are real factors and they alone cannot just dictate what the path of inflation is going to be. It's going to depend upon what the stance of monetary policy is and of fiscal policy is and so on. Thank you very much, Gita. So I turn very briefly to John Mulbauer, please. We cannot hear you yet. One second. Try again, please. Can still not hear you. So I think you're not, I think you're still on mute. John, I'm sorry, we cannot hear you. I'm sorry. Okay, so I'm afraid, so I will have one final question because there is one of our competitors in the Young Economist competition that I would like to give him the floor. Adrian Ifrim, maybe you can be very brief, but I wanted to give you the floor because I think it's great that you're asking a question. Okay, again, we cannot hear. I'm sorry. Can you try again? Okay, so there's probably someone who's telling us that we are over time and so that we are not allowed to take further question. I think there's a technical issue. I'm very sorry. I would have loved to hear your question, but I guess we have to close the panel at this point. Sorry for that, Adrian. And I'm actually, I'm afraid that we are now coming to the close of our fantastic panel. So thank you so much to our three excellent panelists. Thank you to a great audience for asking great questions and I will now hand back to Claire. Thank you. Thank you, Ms Schnoble, for doing such an excellent job of moderating that panel, which was very, very lively indeed. Thank you to our speakers for three excellent and very thought provoking presentations. They reminded me of why it must be really, really difficult to be a central banker right now. The future is always unpredictable. It's always difficult to see in which direction inflation is heading, but I think we can all agree that we're at a moment now of acute uncertainty in terms of the inflation outlook. And as for Professor Goodhart's theory that there is no underlying general unifying theory of inflation and that relying on expectations is, I think you put it as weak luck. Well, that certainly led to a very lively discussion. Perhaps the best way to leave it is by saying that, you know, maybe we should paraphrase Frank Zapper and say, well, the Phillips curve is not dead. It certainly smells a bit funny. So this was the last panel of today. Thanks a lot for joining us. We will be here again at 2 p.m. Central European time with more panels and we'll also be announcing the winner of the Young Economist Competition. If we could ask you to vote for your favorite entry this evening or very early tomorrow morning, then that would be great. And for now, I'd like to say goodbye. Thanks.


All of this work on examining your paper structure and how the argument is laid out and how sources function in your paper may lead you to rethink your thesis. This is a good thing to do at this stage. Sometimes in writing a paper, your thesis will shift without you realizing it. You'll end up answering a slightly different question to the one you initially posed. Or, you may simply realize that your thesis can be stated in a stronger form. In any case, after the work we've described, you should revisit your thesis and see if it matches the structure of your paper as you've revised it. This list of the qualities of a strong thesis may help you revise your thesis so that it's clear, is arguable, and matches the rest of your paper. It would be a good idea to shell your revised thesis to someone and ask them what they might expect a paper with this thesis to look like and what sorts of questions they would like to see answered.