Skip to main content
Metaist
DRAFT

1 hour to make an allowance system (Design Lab #2)

In this episode of Design Lab, I try to build an allowance system for Oren Litwin.

References #

Introduction #

Lev Novikov: All right, welcome to the next episode of Design Lab. My guest today is Oren Litwin. Hi, Oren.

Oren Litwin: Hi, how are you?

Lev Novikov: Doing well. So you had sent me an email about making a allowance app. So why don't we start with the problem?

Problem #

Oren Litwin: Yeah. So, you know, I and my wife have small children and we would like to have some sort of a system to give them allowances that they can, you know, they can see and they can track on, on what devices they have. And there used to be a few options available in various app stores, but it seems like a lot of them are now defunct. And so I was interested to see, you know, how, how something like that could be hacked together.

Lev Novikov: Very cool. So the previous app you used, it was Rooster something?

Oren Litwin: Well, we didn't actually get the chance to use it because by the time we were interested, it was already unavailable. It had been taken over by a UK bank, I believe, and is now restricted outside of the UK.

Lev Novikov: Got it. Got it. OK. So and I think you had described to me in an email two different ways that you want to provide an allowance, right? Sort of a fixed stipend and then also rewards for choice.

Oren Litwin: Correct.

Lev Novikov: And what kind of chores are we talking about?

Oren Litwin: Oh, things like, you know, clearing up trash, putting away toys. Our oldest son is getting to the point that we're now expecting him to clear the table after meals. Things like that.

Lev Novikov: Very cool. And the way that the allowance actually gets distributed, do you have to verify that they did this task? Or how does that work?

Oren Litwin: I imagine there would have to be some sort of verification. You know, trust but verify.

Lev Novikov: Of course. How does it work today?

Oren Litwin: Well, today, part of the problem is we don't really have an allowance system in place yet, just because, you know, we have these aspirations for this whole system. We haven't actually sat down and thought it out.

Lev Novikov: Got it, got it. So there's not like a sheet somewhere or a piece of paper or a whiteboard somewhere where you're keeping track of these things today?

Oren Litwin: No. And part of the problem is, you know, at the moment, you can imagine that a that allowance would have to be cash, but we just don't have cash around the house. So, you know, our whole lifestyles are more digital and their lifestyles as they grow up and actually become financially responsible, it's going to be mostly digital. So it seems natural to want to have some sort of a digital tracker.

Lev Novikov: Oh, fascinating. And is the intent that they would at some point cash out, or that you would somehow transfer these dollars to some actual mechanism that they control for, you know, cash?

Oren Litwin: Initially, it would probably be like, hey, I've got 10 bucks in my spending account. Can you please buy that for me and do that? But eventually, I imagine we would actually be transferring money into like a car.

Lev Novikov: Right. So in that initial version, you also need a way to like take money out of their account.

Oren Litwin: Yeah.

Lev Novikov: Okay, all right, so cool. I think we understand the problem, at least on some level.

Design #

Lev Novikov: I think as we start designing this, we'll get into a whole bunch of different other issues. Let's move over to this white space that I've created for us in a Google slide, where we'll just put down a few concepts and talk about how things might work. So let's start with a few, like, who are the people? Okay, so there are parents. And there's maybe one more parent who wants to be able to keep track of this thing. So there's a parent. Let's say there's a couple of parents. And then we've got some kids. Give them great names, like Parent 1 and Parent 2. OK. And then there's a kid. And there's maybe another kid. All right, and what are some of the concepts we have? Well, so there's also tasks, and there's also like a schedule, like a schedule of when the money flows. OK, so let's talk through this. Do kids pick from the list of tasks? Or are they assigned?

Oren Litwin: I suspect it would be more like a menu of, uh, you know, these are five things you can do to earn money. But actually, okay. So some, some of them could be assigned. So, I mean, I don't know how feature rich we want to be at this stage, but you could have some that are assigned and some that are optional.

Lev Novikov: Let's make it, let's be concrete. Like, can you think of a thing that you would assign one of your kids?

Oren Litwin: Uh, yeah. So, you know, assign, uh, the one child to clear the table, let's say.

Lev Novikov: But clear the table is a sign that it's like a child one. Okay. Some tasks are like, can you do the task anytime?

Oren Litwin: Well, it would be after dinner.

Lev Novikov: Okay, right. So dinner. So the way that the kid But let's kind of go into the mindset of a child. So this is going to be on this. This is like. So from their perspective, they open up the app. And they see some things. So one of the things would be something like their balance. I'm going to just this is all fake, right? But it's sort of like. They don't use words like balance. What do they say? They say like, how much money we would have now, right? Yeah. Okay. And then there's another set of things that is sort of what you can do to get money, right? But this is the thing that kid wants to know. This isn't actually like an app view. I'm just trying to, capture the pieces of information that each side wants to know when they approach the app, right? So from the perspective of the kid, they want to know, how much money do I have? What can I do to get money? From the parents view, they have questions like, How much money does each kid have now? They also have like a balance type question. Which tasks... Verified. It's like the, hey, do you want to check that the kid actually did those things? There's got to be a way to, like, remove tasks, right? You need some way to... We'll talk about what that might look like. And then there's got to be a way to change balance. So actually, let me switch these two. So there's like, how much does each kid have, but then you can change that balance, right? Because it could go up because of some random reason, right? They received a check in the mail, you're gonna go cash that check, but it's actually, you wanna credit it to their account, right? So there's some way to credit, that's why it would go up. Or the example you gave of, making a purchase on their behalf. That's one reason why the balance might go down. So there's stuff that happened outside of the app's awareness, or this, I'm saying app, but I really mean system, right? Outside of the system's awareness, something happened, you can change the balance with a log. And then there's something to do with tasks. So like, add or remove tasks, and then also like approve that certain tasks have been done. Okay. And then I guess the kid should also be able to see like a history of. Long of. There's something pending approval. And I can go nag you. Hey, I did the thing. Don't you want me to know that? Don't you want to prove that I did the things that my balance can go up? Is there anything else the kids care about?

Oren Litwin: Um, maybe if there was some sort of a goal tracker.

Lev Novikov: Okay. So what's the goal tracker? How does that work?

Oren Litwin: Like if they could say, I want to save up to buy a Lego or something.

Lev Novikov: Oh, Oh, I see that kind of goal tracker. Okay. Yes. So, all right. So it's sort of like how much money. Cool. That could go together with how much you have versus, and do you think they would have multiple goals or just a single goal?

Oren Litwin: I can imagine multiple goals.

Lev Novikov: And so then, see the nice thing about a single goal, OK, I'm going to try to scope it down a little. The nice thing about a single goal is that gives you a percentage of progress bar. That's it. You could just change what your goal is, and that's it. And then you save until you hit the goal, and then you can make a new goal. If you have to manage goals, I'm just going to keep it tight on that particular thing. But I understand that they could have multiple goals. We'll keep it simple.

Oren Litwin: Yeah, that'd be a version 2.0.

Lev Novikov: Exactly, exactly. All right, so parents view. There's obviously a lot hidden into what it means to add and remove a task or change the balance, all those things. But are there other pieces of information? Like, do we care? Do the parents care what the kids goals are?

Lev Novikov: Um, let me ask that. Sorry, I asked that abstractly. Let me ask that more concretely. Do you care what your kids goals are?

Oren Litwin: Yes.

Lev Novikov: So if they said that they were saving up for Lego, you'd want to know that it was Lego and not some other thing.

Oren Litwin: Yeah, I think so.

Lev Novikov: Okay. All right, so then that's... All right, so not only how much money they have, but also what are they saving up for? And this is also another reason why it's nice to only have a single goal per kid is because then you could just see it as a percentage the same way that they see it. Okay. Um, I wrote this, but how often does this actually happen? Is it usually the case that you, um, like, do you, do you do this thing where you cash checks for them?

Oren Litwin: Um, not yet. Um, I imagine we would once we had ourselves squared away.

Lev Novikov: All right. So that's important piece then. Um, And we'll have to go through what it means to verify a task. All right, let's go through adding a task. That's kind of like the core of this task. Okay, actually, there's what you can do to get money. And then there's something about saying like, I'm doing a slash bid. the thing to get money. They need some way to indicate that they're claiming they're going to do it or they've done it. So let's talk about what a task is. So a task probably has something like a name, right? It's like a name slash description. Let's enumerate some types. Cleaning the table. After dinner. Or some other chores.

Oren Litwin: Let's go to the chores. Checking the lights before Shabbat.

Lev Novikov: Yep. Okay, what else?

Oren Litwin: Putting away toys. Yep. We haven't yet started him on it, but pretty soon, you know, collecting trash from around the house on trash day.

Lev Novikov: All right. Keep it going. What else? Just to be clear why I'm asking you to generate all these things is because I'm looking for patterns. And the specific patterns that I'm looking for are what kind of constraints there are on tasks. So for example, it might be the case that multiple people can do this task, right? Like putting away toys. So like if I say I'm doing it, that doesn't preclude someone else from saying I'm doing it. It could also be the case that there's a time window. You have to do this within this time window, otherwise the task is not available for you to do.

Oren Litwin: Sweeping the floors. Washing the car, that would be nice. Not quite old enough yet, but I can dream. Doing the dishes. Pulling weeds.

Lev Novikov: All right, this is probably a good list to start. If you think of any other, we can add to this list. OK, so this has a nice property that it's like you can't claim to have cleaned the table after dinner at 7 o'clock in the morning. So this has a time window associated with it. This also has a time window, but also a particular day of the week. This is a time window. multiple days of the week. Putting away toys. So is it the case that multiple, I just claimed that multiple people could be putting away the toys and then get an allowance for it. Is that true? Yes. Okay. Is this also a multiple people kind of thing or is this just one person on a particular day?

Oren Litwin: Sorry, I don't see your screen.

Lev Novikov: Oh, sorry. Oh, you don't see my screen. Oh my goodness. I haven't shared. I will fix that right now. Sorry, this whole time I've been doing, I've been pointing, gesticulating wildly. Here you go.

Oren Litwin: All right. Where were we?

Lev Novikov: Here on the bottom. So collecting trash on trash day. Is that a-- is that a multiple people kind of thing?

Oren Litwin: I think that would be better for one person.

Lev Novikov: One person, one person on a particular day of the week. All right. Sweeping the floors.

Oren Litwin: That seems like it's a one person kind of job.

Lev Novikov: Is there any time restriction on that? How would you say, like, could I just... Here's the concern. Is there some constraint that says you can only do these things once per day? I'm not saying your kid's going to try to hack your system, right? But they might. If I could just sweep the floor every day, cool.

Oren Litwin: That feels like an after dinner kind of thing, or maybe before dinner. Well, no, after dinner.

Lev Novikov: OK. It's after dinner. I get that. But is it also the case that Do you do that every day? Is there a number of times per week frequency limit?

Oren Litwin: At the moment, we haven't gotten that far, but I could imagine. Well, our youngest is young enough that it's still an everyday kind of thing.

Lev Novikov: Fair enough, fair enough.

Oren Litwin: OK, so so, yeah, but I can imagine when when she gets a little older, it could go down to, say, twice a week or so.

Lev Novikov: washing the car. How many can multiple people do this?

Oren Litwin: Yeah, it probably would be a multiple person job, really.

Lev Novikov: Right. So that creates another question about like, this requires multiple people. So that's different than like putting with the toys, I could choose to put away the toys, even if my sibling chooses not to put away the toys, and then I collect the allowance. So one thing we'll talk about is when you collect the allowance, if it was a multiple person thing, if it was a multiple people optional kind of thing, then do we split the reward, or we each get a fixed bounty? This thing, which requires multiple people, yes, you want to do this thing, but until the other person says that they're also going to do this thing, just because you want to go do it, and then you kind of take the soapy bucket and go out and start, you know, trying to wash the car by yourself, that might not work so great.

Oren Litwin: Yeah.

Lev Novikov: So that, yeah, so I guess, I guess, let's hear your thoughts on the first question. If multiple people is allowed, Right.

Oren Litwin: If you have like a fixed bounty pool, let's say, and then they both work on it, you have you have an incentive for people to try to clean up before the other person starts, which on the one hand sounds awesome. But on the other hand, it could lead to fighting.

Lev Novikov: Yes, exactly.

Oren Litwin: So perhaps it would be better to. On the other hand,

Lev Novikov: This is the real work. Welcome to Design Lab, where we really force you to think about all the tricky, tricky bits. What system are we actually building here? I know you want an app, but what I'm actually getting you to do is to think through the details of how you want the system to work.

Oren Litwin: Design a whole economy.

Lev Novikov: That's right. Yeah.

Oren Litwin: So maybe for the sake of argument, let's say that, that, um, you know, the fixed, uh, the fixed, uh, you know, allowance for, for cleaning up toys is $1 if you're doing it with, with the other kids. And, but if you do it by yourself, you get like an extra 25 cents. Maybe that's a good way to balance it.

Lev Novikov: Okay. Would you object to just making it a fixed bounty no matter what?

Oren Litwin: Like per person, like there's a bounty. Probably not.

Lev Novikov: Okay, fine. So let's just do like $1 per person.

Oren Litwin: Yeah. Trying to overanalyze it here.

Lev Novikov: Yeah, yeah, yeah, yeah. I'm just thinking like, you want to keep it simple, right? It's sort of like, if you do this job, this is a job that multiple people can work on. Each of you will receive $1 if you work on this. And that's just incentive for you to work. And like, oh, if you both work together, you still receive $1. It doesn't matter. It's sort of the Talmudic concept, right? This one benefits and this one doesn't lose. So you make the work go quicker, but you still get... This could have a weird incentive of we should trash the place every day so that we could claim to be putting away our toys.

Oren Litwin: Yeah.

Lev Novikov: Although they do that anyway, so you got to do that. You got to take care of it anyway. Okay, cool. So, okay. So watching the car requires multiple people. Um, it's basically $0 until, uh, I'll agree to work on this. Um, all right. Doing the dishes. Oh, also how, how many times a week can you, can you watch the car?

Oren Litwin: Uh, probably once. Excuse me.

Lev Novikov: Okay. Doing the dishes. So can't have multiple. I mean, I don't know. Can you have multiple people doing dishes? Can one wash and one dry easily?

Oren Litwin: I mean, if so, it would be one wash one dries. Uh, right.

Lev Novikov: So then you would just break that up into like different wash the dishes, dry the dishes.

Oren Litwin: Yeah.

Lev Novikov: And that's like one extra day. And then there's one person. Right, it's a solo task. One person could wash and then dry. One person could click, I'm going to wash, and the other one say, I'm going to dry. And it could be different payoffs for these. OK, pulling weeds. How's this one work?

Oren Litwin: That one's tricky because that's that's sort of a like a target of opportunity thing. Like, you know, there need to be leads for.

Lev Novikov: Ah. OK, well, let's just using the current framework I have ad hoc developed so far, is this a one person thing or a multiple person thing?

Oren Litwin: Multiple.

Lev Novikov: OK, good. So multiple people. And how frequently can you do it?

Oren Litwin: Let's say once a week. It might be more like once a month. I don't know. Probably more like once a week.

Lev Novikov: All right. So it seems like the first approximation, there's sort of like maybe this just collapses to like, OK, there's a name and a description. There's solo, solo, solar, multiple people. Let me also, if there's like an upper bound, so maybe it's like up to this many people, but for now, let's just keep it simple. We only have a couple of kids, so. Then there's some sort of frequency limit. And then there's a payoff. And the frequency limits are things like 1x per day. we don't have anything that's multiple times per day, right? It's all kind of one time per day kind of thing. Yeah, so far, one x per week. We don't have to even say like, which days of the week because the description could say trash day, and you want to prove it if they do on some other day, or they just say check the lights before Shabbat. And if you're doing it on a Tuesday for no apparent reason You know, we want to prove it and it's not approved then it goes back to the pool of being available to be done So that actually is an interesting interesting Little bit of complexity right so that a task goes from being Available And it's like Got it. And there's done, disabled, start, done, verified. I think these are the states of like, Not done. Or actually there's another. There is this weird state of like unavailable. Yeah. Right, so a task might exist but not be available because of various reasons like it's been done. It's been.

Oren Litwin: Not the right day.

Lev Novikov: So I don't know if I want to put in a specific day constraint at this point. I think I could just get by with when you're doing verification. So let's just say it's available to be done. Started, done, verified. And so if you say rejected, basically, if you don't put it in the verified, then it becomes available again. assuming they're time conditions. Okay, and the other things that has are, we have one X per week, we have two X per week. I'm kind of hard coding these at the moment, you know, in the future, some system will be much better. But just for now, I'm just looking at the frequencies and then we have like, maybe like one X per month. But once a day, once a week, twice a week, once a month. That sound about right? All right. And then bounty for completion is sort of dollars. OK. OK. I think this combination of a name, whether multiple people can work on it, actually, this could just be how many people can work on it. There are many different cases, right? So you could say like two people, one person. Frequency limit. This is always hard to encode, but for now we'll just keep it really simple. And then dollar amount and then the status. Okay. Any other chores come to mind while we were talking?

Oren Litwin: Well, mowing the lawn. I don't think it's seen it in type from the others.

Lev Novikov: But this would be a great test of our little system. So mowing the lawn. So that's the description. How many people can work on it?

Oren Litwin: One at a time.

Lev Novikov: So one person. And what's the frequency?

Oren Litwin: Frequency is once a week.

Lev Novikov: A week. And batch completion is some dollar amount. Yeah, seems to work. Cool. All right, so I think you can fit everything into these boxes. And then how much money do you have now? How much do you need for a particular goal? What you can do to get the money, somehow claiming that you're working on this thing, basically starting a task and then stopping the task saying that you've done it. And then a history log of all the things you've done. Okay, here, how much does each kid have? And what goal is the kid saving up for? Random changes, sort of altering the log. Which tasks have been completed but not verified? And move tasks. OK, I think there's just anything obviously missing from my little description of your system.

Oren Litwin: I think for a version 1.0 system, this is pretty good. In future, you might want to do things like interest bearing savings and blah, blah, blah.

Lev Novikov: Yes, that's significantly more complicated.

Log #

Lev Novikov: All right, here's what we're going to do. We're going to try to implement some part of this right now in the half hour I have left. I have a hard stop in the half hour. So we're going to just try to hack this out in a Google Sheet. And I will share the sheet with you later also so that you can make a copy of it. All right. allowance spreadsheet. Here's what we need to do. So we're going to have, it's going to be some kind of log. This log is going to keep track of all the things that happen in the system. And we're going to put a date. Format this date, my favorite way to format dates. And then I'm going to say, actually, I don't even need like the parents can all just look at the parents sheet and the kids could look at their. Well, interesting, interesting. I just thought of something. The parents want to parents care about. Sorry, the parents care how much each kid has with the goals are saying they need to be able to make some changes here. It needs to be able to verify some things. Let's see the kids. I just had a crazy idea that everyone all the parents could just look at. I mean, is there a problem if the kids can see what the other kid is? Setting up for.

Oren Litwin: I don't think so.

Lev Novikov: So then the parents and kids could both share that view of just the list of kids. Right, so we're going to have who the kid is. Current balance. Are good. This is sort of like the thing that the parents want to see. Delete columns. Okay. Where target and balance are a concrete dollar amount. Name is just the name of stuff. So actually, we could just call this, well, kids is fine. Let me make a little config. This is gonna be my little trick for how to make, how to make some parts of this. Okay, all right, so kids are gonna be with great names like kid one and kid two. This lets us have a dropdown in the appropriate places. For example, for the log, I'm gonna say there's a date. I'm gonna say who. Let's say what and an amount or something like that. You'll see where I'm going with this in a second. Then we're going to need another sheet for tasks and a task Task, I have to think about this for a second, has a date, has a name, which is also the description of the task. It has a number of people. Whatever number of people is fine. Let's see. Available, let's see what I mean with this. And then... Okay. Oh, and... Get it as a status. Get my config as status, where status is something like unavailable, available started um in some future version these would actually this would be a database right um right now we're the poor man's database is a google sheet okay so uh How do I calculate the balance on all the things? So the log, I think I already did this, but let's do it again. So poo, this has to be formatted, the dropdown, which is going to come from a range, and that range is going to be config that range. Done. And now, you know, log. Make it as options to. OK, good. So now we got kid one, kid two. Cool. Now we can drop the extra. OK, and then this is a dollar amount. So the. What is the little tricky bit? Let's think about this for a second. So.

Tasks #

Lev Novikov: Let's make some tasks. So the tasks, the tasks kind of live forever, right? These are ongoing. There's not really, right? There's no reason why the task, okay. So let's try to translate some of these tasks into, date might not be necessary at all. It might be just the case that there's just those things. Where's status? as a validation rule that says that it's a dropdown from range, and that range is this range. And done. OK, so now, ah, wait a minute. This status can't go here because You've only got like 10 tasks or less. So the status is not a property of this. It's not a property of the list of tasks. All right, let's copy over the tasks and film this. OK, so. OK, clean the table after dinner. Let's fill out this little thing. How many people can do this? Maximum?

Oren Litwin: I suppose two, really.

Lev Novikov: Cool. Frequency is once per day. Let's put in another configuration thing. We could actually say, if we normalize it to a week, then I need some way to identify this shorter name in the description. Okay. So the only one that you had that was once per month was this one option that we had. Let's normalize to a week for a moment, because I think it would make it more complicated in the future. How much are you willing to give for cleaning the table after dinner?

Oren Litwin: Let's say $0.50.

Lev Novikov: And they can do this seven times per week. So what I'm going to do is this next available is going to be an auto-calculated column that will look at the last time it was done. And then based on the number of times per week it's allowed to be done, calculate the next date that this could be worked on. This is kind of more complexity. We'll see if this actually works. All right, checking lights. So one person can check the lights, presumably. It can only be done once per week. How much was the price of this?

Oren Litwin: A dollar, let's say.

Lev Novikov: All right. Yeah, I guess if you didn't have the lights on, that'd be kind of annoying. Yeah. So we said two people could put it away, and it's a dollar per person, and they can do this six, seven times a week.

Oren Litwin: Yeah.

Lev Novikov: All right. Collecting trash on trash day. So we said one person in particular. This is one person. It can be only done once a week. And what's the price of this?

Oren Litwin: Let's say, as it currently stands, let's say $2. Wow.

Lev Novikov: I guess if you missed the trash, that's pretty bad.

Oren Litwin: I might be in the middle of inflation shock. Maybe we'll adjust these numbers down.

Lev Novikov: Fair enough. Okay. So we've been before one person, um, once per day. So in the future, maybe twice per week. So we'll say seven. And what's the price of this? Uh, 50 cents, 50 cents. Okay. And then watching the car. Oh, right. This one has that weird requires multiple people. So, um, All right, I'm not going to build that particular constraint at the moment. Let's just say it takes two people. Two people can do it. And one time per week. What's the price on this?

Oren Litwin: That'll be, let's say, $5 each.

Lev Novikov: Right. Excellent. All right. This is one person, one time a week. And how much do you get for washing the dishes? Just to be clear, washing and drying are separated.

Oren Litwin: Yeah. Probably a dollar, I think.

Lev Novikov: OK. All right. And then how much do you get for drying?

Oren Litwin: $0.50. OK.

Lev Novikov: One person once per week, $0.50. That makes sense. Drying is less. Annoying. Okay. Pulling weeds. So this is, uh, up to two people once let's call it once per week.

Oren Litwin: What should you get for this? Uh, let's say $3.

Lev Novikov: Wow. The weeds really eating up your lawn.

Oren Litwin: Oh my Lord. Well, especially since some of them are bamboo.

Lev Novikov: Oh yeah. Okay.

Oren Litwin: I probably need to take out the hat, the, uh, the machete for that one.

Lev Novikov: Got it. Yeah, that's a real. It'll work. Okay.

Oren Litwin: Mowing the lawn. Uh, that'll be, let's say $3.

Lev Novikov: A few. So two, three, three, three. Yeah. All right. Let's keep it nice and tight. All right. So we've got our list of tasks and, um, what we want to do is so the log I mean, if we if we let.

Extra #

Lev Novikov: OK, this part is easy because this basically says sum up on the log like the log is the final determination of what actually happened, right? So we'll say, you know, for kid one and whatever doesn't matter what data is right for whatever reason like. You gave him $1 and then kid two you give you give him $2. then this little thing here is going to say... Actually, I need to do this a little more carefully. So this is going to be basically this range. Select it here and then change it to the A. And actually, I'll just do this as a dot. Filter A2 on this where A2 is not equal to B1. No? Formula parser. Awesome. This. A2 to A6. That says the row count five, column count one, actual row count. Hold on, hold on. We're going to fix this problem real quick. I have a whole bunch of things that depend on filter working correctly. Did it be filtered? Condition one, a column or row containing true or false values. Of course. There we go. All right, so we've got the names of the kids. This is going to be some if on log. Let's see, range, criterion, sum range. So the range that I'm looking for is B. The criterion is that it's this kid. The sum range is on the MS. So this is sort of the ledger of all the stuff. Whoa. $2, did I do that? I did do that, okay, sorry. All right, the target is set by the kid, right? So we're gonna, what we'll do is actually, we can make a little progress bar. Do that. Cool thing for this. Yes. Okay. So the, okay. It's going to be, I will just write that just a second for a break, but it's like, okay. This is going to be percent done. And that's basically going to be your balance divided by your target, obviously division by zero. So maybe $10 for Lego. And this one is trying to go crazy and is trying to save up $20 for, I don't know, pick a thing your kid is trying to save money for.

Oren Litwin: A race car, let's say.

Lev Novikov: Yeah, there we go. Okay, so now we're gonna just send that as a percentage, something really simple. And then this will be E2. Access rows. If you ever have more kids, this will automatically add, but you will have to drag this down to get the logic to work. OK, so the kid sets the target. It's kind of like a little dashboard. The kids can set what the goal is, and they can say, you know, what the target price is. You can also use permissions to basically let them alter this, but not any of the other cells. So you could give the kids permission to alter their individual cells. I'm not going to do that right now. But that lets them change their target and change their goal without changing any of the other auto-computed pieces. All right, we have a list of tasks. We're not going to let the kids edit this, because then they could just give themselves lots of dollars. And then we have this thing that says, OK, so now we need another one more thing. So the task is really part of configuration. And the log is sort of, this is the true ledger. We'll just call it ledger. This is for the parents. The parents keep track of this whole thing. So now what we need is a way for the kids to say that they've done a particular task. So this is a different kind of, this is like jobs. And so here there's a date. They say on a particular date, and then who, task, and status. down a little bit, but bye for now. Okay, so this is the date. The who should come from a range. That is, who's allowed to say that they're doing something. The task, so here's the, here's one little problem. The reason I put in the IDs is because, um, if you change the description, then this table will break. So what's going to happen is we're going to say, this is the task and this is the task ID. They have to choose from the task ID and then I will make it. Let me just look up of this key. And actually, the range that we're looking in is in this range. Index is 2, I believe. First rows. This might be a few lookup. Yeah. And yeah, you didn't find that value. But if I had said this was 1, then OK, cool.

Oren Litwin: So for consistency, then you wouldn't, you shouldn't be able to edit the name of a task. You should just have to add a new row and like archive the old one.

Lev Novikov: No, you can edit, you can edit. So the way I've set this up is the actual, uh, you could edit the name anytime you want. Yeah. Watch. This is task one, clean the table after dinner, right? I go to tasks and I change this to be, keep up for dinner every day. it gets updated here as well, because I kept the ID the same. So the ID is the part that needs to be picked. It's a little weird, because they have to choose their range, and it's gonna be from range. I'm gonna pick this. And so they can pick tasks B3. A to A. There you go. That's right. So this is basically the dropdown lets you pick a task number. Again, in a real app, you would just tap on the thing. But here, I actually need to know the number of the thing. Let's see. This is also an arrow. Okay, and then the status of this task is one of these things. Oops, that's it. So, add a rule. Jump down from a range. And the range is gonna be one of these things. Okay. All right. Um, there's very little, it's not going to be super automated, but let's say let's just use, okay, so put in the date and then kid one says, I'm going to, I started this thing. So I think what we need to do is, well, OK, one second. When the kid does the thing, all you care about is whether they say that it's done, right? By putting something in here, the kid is implying that that's the thing that they're working on. Is there? So actually, here's what we care about. And that's a thing. We actually don't need this really complicated status column. What we could just do is let the kids say that they're done and let you say if it's verified. And the only options in this thing are basically yes or no. Add rule. Option one is yes. Option two is no. Okay. Does this make sense? So the kid can change whether they say it's done or not. It could be like, yep, I'm done. Oh, I can't really see it. Hold on a second. Let me... I don't like this chip thing. There we go. Okay. The kid says whether they're done. You say whether it's verified. Maybe we don't even need... So then this whole thing with tasks, no, it's fine. Maybe this parents tab is just sort of an extra This is to handle the purchases or extra thing. We only got four minutes. All right, let's move quickly here, sorry. All right, I think then if it's verified, then I know the task ID, I know the kid, I can then basically say, I can build another little column, which is, This is basically filter tasks A through something else. Hold on a second. I'll say it's tasks A equals C2. I just make another one of these formulas. And what I want is that, and you can grab a bunch more columns. And I basically want the fourth column. I think that's the price. Tasks, there's a task. Through E, and I want column E. Why don't I just put the price right after? So then I can get this through C jobs. Let's grab through C and let's grab a third column. And this is a dollar amount. Okay. Fine. So the kid picks the task. The kid writes their name. They pick the task ID. And then they can't edit these columns. So I'm just going to change the color of these a little bit. Like, these are not editable. It's just informational. Then they say if it's done or not, verified. Every verified task for that kid, add to their money. So their balance is the sum of any parent's extra. So this is like almost extra. And so jobs, right. So two minutes to finish this. I think I'm almost done. Yeah. So basically. Anything in jobs, SUMIF jobs, the range that we're looking for is column B. We're looking for that kid's name. And it'd be, the SUM range is, this is gonna be broken. It's going to be the SUM range is column A. is column B. First criteria range is jobs B through B. The first criterion is A2. The second criterion is jobs, whatever that last column is, G. John's G through G. The criterion is, says yes. Cool. So now, I do task seven, which is washing the dishes. I get a buck for that. Kid did it. Boom. He's also got two bucks now and he's 30% of the way. All right. All right.

Thank you #

Lev Novikov: Thanks. I'll publish all the notes and all the things. Thanks for being a great sport. I'll share this sheet with you, and you could try it with your family and see if it meets your needs.

Oren Litwin: Thank you, and we certainly will.

Lev Novikov: Very good. This has been Design Lab. Have a good one.

Oren Litwin: All right, you too.

Lev Novikov: Take care. Bye.