Hey, good afternoon everybody Tom Stewart here Liz Trotter and our guest today is Kedma. Oh, this is smart business moves How's everyone today? Great Are you gonna mention how it's already the 6th of December? Can you believe that? It seems like it was just November like a week ago It's so funny So fast it really does feel crazy fast for me though I am going to my daughters on Friday, and I'll be gone for a little under a week and That is just really putting a Crick in my in my normal holiday plan. I'm like a what? Crick in my holiday. What's what's the right term? Is there a better word? Nothing that I could share on a live stream, I guess It will go correct Where's she located? She's in Texas. Oh nice. Okay. Yeah, so no nice place to go visit, but Wow, I will only have one week home before Christmas, and I haven't put up a Christmas tree yet or then yeah, so I feel like a slacker over here Correct. Yeah, that sounds like something my grandmother would say and she was like West Virginia I mean, I didn't think that would be a Washington State thing Thomas, you know, I like me some lexicon. I like some words You're expanding your working vocabulary for sure. I I do like it. Hey, Danita. Good to see you here today You ready to talk about budgeting I'm planning It is that time of year because it is December 6th, isn't it? Yeah It's gonna be 20 22 before we know it. I know Yeah, and I think you know the thing about budgeting a lot of times when we say the word budgeting people just feel like it's taking you know chalk and just You don't want to do it, but I think you can make budgeting fun you can make it To me it's like I I I do believe in in making it as a fun experience and to you know Because there is a lot of anxiety and guys it doesn't matter what level of business I have met people who are doing multi-million and then I mentioned budgeting and they they start stressing and saying they're They have a team for that, right? Right, but what it really is is that they just don't want to deal with that So, you know, I think that there's a somehow there's there's just this emotional relationship with money and currency and budget and Either you really enjoy it or you do everything you can the power in your power to avoid it And yeah, and I'm someone who really enjoys it That's nice. Okay. Well, I'm I'm ready. I've got my my remarkable here. I'm taking notes. I want to enjoy it I do enjoy it. Well, do you usually enjoy it? I don't I think it would be worthwhile to maybe talk for a minute as to Why we even go through the trouble to do budgets? I mean is it would do we do it because it's fun? There's a lot of things I do it's fun and some of them some of them aren't even good for me, but Budgets and we can make it fine, but there's reasons that we do it beyond being fun There's some some benefits for doing budgets and I don't I don't know if that's really clear to everybody You know, what why do we even want to do a budget? Yeah, good point Tom. Very good point. Yeah, I mean What I would tell people is for you know, we can I can show you companies that have scaled to seven figures That have not done a budget Yeah, right or if they have done the budget It's not done. Well, or if they've done it. They're not actually once they've done the budget It's like putting it on the shelf and letting it collect dust and they'll say they'll get back to it in a year, right? I Think that the easiest my my answer and I would love to hear from you guys what you think but to me if You're going to invest in anything. It's so important to measure that investment So when I think about budget, I'm not just thinking budget as a company I also think budgeting as a relationship, you know, I think budgeting like you could take any situation and ask yourself How can I measure whether or not my time and what we're putting into it is giving me an ROI that satisfies me? Okay, I like that. So what I do every year is I like to purge whether it's purging something from from the business From an accountability or purging relationships that don't serve me anymore, right? So you could take budget to a whole different perspective to say, you know So me when I budget is what are the items that we're trying to measure and When we measure it is what we measure Actually coming to fruition, right? If we measure a certain amount Can we look at it within the next 30 days and see how close we were to that? And then once we go there, can we look at what do we have to pivot and Modify and change and I'm of the mindset that we should have what we call continuing accounting I don't believe in budgeting once a year. I believe budget has to be an ongoing Conversation every day if possible So that we can look at how do we how do we move through this in a fluid way and then Immediately change things if necessary Well, you know, I've never heard anybody talk about budgeting in terms of a daily activity So that's really interesting or a daily conversation Usually, you know, I'm hearing people monthly. I think that's probably most common is looking at it every month and seeing where you sit and if you need to make modifications by likes Can you expand a little bit on the the daily? Well, what daily does is it eliminates a lot of errors that may come up and also allows you to be proactive in real time Of what's occurring if we wait 30 days? Let's say there was a shortage in the industry Let's say some kind of supply thing and we wait 30 days to try to make a decision on that We may be making the wrong decision or we may be making a decision but not have all the information to make the best decision We also run into a problem because We may be waiting to see are there any marginal errors we can fix But if it's daily if someone is inputting things daily, someone is reconciling daily It puts you as the CEO in the best possible Decision place to to say, you know, are we in the right direction? Do we have to pivot? Can we add more and it can be as simple as Hey, you know, here's an opportunity right now Do do we have do we have you know, can we say yes to it? So I have the mindset is if you have it in your infrastructure I love the idea of continuous accounting and there are some companies that are really clear on that I work very closely With very large organizations that think that way software companies that think that way tech companies that think that way Oracle is one of them, you know very focused on continuous accounting as opposed to waiting at the end of the month I actually think that it makes so much sense Especially as you're talking about it for big companies because yeah companies big changes, you know You could also have that as big mistakes But you can catch things much quicker and you have better opportunities Correct. You can you can grasp opportunities quicker and larger companies have more people in them by definition Who impact the the P&L and budget in various ways? so the budget is a way to get Everybody involved in in in in alignment if you will with with what the company goals are Agreed, but for a smaller company a lot of them are doing VAs Virtual assistant is so inexpensive if you train them and you have everything migrating anyway into your software There is no reason why a VA can't spend 30 minutes a day 15 minutes a day just making sure are there any transactions that came through that don't make sense Where are we? Where are we daily right now? We're doing it anyway for daily sales I don't think it would be too hard to jump and say could we be doing daily budgeting? Sure, and you know that kind of falls under the umbrella of like KPIs, I guess everything from employee turnover To client churn to your cost of good sold off of every job you did the day before Exactly exactly. Yeah, I really love tracking KPIs on a daily basis So I see how the budgeting makes really good sense as well just Doing it on the other side. So Yeah, yeah, I would love to just hear from you Liz like what are you doing? so if I went and sort of took a peek into How you're doing budgeting, what does what would that look like for the audience? How do you manage budget? Well, we we don't do it daily. I'm although I'm thinking that that does sound good We do it monthly. We have a Meeting on Saturdays and the first Saturday of every month We go over the budget and you know, where are we? How How close are we to what we thought we would spend? What we what we are anticipating for the next month any kind of quarterly type things that are coming up. So we're just We kind of use budgeting more in way of almost like cash flow management just watching where the money is going and Making sure that it's not just Being frittered away Yeah, yeah, absolutely Um, so I you know, I'd be curious to know for for from our perspective. I know that We work a lot around planning. We do a lot of budget at this point We also review a lot of financials to get a sense of where people are at Um, be curious from from your perspectives, you know, what Tom and Liz what have you heard? What have been some of the struggles or the challenges when someone Mentioned budgeting or sort of looking at annual planning. Have you heard any kind of thoughts feedback? Worry From other cleaning businesses Yeah Yeah So, you know, um in in my Um strategic success groups. I can tell you that one of the biggest hurdles that I have to get people over And sometimes it'll take a while Um, actually somebody is I'm not gonna say who but there's somebody on the call right now That insisted for a year that she didn't need a budget She was just convinced that she didn't need a budget. She changed her tune. We finally got her but a lot of times People are really resistant to the idea of a budget Especially I find with entrepreneurs The reason why they don't so there's a few different things But one of them is that I find a lot is they don't want a budget Linda you're talking about me And you're talking about me Linda welcome to the conversation You need to you need to get a budget Linda to figure out how much Cat food you're buying Maybe Linda can share what so why what was the pushback Liz for Linda? I would I'd love to hear Yeah, well, you know, yeah, well, there are a couple a couple of things But the big one is she didn't want to have a budget She didn't that was one of the things that she liked about running her own business Is that she didn't have to have a budget. She knew there was enough money in the bank and She you know, there's money to pay everything money left over. She's getting a good income And so she didn't need my business. I do what I want. That's right. So I and I She enjoyed the In her mind, she enjoyed the flexibility of deciding whether or not to do a budget and why Just didn't so that's the first one that we hear a lot is people don't want to do it Because they don't feel like they have to they Are in a situation where the money is good enough that they don't need to do a budget and then the second one is That people are afraid they're afraid to put things into a budget because they're going to See things that they can't handle they can't manage that they don't know what to do about And That the whole idea is just too stressful So that's the second one. The first is I don't want to and the second one is I'm afraid. I'm afraid And a third one is, you know People feel like if they don't have a crystal ball, you know, you're asking me to tell you what my Revenue is going to be month over month going forward and You know, they think they're doing pretty good if they can tell you what their revenue was in the past. So Um And you know For me, you know, it depends upon where the business is in terms of its stages of growth If you're dealing with somebody that's a startup.  Yeah, right. That's a good good point. Tom. We do see that a lot So the bigger the company gets the more resources need to go to this type of planning because the numbers are bigger and the Return off the efforts greater Right, absolutely. Yeah, and and I think if it's fair based Oh, so wait a minute. So so i'm curious to know what how how did you get linda? To do the budget or or or are we still are we are we still not there? No, she's she's there now So congratulations.  Yeah, good job linda Yeah, it just took a little while for her to accept that It's a an important part of doing business and of running a nice successful business That you're not going to find big large successful businesses That are running smoothly and that don't don't have a budget. So she's like, uh, all right All right, I'll just do it then and you just convinced yourself that Smart smart cookie. So she convinced herself that she's going to want to do a budget now She's like, so I want to now. I want to do a budget So that right and usually those people are going to be your your biggest champions because now you've you know, basically Show them the value of You know, what it looks like if they do do it and then they tend to want to share it with other people And they started enjoying it too. They actually really start to enjoy it. It's like, oh It's not an anchor holding me down making it so that I can't move I can't do things. I think a lot of times people don't want to do it because they feel like they're being Good job, denny. I'm glad. So denny is a holdout from over the budget as well Um But they feel like it's like handcuffs that they're being Chained and they can't be flexible. They can't do what they want with their money But you know the cool part about it is when you start managing your business that way You're one step closer to actually owning a business rather than owning a job because At that point, you know, you don't want to be held accountable But then you're one step away from putting somebody else in a position where they're accountable to that budget And it's a lot easier for you To manage your business if somebody, you know, you can't delegate that level of authority that P&L type authority without a budget in place, but if you do then you can create yourself a ton of freedom Absolutely And the other thing I would say just because I'm very sensitive to it. I think that we may need to revisit Changing the language of the budget because it does create inherent Stress and anxiety, which is unnecessary. So if I was working with with linda, for example And and she was stressed about it. I'd be I just say to her, you know what we're not doing a budget We're just confirming the recipe.  So let's get the right ingredients and then we can measure Whether that cake is going to come to its perfection Now what I've just done is I've just changed the mindset and opened an opportunity for the mind to just not feel that fear Yeah, because immediately when I say that people are like, oh, oh, it's just a recipe Man, I can do recipe of cooking Not creative cooking because you know what we can argue budget or anything else, right? If you don't have the right measuring for anything it can it can blow up in your face, right? So what we do is we just take away that risk and we just mitigate and say Hey, it's not a budget. It's just a recipe. We want to get the right recipe for your company Yeah, and I like what linda said here. I don't know. Let's see. She says she still doesn't let Tom unshared me. There we go I'm not touching it I said still doesn't let the budget tell her what she said she can't buy what she wants So that's great Is the budget you're still in charge just because you have a budget doesn't mean that the budget runs the show now So I I mean now this that little shift is is sometimes difficult for people. Yeah, it's still buy what you want Just be aware of it. And just well and to your point I do work with some CEOs that are Really, we don't really trust them with how they spend their money. So they do have to You know concur with some of their team like I have one where if it's more than five thousand dollars He has to get approval by his ops team now You think that's that's madness, but it really isn't because some people just see money in the bank and then just go out and spend it Yeah, absolutely. This is right. This is a way for There to be checking balances to say, you know, you can't just Even if you're the owner, it's not wise to go out and just spend an enormous amount of money and and when it may not make sense so There's decisions in my business that i'm getting ready to do something and then I pause and say well I don't want to have to explain to kyle why I did this Is my controller. So i'm just 90 i mean we're not going to do it because I don't want to have that discussion Exactly It's easier to not get the thing than it is to have the conversation Yeah, exactly. Well, if you guys are open to it, I would love to Maybe do a little bit of show and tell And just gonna show you Yeah, let's just see what we can do and what's possible. Um, I would love to talk about budget I would also love to talk about planning So, um, if it's okay, let's just maybe just show a couple of us Everybody has a different way But one of my favorite ones is i'm really clear about making sure our job costing makes sense because You don't want to go ahead and set up a budget and then realize Wow, I've screwed up the job costing. I've really screwed up how to do that and I've come across enough situations where job costing has played a role Significant role where people were not pricing correctly That it's part of what I do when we do the budgeting So here's what I would love to do the best way to do it is to kind of show you Just like uh, you know, I always say I like to run a Montessori school And I'm very big about show and tell so let me just show you show and tell this if this works for you guys Do you see the share button there cadmium? I'm going to share the screen And so this this this will be kind of a powerful visual Let's see if I can get to it. I'm going to go to my computer I want to just uh, share it towards my computer. So I'm not as Oh, there it is share screen. Okay. Yes, I'm at the bottom Yeah I love show and tell Yeah, me too. Okay. I learn well Can you guys see this? Yep Okay, now here's let me tell you why this came about I actually Brought this to a head About a year and a half ago and worked with one of our coaches Michael Gregory to make this happen So what we're seeing here is a typical job costing worksheet You know may vary a little but it's pretty simple. This isn't you know, we have a 1a 1b So you can see sort of the example. This is a real client that went through it We just kind of doing as as a 1a 1b and over here to the right. We can change the cogs, but typically Um, we try to stay within a 15 to 25 percent Net profit we try to keep our hope overhead 30 to 40 in our cogs right now. We can change that So this is what you typically see right? You see the amount that being charged of course with with uh cleaning services You're going to have recurring revenue, but in this case Um, you you're going to see the amount you're going to see the cost of goods You're going to see the labor cost whatever that labor cost is to manage that Um, and then you're going to see over here the net profit. So in this example This looks really attractive. What this is telling us is that Based on the 230 dollar amount This company had a net profit of 38 I don't think there's anybody here that would argue that that is not a good net profit I'll take it Right. Is that a good net margin, right? Yeah So if they came to me and I did this and they said well coach, you know what? We got 38 on this We're totally fine. Everything's good. I probably would not pay any further attention to it. However Instead of doing that we take that same situation 230, but the difference is now Is every single month we total the amount of jobs being done And every job has to have a percentage of general expenses And now we're going to see the true cost For this job. And did they make any money? So nothing changes here, but here's where it changes We're taking a percentage of the overhead now There's two ways to do this the first is you can go back to the last six months or the last year And you can get an average total of where your overhead expenses are Generally speaking you'd be as low as 30 percent could be as high as 48 50 percent And then we're going to take a percentage of that. We're going to add it into every job when we do that Now we see This business has not been profitable for this job So So so what happened? So what I'm seeing here is when they do one job. Yes, okay And we're getting it. Oh, no, this is taking right this is taking 48 percent So this in this example this company on average Their general expenses is sitting at 48 percent So they have to split it somehow because they're not selling products. They're selling services, right? They're selling cleaning services exterior Or regardless of selling cleaning services. So what we do is we say if we know that 48 percent is your general expenses of 40 percent is general expenses We add in that percentage to every job that way We're always guaranteed to be profitable So on your first example when you showed they didn't have their overhead costs in there at all or oh, I see There's no they don't have the overhead. Oh, gotcha. They don't have they hope it. So let's do another example Let's see a bigger one, right? So here we are at thousand dollars Same scenario. Okay These are actual jobs. These aren't makeup. These are actual numbers 47 percent Very good But they didn't consider what is their true overhead expense. So now we go to same thing Same job Now we add in the 48 percent. They're at break even. Yeah Okay So what this allows us to do? Very quickly is to determine Are they truly profitable and then we could play with the numbers we could say look You're at 47 percent, but we have a couple of choices here If we know that your average is 48 percent Per job, you're not making money We're either going to have to reduce the cost of your overhead expenses because where else are we going to get the money? The money is not coming from anything else except the jobs you're selling Or we're going to have to increase the price or we're going to have to reduce the cogs or we're going to have to change how the labor looks right So it looks like what they're doing is they're not actually Coming up with a net profit. They're coming up with more a gross profit looks like well Yeah, you know, this is typically how it is, right? You have the total cogs, right? So, you know You know in a in a typical scenario if we go over here, let's see Uh, let's see if I can get a higher one here. So a typical scenario, you know, they're their cogs right now is You know sitting at 52 percent. That means their gross profit is 48 percent, right? Right 48 percent. This is before expenses. So from their perspective, they would say coach We're doing fine Because we are making the money we need but in actuality they come in and say coach I don't know why we don't have any money left over at the end of the month Right, we hear this all the time coach. Why don't I have any money left over in the end of the month? and I say because Your overheads are taking all that cash you're putting in And you're not considering it. So instead of waiting, this is a perfect example of daily budget Instead of waiting at the end of the month and saying coach, I don't have the money You're going to know exactly How much money is left over Once you pay your overhead expenses And then you'll know whether you're profitable enough how much money can go back into the company And this is a really good example is why putting together an annual budget is necessary because you really Don't even know how much revenue you need to distribute your overhead across what that percentage is going to be without a budget So a budget would give you the idea as to You know how much overhead to allocate and if you're not making your revenue Then that even digs your hole deeper on the allocation the flip side of it You might be able to sell your way out of the problem if you could generate additional revenue. Correct So here's one You really you can't you can't do much so you've got to have these numbers before Man, I would be stressed out if somebody came to me just showing me what their gross profit is How's that even helpful? That's right. So if I was working with you, Liz and your team I would say let's do a true Analysis of what the job is costing and your gp and then we're going to do one based on percentage now We had to go to number seven. So what I usually tell with my clients is want you to pull the last 10 jobs you did Put it through these formulas and then let's see whether or not it was profitable We had to get to the seventh job now this seventh job became profitable They had a net profit of 44 but when we put in the numbers for the for the percentage here They actually net 12 percent. That is a good one that so what I would tell that conquer coach a conquer client is You bid this job correctly. You bid it at 1200. You were able to pay off and you had a good gp You were able to pay off your overhead, which is 48 percent and you net 12 percent to go back into the company We want to see that for every job And so would you be saying that Because it looked like initially that you were trying to Had a target of 15 to 25. So are you thinking that the 12 is good just in comparison to all that? That's right. That's right. That's the only reason i'm doing that because i want to let them have a win. Yes I see that Hey, and I guess what this also tells you for any future jobs that you're bidding You need to be shooting for a cost a good sold of less than 40 in order to make the numbers work Unless you can get your g unless you can get your overhead expenses down to a reasonable one, right? and so the easiest way to do this is Everybody listening to this call right now can go back and and look at the last six months or last year And pull from your financials What your average overhead cost is? Yeah, whatever that number is Add that percentage to every job and you'll know whether your company's going to have money left over I like that. I I never heard anybody doing it by the job. We usually do it by the day I I love to do it by the job because I want to know which jobs we lost money on Especially if you have some really big jobs and some little jobs like this bit large disparity Of course, see how it makes huge difference, right? Right And in some case we negotiate like in some cases, especially in the exterior cleaning, right? They may have two techs on but in this case He only brought one tech on because his g his cogs was at 39 percent. We saw the 12 percent Net profit so but this this can work in any industry might the takeaway for anyone listening is Restructure your job costs and include the percentage of overhead expense in every job You will once you do that you will never come to me and say coach. I don't know where the money's gone Yeah It will always be there and you'll know exactly Whether or not you are at that that cost you need to be in that profit You need to be in and if if you're not then we can negotiate Right if you say to me, well, I can't charge more than that because my you know clients are going to leave me if I charge You know more than 80 dollars Okay, then what can we negotiate here because the numbers are gonna The numbers don't lie somehow the numbers have to there has to be net profit I have to mean unless you're trying to get a 401c, right? Exactly or if you are saying to me like if you if you could argue with me and say listen coach I went through my 10 jobs Three of them i'm taking as a leader's loss, but the other seven are gonna make up that Net profit and maybe be at a 20 22 percent. I can argue that back. I could say, okay, that's fair Maybe that's me that are lost because you're doing community impact You're having a you know a smaller margin because it's a bigger company But if I see consistently A net loss or a break even I guarantee you that company is losing money or not even close to the net margin. They need to be in guarantee Right, right, right Yeah, absolutely. I like this I like this new perspective. I don't think we've ever talked about um Doing this on just like a single job Relicating the overhead to a job as a rule, no, but you know, it's it's a cool approach. I like it I like it a lot And the thing I like about is it's something new for the people that are like, oh this other thing is so hard It seems seems overwhelming. Hey, this is just bringing it down to a very very even simpler way of doing simple If you can't see it one way, maybe you can see it another way and this is definitely a different way of seeing it The other thing that jumps out at me though is you've got all your numbers for every job You have to important because you know, if you don't have the numbers then you can't do this Correct, correct And and the easiest thing is those numbers are already going to have happen with the estimate And there shouldn't be any stress because if you go back and look at your overhead expenses Most of us are in the same, you know, it's not going to be too too much difference We're not going to see a 20 to 50% You know, if you're in the 30% you're going to see 30 to 32 So you're going to have that as pretty much a fixed But I think tom and lis what it does is it wakes them up to say, okay Now I know where the money is going because if you don't do it this way and you don't have products Where do you think the money's going? Yeah, it's paying for for everyone and and and let's be real That admin person who's not on the job but is answering the phone call and inputting the data and making the you know And and and and sending emails. They're a part of the job Yeah Absolutely so The jobs that we were looking at were those like Variable costs the cost of goods sold was that like the allocated the the the estimated cost or was that like After the fact after the job was done That's right. That's one when we did that's what right. That's why I tell clients. Let's take 10 jobs. You've done already And let's determine whether you're making money now after we did this with this this ceo He was uh, he was he was depressed for a minute Because he he came into the meeting guaranteeing me That the company was making money Guarantee like coach. I don't know why we're bothering with this. This is a waste of time I I I you know, I'm so good at clearing 40 48 percent and ton and lis when he saw this It was this moment of disbelief yeah Especially if he's been only looking at this one number Thinking that that's actually his net profit. He's really believing that he's got 48 net profit All I need to find out that he's actually negative I mean, I got to give the guy props for only being upset for a minute. Good for him Because yeah, and and it's very deceiving because if you're doing 48 percent if you're doing a a gp of let's say 52 Anybody here would think that sounds really good, but it's only as good as how much your overhead is Yeah, absolutely And actually the reason why so like in our groups, we don't let anybody track Their gross profit and the reason why is there are too many people in our industry that are Especially smaller businesses that are in this what I call keep up with the jones's mentality Where they're like Hey, I need to have my own I need to have cars and I need to have two people in the office and like You know, you don't need anybody in the office.  No Great need all that overhead. You have to so We force them to look at net profit only For the first three months period. You can't even look at And gotta get to break even that first month find out where that break even is Figure out where that is and then every And so actually when they first start in the group, we make them track daily That's too much work. That's too hard. I'm like, sorry charlie. You got to do it daily because until you really understand That money Yeah, once you do it every day for a month your understanding is completely different Then if you're tracking it once a month or once a week Yeah, I I love that idea though of the individual job costing for those people that are like So hard. Okay. Good. Let's just and just picking that percentage and just adding that percentage on how simple is that How simple is it how simple? Yeah, I like that a lot. What are you dawn? I can't see what is dawn right dawn said something tom Yeah, yeah, she said she loves this that Uh, she always Thinks that her cost per job And she always asks herself what her job And that's how she knows if they're making money or not or not and that's why she loves it Yeah Yeah, well, yeah now now she'll know for sure You know, there won't be any more guessing games and then it's fun because you know, maybe again It gives you you know back to budgeting. It just gives you that confidence that you're going to make better decisions With the information you're given and not to just have information to have information because That frustrates me people are like measuring things, but then they don't use it or nobody understands why they're I do understand what you're saying now about making it fun, right? Yeah, you having fun now is Okay I'm saying I understand about Making it fun and how you can make it fun make it a little bit more fun So that it's something that you're getting new information And it's something that you can work with it seems like it's very similar to tracking, you know, your basic kpis So because that also is not really fun when you first start it seems so hard and onerous But once you start doing it, it's super easy the numbers are just going in there And you start seeing you start seeing like pictures and patterns and and Yeah, and your brain starts being able to think about what I could do next So I think right now if if I had anybody in the audience to say, hey, I'm gonna I'm gonna go through my last 10 and see the results that stuff excites me so much. I feel like A kid in a candy store because I want them to prove to me that they know exactly What's going in and going out of the company? You know, so Yeah, so this is an example of a daily one. The other thing I want to share with you If it's okay, I just want to do another shared screen since we're talking about budget And while you're pulling that up One of the things you could do with those 10 is put together a model and Explain how many jobs you need to do a month? To break even or which are you know, how much how much profit do you need to generate in a month and then back into You know the number of jobs you would need to do in order to do that Absolutely. All right, and I have a really cool exercise that you can do with this as well you guys So um, you could take a hundred dollar bill And you could take it with your employees and you could break it down into hundreds I mean into one right now 100 One dollar bills and then you could just take those dollar bills and you could show your team Okay, so right off the bat you guys cogs goes 45 dollars. So let's just put 45 dollars Just for the employees and the money is going to go out for that.  What do you guys think? Three dollars. Okay. Yep. Let's go three bucks. That's about right Let's put your three bucks and break that down by dollars till we get to the end And we're like, okay. So now we've got 18 dollars you guys When we clean the house at the end all we have left is 18 dollars And it's sometimes it can feel like Like oh the company's making bank. They've just got this forever hundred dollars. It comes in. I'm only getting 20 You guys are making 80 dollars. Here's what we really have left $18 So that can be a really fun equipment. Yeah, and actually it has been fun. I've done it twice I haven't done it in a long time, but um, it it's very enlightening Yeah employees and they feel like they now understand they don't lose cause as much They are more careful with the vacuum cleaners They are they're not going a half a can a barkeeper's friend in the sink Because they're understanding how that stuff all plays out Yeah, and you could totally do that I think the more the that that your team and your staff know the true margins of your funding and budget the better they're going to be because So many times they think that the ceo is making all this money Is so not true And if you're able to just show them in a financial performance, hey, you know what we're we're sitting at 15% net profit We have to put it back into the company. It gives them this confidence that when you're not You know, you're not putting something over on them, right? It's really an opportunity to you know realize that You know, this is not not not taking maybe five percent of it and then you know Right and just going out and buying everything under the sun And I do think now that's More so now than ever in the past where people are much more sensitive to How much Money they're actually making off every job. I mean it's been moving this way for the last decade But now more than ever people are just very sensitive to How the boss Is how much money the boss is making versus the people that are actually Yes, they are putting in the sweat equity, right? Yeah, I'm doing the real doing the real work Yeah, I'm the one doing the work and how much am I making? Hey, Tom, I'm curious. What's denit talking about here? She says We we we did some one-on-ones at the last foundations Event and we broke down P&L's and talked about Things needed to look like in order to be profitable Nice and sometimes you just can't make it up with volume if some of the ratios aren't right You can just go bankrupt faster. Yeah, yeah, you can burn a lot of calories and Have even less to show for it So we had we had some good sessions. Kevin you had something you wanted to share with us Oh, yeah, I just thought you know as we're we're talking about budget What you know again a fun exercise before we get into budget see all of this is really to make it fun less stressful Exciting is the second piece we get into even before budget Is we go right into what what are we planning? What are our goals? And for me, I think this is really really fun. Can you guys see this? Yeah, yeah So, uh, see if we can make it a little bigger we have, you know, you can add anything you want here We have a whole bunch of things, but you know, this is the opportunity to think you know What do we want to do it? Not this is before we even talk about the budget. This is your dream time This is your time to say, you know, what do we want to do? What could be fun? So, you know, do we need new equipment? Um, do you know, do we want a new vehicle? But then there's other things besides employee like are we targeting a new customer? Is there a new type of customer? We're targeting and do we need to Maybe have a strategy around that? Um, you know, because that may be a whole different um thought process right of With the marketing campaign, there's a lot of things along with that. Yeah, absolutely You know, some of some of it, you know, it could be, you know, it could be targeting people You wouldn't even think that needed, you know, we talk about Um, certain demographics and their need to get Cleaning services, but you know, I'm very big in the disability community because I think I've mentioned two out of three Of my kids are on the spectrum. They both have developmental disabilities.  The first thing they do is they check in with my dog Fifi who's our service dog Right.  What are we going to do to improve? You know, are we going to add, you know different? Um, you know, in this case, there's a whole focus on videos, you know, do we have new marketing channels? Um, what what does that look like? Do we have new kpi's we want to do? So this is me to me like The like I think everything's fun, but this is fun for me Like I think if I worked with you tom or you listen, I'm like, hey, let's dream about all the possible goals Before we talk about numbers It may um push us in a direction. We didn't even think about Because we start with the goal planning first I do love this You know, we talk a lot about my my brother on here because he Um began making a lot of money in a really really short a period of time And he swears by goal planning in a really big way and also modifying He goes into his goal planning worksheet at least twice. It's not three times a week and That tweaks that looks at the I want more of that I want Oh, I thought that was going to be more important to me and it really isn't so Change my mind. I want this and I I love the idea of goal planning. I I see it being hard though for a lot of it goes on his refrigerator Why why was it? Why is it hard? It's to me. I feel like you this is the opportunity to dream Um, I think for a lot of people it goes back to what tom said earlier Like, um, it's hard for a lot of people to and I'm one of these people as well To think about the future In that way in in a dream way. It's like Well, I don't know how to dream about what could be in the future because I don't know what's possible or potential So I don't want to dream about have, you know, earning 50 million dollars next year if that's is that possible. I don't know A lot of people are like are in that kind of a mode. I don't know how to do it Got it. Oh, you don't want to be wrong You don't want to be wrong. Yeah. Well, not even the wrong thing. Um, well The wrong thing is absolutely a thing for a lot of the people that we work with absolutely But like in my case, it's not that I don't want to be wrong it's that Like just what do I start with where do I start it just isn't hard to start So a lot of these things I I think in that place, you know, if I was working with anyone What we want to introduce, you know, the saying we don't know what we don't know Is introduce some possible It's like prompting, right? Yeah When I work with people, you know, so many times there's this belief again This goes back to the philosophy of coaching There are fundamentally coaches who believe that you have the answer inside of you Like liz you have the answer and tom you have the answer. Yeah I'm not one of those coaches. I've been coaching consulting 20 years and to be truthful They don't have the answers They don't have the answer so I believe in prompting consulting prompt consultant prompt coaching meaning I would then say Hey, Liz, here's some possibilities to think about that others have thought of and then it's a multiple choice experience instead of Putting the onus on you to figure it out is to say here's some possibilities Absolutely put the parameters to say, you know, 50 million doesn't make sense Right, but if you're on a trajectory, you know, you're doing a million and you want to go to 1.7. That's possible And and that goes to what we talked about last week when we had laura smith on That looking at your data is a really good way to be able to see that And and and you're pointing out something else kedma is Everything's easier with a coach because yes, your coach is gonna Make it so that it's not hard. Whatever the hard thing is That's the coach's job is to take away the hard part Well to your point is I'm going to add just another small world Because English my second language and language is so important because it defines how we see the world Everything is easier with the right coach I can show you coaching experiences that doesn't move the needle Agree, and it depends on who you are and it depends on how you process Yeah, all of us process differently where I could come in And this is the one thing we always talk about with coaching We call it the dull rock Versus this shiny object. Have I ever taught you guys this? No, but I know a lot about the shiny object So this is what happens you you connect with the coach You feel like oh my god. I finally got the shiny object. I want I'm connecting with this coach They understand me they understand my budget. They understand my cost And you engage in this honeymoon experience with them And at some point usually six months to 12 months down the line They meet another coach And that other coach becomes the shiny object and you become That's a lot So is true So so what we want to make sure is that it's the right one and and I I believe in the idea of having targeted coaching Don't just have a coach to have a coach but choose a couple of coaches that makes sense I want to leave you with one more thing because I I know I have to drop off In a few minutes, but I want I would be remiss if I didn't leave you with this The last thing I'm going to show you is what our budgets look like everybody's got different budgets I just want to show you the way we've done it. You can modify it to whatever you do You know, I'm not tied to a budget. I'm just tied to You know what budget works. So this can absolutely go into you know residential or commercial But what I really like about this is that on the top line If I make it this a little bit bigger for you You're going to see we have our targeted sales what we're assuming and we have the actual that means that this happens Every single month we're going to put in the actual that means that you know Conqueror is going to put in the actual And then we also have here a place for projected balance and actual balance because you could have a very strong month But maybe your balance is showing a reduction because you know not everything is hitting the p&l It could be here hitting the balance sheet And so this allows me to see are we going up? Are we going down? And how does that play in the actual? And then depending on the business right we base it a lot of times with trucks We can modify that but that's where we're going to look at That daily that you mentioned Liz. What is that my daily amount? I personally don't like to just put an amount here I like to look at a daily goal and multiply it by the days that that Vehicle is out. Oh me too, right? So if we know that that truck is out Because of 15,000 doesn't tell me anything It's just you know, if unless you tell me well that daily truck is valued at $1,500 Then I immediately know that that trucks out for 10 days, right? Right and then we have obviously your li-tech or your assistant depending on so in your case it could be You know two two employees going to a job or one Right and then we're going to have our office team and this can also include your virtual assistant, right? So it doesn't it doesn't have to be just payroll. This can also be contracted You know fees not only just a payroll driven and then here's your cogs, right? And then you have all your expenses So and then below here we have our capital expenditures. This is where we're going to get that from the goal planning We're going to look at you know, what are we going to be investing in the company? What is going to be our loan payments and are there additional draws? I Religiously can do this Liz and Tom in one hour Nice, right? So one hour. We're in we're working through it and then we can modify it and then generally speaking once we do that That client is going to feel a lot more comfortable in where they want to go Yeah You're You're not leaving it to chance Not leaving it to chance And one more thing that um, I like to tell people too when they're doing this is yeah in the beginning You might not have a clue. You don't have an idea of what the numbers are. That's okay. Here's some ideas Let's start here Which is what you like the best and guess what in three months? We're gonna have a better idea and in six months You're gonna know now now you're really gonna have an idea about oh now I kind of really do feel like I know what's possible Then you can start getting some relationship numbers, but not till you start not till you start not till you start Oh, look at the puppy I need to I I can't believe we always do this and it goes so quickly, but I need to hop off Yeah, if people want to Talk to you cad but how can they reach you? Well always through you guys because you guys are my my my champions here Um, definitely through conquer. You can go to ags conquer now I love to be on linkedin. Um, I have 40 000 of my closest friends that hang out with me on linkedin So you can always I always suggest hang Connect with me on linkedin anyway because I do have a lot of relationship there Um, and then facebook so, you know, just let me know how how we know each other because sometimes people get on And I have no idea right how they how they know me So On your linkedin profile. You need to add smart business moves contributor Okay, I'll do that. I I I have a lot on there, but I will add that I will I will let them know you have another meeting kegmas Thank you so much as always This is fun and you're awesome. Yeah, you are Hi everyone We're done. We'll be back wednesday and we'll uh be doing it again. So we'll see wednesday five o'clock eastern


Hello, everyone. My name is Kunal Gandhi, and today I'm going to talk about Adopt-In Designate for Managing Mission Critical eBay and PayPal, DNS, and this talk was actually going to be done by Bharata and Ron. They couldn't make it, so I'm going to do the talk instead of them. Most of the material on the slide they have worked on, so I've kept their name on the slides. So let's look at the agenda for today. So first of all, what we'll look at is, before designate PayPal and eBay were using OpenStack, we had integrated with OpenStack, but before that, before designate was started, we integrated OpenStack with our own proprietary DNS service. So we'll look briefly at what those features were. Then what we'll do is basically we'll do a designate overview on what components designate has. We'll look at the designate architecture. And then when we had to migrate from our proprietary DNS as a service to designate, we had to make enhancements to designate so that it meets our business needs. So we'll look at a list of those enhancements, and then when we deployed designate to production, we ran into a few challenges. We would like to share those challenges with you. And towards the end, what we'll do is we'll look at some future work that we need to work with the community in the upcoming designate releases so that designate can be this production ready for the other companies as well. So the first thing I wanted to talk about is the proprietary DNS as a service that we had at eBay and PayPal, which this was developed a few years ago. It was an in-house system written in Java. It was a RESTful API for DNS management. The way the DNS as a service was designed is it was designed to work with multiple providers. And the way we had designed DNS as a service a few years ago is the source of truth for the DNS as a service was actually the DNS server itself. It didn't store any data locally. So that was the source of truth, the DNS servers with their source of truth. Designate overview. So now let's look at how designate is and their components. So designate has various components. One of the first component designate has is the API. This component is responsible for taking all the API call request from clients and from Horizon. Designate central is the central piece as the name suggests it's actually the central piece of the system which is responsible to make changes on the DNS servers, the name servers and the database. Designate sync is actually a component that is a framework designed to add notification handlers on top so that it can listen to notification of various other components and open stack and take actions accordingly. Then there's a storage component in designate which is basically the central component talks to the storage component. It's the underlying database that's the source of truth for designate. And the back end component is basically your name server, the DNS name server that has the data. So these are the various components in designate. So let's look at an architecture overview of how designate looks like. This is the Juno release and the ISO release as well. The Kilo release a few things have changed but we will look at the Juno release and how it looks. So in this picture here if you notice the middle section has the API component. It has the sync component. It has the central component and there is a queue in the middle. That's the rapid MQ. So the API component is the component that takes all your API calls, the customer API calls.  So that will take all those calls and it will also take calls from horizon. The other thing, so that's the API component. So in the bottom you see there is the sync component. So that component is basically responsible for listening to all the notifications that are on the bus. So the sync component will basically have a bunch of consumers to consume all the messages from the bus. And then the right next to the sync component is the central component. The central component is responsible for consuming messages that is on the MQ and it will make changes to DNS on a DB. So a typical workflow is let's say for instance someone makes an API call. The API call which is the API server and what the API server does is all it does is basically it puts the message onto the MQ bus. So that MQ bus that you see in the middle is a dedicated MQ bus for designating. That's different from the other messaging buses. So the API call gets to the API server and the API server puts the message on the MQ bus. And then the central component is responsible to consume that message and it basically makes changes to DNS and the DB. So let's say for instance someone makes a call for a record creation. It goes to the API first. The API module will put the message onto the MQ bus. The central will consume it and it will make changes to DNS and DB. Similarly, what sync is responsible is it's responsible for listening on notifications from NOVA, from Neutron or from other components. And then it will basically put consume those messages and will create new messages and put it back on the MQ bus. And central just like it would consume messages from the API server will consume messages from the MQ bus that the sync puts onto the MQ bus as well. So that's what central does and it changes all the data in the DB as well as the DNS name server. So what I wanted to talk about is a use case for domains in eBay. So the way Designate is designed is that every tenant can have multiple domains. So a tenant can create domains and delete domains. So in case of Designate, for those who are not familiar with domains, domains is actually zones in DNS servers. So in DNS servers there are zones and here they are called domains. So any user that's part of a tenant can create domains, they can manage domains, they can delete domains. But the way we have it in eBay and PayPal is since it's a private cloud, our customers and our tenants are mainly business units. And our business, so we didn't want our business units to go ahead and create domains. So what we have is we don't allow all users to create domains, all users of a tenant cannot create domains. So what we have done is basically we have created a logical construct called VPC which stands for Virtual Private Cloud. What we have is we have a group of logical tenants that we group into one VPC. And each of this VPC has one admin tenant that can manage domains. So that way what we have is we have these multiple VPCs and each VPC has one tenant that's the admin tenant that can manage the domain. So that's how we have it at eBay and PayPal. So that's one change we had to make to Designate. And the second change that we had to make is adding handlers. So out of the box, I think Designate does not come with a, Sync does not come with a lot of handler implementation. It just comes with a framework and you sort of have to build handlers on top of that. So the first handler that we build is the NOVA handler. So the NOVA handler is basically what it does is whenever any instance is created or whenever any instance is deleted in NOVA, it actually puts a message onto the bus and the Sync notification handler will consume that message. So it will listen to instance.create.end event and instance.delete.end event. So that end actually means that, so like the way it's a standard thing where in NOVA and in other components also, whenever a flow is started, it will sort of send and it will put a notification that says eventtype.start and when it ends, it will say eventtype.end. So when we listen to end, we actually know that the event is completed. So when VM creation is completed, it says instance.create.end is a message that you see on the message bus. So the Sync notification handler will listen for that message and on deletion, it will listen for instance.delete.end. So when the Sync notification handler sees these two messages, what it does is it goes ahead and creates A and PTR records. So what it does is Sync will actually create a message for A record and create a message for PTR record and it will put it out of the bus and the central will consume it. So the notification handler, the way it's designed is when we actually, when NOVA creates the instance, it makes sure that it has these pieces on the message. So it's part of the message metadata. So we have the domain name. So we need to know the domain name on which we need to create the A record. We also need to know the host name of the VM. So we'll use the host name and we need the IP address. So we use the IP address and the host name and the domain name to create an A record and then the PTR record. The other thing that we do is we also store the instance ID in the database. So the instance ID is the ID that NOVA keeps track of what instance it is. So we keep that also in the designate database. So the reason why we keep that is when an instance is deleted, a message is put onto NOVA, puts a message onto the RabbitMQ bus saying that an instance is deleted. But at that time, all we have is the instance ID. We don't have the IP address. We don't have the host name. We don't have domain name. We don't have any of the information. So what we do is we look up the designate database to find out which instance ID is trying to get deleted and accordingly we'll look at all the records, the A record and the PTR record that maps that instance ID and accordingly we'll delete that. So that's why we keep track of the instance ID. So this is how we handle VM creation and VM deletion in designate. We create A and PTR records for that. The next thing is that we added a neutron handler. So when we say neutron handler, what we did is at eBay and PayPal, what we have is we use Elbas. So Elbas is a component that is part of Neutron and it is used to create and delete whips, pools and entities. So when someone calls the Neutron Elbas API to create a whip, what we do is Neutron actually puts a message on the bus saying that a whip has been successfully created and in that case what we do is we specify the whip address, the IP address and the whip name that the consumer wants and the whip domain name. So that's the domain name for the whip. So we put all of that in the message and what sync does is basically it consumes that message and what it will do is it will create A and PTR records for the whips and when someone tries to delete, calls a delete a whip API, what sync does is basically what Neutron does is basically it will put, similarly it will put a delete message onto the bus and then sync notify will consume that message and it will automatically delete the A and PTR record as well. That's corresponding to the whip. So that's the Neutron enhancements that we made, CNAME CREATIONS. So the default designate behavior is as we mentioned earlier is domains are owned by tenants and user under that tenants create the domains. The users and tenants, the users belonging to that tenant can only create records under that domain. So A, PTR, CNAME records can only be created by users of that tenant that have created in the domains that the tenant owns. But in our case at eBay and PayPal, what our requirement was is that specifically for CNAME, we wish to create CNAME such that a tenant A can create a CNAME for an A record that is created by tenant B in a different domain. So we had that requirement. So what we had to do is we had to add new extensions to the API where CNAME creation was allowed by any user for any domain. So that is the enhancement that we had to make. Import zones. So whenever, so as we saw in the earlier slides, our proprietary eBay, PayPal, DNS as a service used the DNS as a source of truth. It didn't have its own local database for source of truth. But the designate is a little different. What designate does is it has its own database which is used as a source of truth and it also, so it updates at two places. As we saw in the architecture diagram, it updates the DNS server, the name server, also as well as the DB. So for all the reads, what it does is it does not go to the DNS server. It just goes to its local database to pull up all the data for all the reads. So for that, for designate the source of truth is actually the DB. So what we had to do is when we had to migrate from proprietary eBay, PayPal, DNS server, DNS as a service, I'm sorry, to designate, we had to import all the data from the DNS server into the database, the designate database. So for that, what designate has is they have an API for import zone. We tried using that API, excuse me, we tried using that API, but the way the API is designed is it writes one record at a time. So the way it is designed is it reads one record from the DNS name server and it will write one to the database. It will do that one at a time. So at eBay and PayPal, we have a lot of zones and each zones have thousands and thousands of records. So the API call would take several days and it would fail a lot. So since it was the case, what we did is we developed our own tool called FastImport and what that FastImport does is it will read all the records in the domain at once. So it will go domain by domain. It will read all the records for a given domain at once. It will write all the records to the database. And what it will also do is when it reads all the records from the database, from the domain and writes to the database, what it will also do is it will go to the NOVA database and try to find the instance ID and save that and designate. And so if you looked at, we discussed about this thing a few slides ago where when designate creates, when designate listens to notifications from NOVA, it stores the instance ID so that it's easier for it to delete the corresponding NPTR records looking up the instance ID. So what we wanted to do is when we import the data from the DNS server, we also wanted to make sure that we correlate all the NPTR records that we import to the instance ID in the NOVA and save that in designate. So after the migration, what we wanted is once we have switched over completely to designate, we wanted all the delete calls to go through successfully. So that's the reason why what we did is the import tool actually did that. The other thing that import tool does is there is also a sync API, a sync domain API. So basically designate has an API where you call and you say this is the domain you want to sync. So it will sync that between the database and the name server. So what we do is doing the migration. We migrate the database. We correlate the data between the designate database and the NOVA database and then we call the sync domain API to sync the data from the database to the name server. So that way both the systems are in sync. Challenges with designate Juno. So when we migrated from, so this was the migration. So once we finished the migration and now we were on Juno, what we had is we started taking production traffic and this is we ran into a few issues. One of the issues that we ran into is the database concurrency issue. So the concurrency issue is basically the way we, the concurrency issue is when two messages when designate central has to process two messages, either it's for A or PTR, but if they are for the same domain, what would happen is that we would see database deadlocks. So this issue, we had this one issue. The second issue is the import zone designate API is very slow. We looked at it at a previous slide on why it is very slow, but this was the second issue that we found. And CNIM creations, we discussed that also. Basically CNIM creations were not supported. These were the challenges that we faced. I would like to double click on the database issue. So the next slide we will look at that. So what we did is we did a lot of load testing. What we did is we came up with a load testing tool to reproduce this database concurrency issue. So the way we did the load testing is we made API calls to designate at the same time because if you look at it, designate central is where the problem was. Designate central gets requests from the message bus, but the message bus gets it from two places. One is from the API and other is from sync. The only way to get data from the sync is to basically do NOAA boots and delete. So what we did is we had our load testing tool. Excuse me, we had our load testing tool, which made API calls as well as at the same time what it did is it issued a parallel NOAA boot and NOAA delete commands. And we wrote the tools such that could configure a number of concurrent calls we want to make at the same time.  So one thing we found out is we were able to reproduce the database concurrency issue within three threads. So when there were three messages that sync, sorry, central had to process at the same time, we ran into concurrency issues. And the root cause of the issue is there's a field called serial number on the domain table. So it's on the domain table. There's a field called serial number. And that serial number is the same number that you see on a DNS server zone. So that number gets, I think, incremented each time and you update anything on the zone or the domain. So what the designate does is it increments it in the database and it will increment it on your DNS server also. And what happens is that once, so if you have two changes for the same domain, what is going to happen is it's going to try to increment the serial number at the same time. So that causes deadlock because each time when you update, increment the serial number, it has to lock the row in the database. But if you have two devices trying to do that, you will have to, there will be a deadlock. So this is why the deadlock was caused. So the fix for the database concurrency is there are various back-end DNS servers and some back-end DNS servers use the serial number. Some DNS servers don't use the serial number. So the back-end database property server that we use does not use the serial number. So what we did is, for us, a quick workaround fix was to not update the serial number. So that is one option. So if your back-end database does not update the serial number and is not needed, you won't have to worry about it. You just have to make sure that your code does not update the increment the serial number. But certain back-end DNS servers, what they do is they require the serial number to update, bind and baud DNS. They require them to be updated. So the fix for that is actually in designate kilo. So if you upgrade to designate kilo, this problem doesn't come because they have rewritten the way they update the database. Future work. So future work is basically you want to adapt kilo and liberty. There are a few changes that, enhancements that we need to make beyond kilo and liberty. We have created blueprints for them, and we have shared it with the community on Launchpad. So one of the blueprints that we have created is IXFR support. So currently what happens is that the changes between DNS and the slaves are propagated via AXFR. So AXFR actually means that you sync the entire zone. And IXFR is incremental zone transfers. So what happens is that with the full zone transfers, if your zone is very big, it will take a really long time to sync. So let's say if your zone has thousands of records, you don't want to do a full sync each time anything changes on the zone or the domain. So with that, we need IXFR support. So we have created a blueprint for IXFR support. The other thing that we have is granular access at various levels. So right now, the granular access is at the tenant level. So basically if a tenant creates a domain, all the users of that tenant can do anything with that domain, like create A records, delete A records, change anything. But what we would like to do is basically we would like to have more granular access. We would like to have granular access at domain level itself. We want to say that only even if this tenant has these many domains, excuse me, we don't want all the users to have access to all the domains. So we want domain level access. We want record type access also. So we just want to say that certain users can create C names, but they cannot create A records and PTR records. So we want record type level access also. What also we want is we want access at record name and record value level. So let's say for instance if your record name starts with the word test, you only want to give access to certain users with that. So we have created a blueprint for that. What we have done is basically the Brooklyn has a very powerful feature where you actually have an API on Designate to specify the exact role by a regular expression. So we have that blueprint in the community. And the next thing we want is transaction support. So we would like to have APIs which basically you could create for a given domain, you could create APTRC name records at the same time, but we want transaction support. So basically what we would like to have is we would, if we could create APTRC name, all those records at the same time, multiple of those, and if any one of them fails, you just want to roll back everything. So we have a blueprint for that as well. So we have any questions? Thank you very much. Thank you very much. And I want to know about the motivation to use Designate because that is an incubated project. What is the motivation to use? Designate is actually used in production by a lot of companies actually. Can you add to that? I think if I'm not mistaken, if some folks from HP, what I heard actually they are already using in production. So of course there are some local patches that I did talk to HP team as well, but most of the fixes are in kilo. So if you are going to be in kilo, I think it will be in better up. So a lot of companies are using it really. Specifically, and most of the folks involved in Designate are from Rackspace and HP, and we also contributed a bunch of code to that. Of course it's not in upstream, you know, right? Because if you look at what Kunal explained, to make it operationalize, actually it's not a trivial task of just go and take it and then put it into production. Like any other open stack component, when we started and sometime until sx, I don't know how many people worked on sx, but it's a lot of firefighting. Still a lot of firefighting, but it's definitely better than those days. So we are still in those days. But it's not an option. Because if you start early, your migration path will be less. For example, we have unified DNS that we wrote it internally three years back when we architected. We had three different DNS infrastructure. Our goal was to bring all this DNS infrastructure into Common API so that actually you don't care whether you are using Bind or any other vendor or any other solution. We have multiple different IT organizations. They don't recognize infrastructure. But when you want to do some automation between different environments, it was nightmare for us. This tool works with this environment. That tool works with this environment. Our platform service is working on something else. So we wanted to unify all of that. So that itself took us more than two years to converge everything. Now we wanted to be on open APIs. If you are moving away from our unified DNS, then a lot of people are asking questions why they actually are moving away from whatever we wrote it. It's already stabilized. Only motivation for that. Actually we wanted to be on open API. So that actually we continue to move that path even though actually migration is going to be painful for us. We wanted to adopt early. So that we are not casting up very, very late in the game. And also some of the use cases that Kunal talked about, they are mission critical use cases. For example, we had some global live balancing and it has its own records as well. Now there are some local lips in the load balances. We want to move to global load balancing. So what we want to do is actually, we are all public internet-facing customers are using it. And if you want to move all these endpoints to a common place, and then you have to immediately delete and then add it to the public load balancing. So if you do ANPTR separately, there will be an outage. And every minute, every second counts for us in terms of revenue. So what is the feature for that? That DNS API is very critical for us. So what we want to do is identify all these mission critical APIs and put it in the community first because it's not only useful for only eBay and PayPal. It will be useful for every other company they are running mission critical applications in the cloud. So if you are running maybe a simple dot-com application, it doesn't matter for you. But if you are really, really running a mission critical application, if you are talking about 4, 9 of your application availability, when you just maintenance, these are all very, very critical for anyone to catch up in the community early. So if you call your application architecture and then what it needs everything into your APIs so that it will be easier for you to manage all those layers later. So don't think that actually, you know, incubated projects, a lot of, you know, many incubated projects are, you know, even no one is incubated at some point, right? So that's why we looked at it. Thank you. So the question is what is the usage rate that we have? So the usage rate for the control plane or the data plane? Okay, so I...  And also, you know, we are moving everything from our existing infrastructure into the first version of our cloud into the new version. And if you look at, you know, the existing version where Wappenstack is running, the footprint might look like, you know, around 10,000 hypervisors or whatever.  So that many changes are happening across infrastructure.  They are all creating and deleting VMs and whatnot. So all these records are going through, you know, DNS APIs today. And some of them, most of them are in the preferably that we all talked about, we call it as unified DNS service. And the idea is actually identify each and every zone from that particular infrastructure into the new one. So the one challenge with this actually, you know, designate is a stateful service. And DNS service that we wrote, actually, the DNS master is the source of truth. It was very easier for us. This is completely stateless. You know, we have only, you know, few, you know, states to manage, specifically who is modifying what and then access controls and stuff like that. But designate is completely, you know, the source of truth actually. So even we have a lot of, we are going to have a lot of challenges.  There are a lot of engineering needs to be done.    Because at the end of the day, it doesn't matter whether you use unified DNS or you use designate, our business would not get impacted. That's our, you know, first goal. And we cannot, so business, they don't care what API you use in DNS, but it should not get affected. But at the same time, we want to innovate in the open source as well. So it's a, you know, it's a tough problem. Yeah, so that's the answer to the question? Yeah. Yeah. Yeah, yes, exactly. Yeah, we will be. Yeah, yeah, definitely. So one of our engineers actually worked on that and I will talk to him and then open source. We will make it available, yeah. Yeah, definitely. Yeah, so the problem with that actually, you know, not only for designate the problem in the community, you know, I talked, you know, open stack technical community also sometime back where, you know, introduce more and more gates in the release process. So I don't care if you don't deliver in a couple of features for a release, but I want to put as many test cases as possible, functional or, you know, unit test cases and performance test cases. It is very big cap in the community itself. Say if, you know, Kilo is coming out, how quality it is, right? So can I take it and run it in production? I have to lot of hard work because, you know, every upgrade cycle takes around, you know, at least, you know, one or two months of, you know, effort from every company to make it happen and then just take it and upgrade it in production. So that gap is still not at rest. Of course, you know, we volunteered to provide some infrastructure to the community itself. Of course, we will be working with CICD infrastructure, team and HP also volunteered and we'll be working on that for sure. And of course, you know, it's a journey. It's not like, you know, there's no point in complaining about community. Somebody says, oh, community, oh, that doesn't work. Okay, you are part of the community. Let's do something for it. Right? Yeah. All right. All right. Okay. Okay. Thank you. Thank you.