Meeting Title: Urban Stems Inventory Model Sync Date: 2025-07-10 Meeting participants: Demilade Agboola, Emily Giant
WEBVTT
1 00:03:35.320 ⇒ 00:03:41.649 Emily Giant: Hi, sorry. My computer is like a spinning wheel all morning.
2 00:03:45.790 ⇒ 00:03:47.219 Demilade Agboola: Oh, what happened?
3 00:03:48.060 ⇒ 00:03:53.429 Emily Giant: No, no, I think it got really low on battery, and when I plugged it in it was like
4 00:03:54.200 ⇒ 00:04:01.220 Emily Giant: readapting to being like grounded Internet versus Wi-fi, and just could not figure itself out. So it was like
5 00:04:01.340 ⇒ 00:04:06.630 Emily Giant: loading and loading, for, like the last 10 min, I just had to like restart it, and
6 00:04:07.570 ⇒ 00:04:08.390 Emily Giant: yay
7 00:04:10.500 ⇒ 00:04:12.309 Emily Giant: Did we invite Felipe today?
8 00:04:12.600 ⇒ 00:04:15.499 Demilade Agboola: I did. Well, I did it like 20 min ago.
9 00:04:15.770 ⇒ 00:04:16.450 Emily Giant: Okay.
10 00:04:17.760 ⇒ 00:04:19.180 Emily Giant: So he should have a second.
11 00:04:19.790 ⇒ 00:04:20.450 Demilade Agboola: Yeah.
12 00:04:37.860 ⇒ 00:04:43.210 Emily Giant: So I had a meeting yesterday with, like the other members of Philippe’s team that do like
13 00:04:43.380 ⇒ 00:04:52.100 Emily Giant: inventory levels at Fcs to see like how their experience had been. My computer is doing the thing again. Can you still see me.
14 00:04:52.630 ⇒ 00:04:54.510 Demilade Agboola: No, but I can hear you.
15 00:04:54.760 ⇒ 00:04:55.430 Emily Giant: Okay.
16 00:04:57.050 ⇒ 00:05:00.339 Emily Giant: Okay? Oh, my gosh, sorry one. Sec.
17 00:05:01.930 ⇒ 00:05:03.239 Emily Giant: See if this helps.
18 00:05:09.020 ⇒ 00:05:09.820 Emily Giant: Okay,
19 00:05:11.490 ⇒ 00:05:21.859 Emily Giant: And I realized that the reconciliations, not the sales, but the reconciliations which are like more telling of actual inventory levels at the Fc
20 00:05:22.684 ⇒ 00:05:26.775 Emily Giant: they were filtering out non-lotted products. And
21 00:05:28.060 ⇒ 00:05:38.249 Emily Giant: So I did draft, adding non lauded products to that reconciliations model and
22 00:05:38.540 ⇒ 00:05:47.209 Emily Giant: thought we could go over that if Felipe doesn’t join to do Qa on the ag adjustments,
23 00:05:48.240 ⇒ 00:05:52.460 Emily Giant: thought we could go over that as like a piece of this meeting, but we can do that last
24 00:05:52.570 ⇒ 00:05:54.099 Emily Giant: if you have other stuff.
25 00:05:55.563 ⇒ 00:06:02.289 Demilade Agboola: The only thing I really wanted to mention was that we could integrate. Let me share my screen.
26 00:06:06.170 ⇒ 00:06:10.440 Demilade Agboola: So the beauty of can you see my screen.
27 00:06:10.690 ⇒ 00:06:11.440 Emily Giant: Yes.
28 00:06:11.680 ⇒ 00:06:14.520 Demilade Agboola: Alright. So the beauty of us integrating
29 00:06:19.180 ⇒ 00:06:24.269 Demilade Agboola: the numbers into the ad into the int model.
30 00:06:25.240 ⇒ 00:06:30.559 Demilade Agboola: Is that it already feeds it. So we can actually just easily integrate it
31 00:06:31.030 ⇒ 00:06:37.500 Demilade Agboola: in here, like the same way we have the total subscription quantities.
32 00:06:38.430 ⇒ 00:06:40.439 Demilade Agboola: We can integrate it right now.
33 00:06:40.710 ⇒ 00:06:43.200 Demilade Agboola: And so for this smart model.
34 00:06:43.300 ⇒ 00:06:48.969 Demilade Agboola: we can always have the committed and uncommitted quantities as well on hand
35 00:06:49.630 ⇒ 00:06:52.300 Demilade Agboola: with all this data that we already have.
36 00:06:52.970 ⇒ 00:06:59.903 Emily Giant: Okay, yeah, I’m sorry someone’s doing to find my iphone. It’s like, right behind me, can you hear that.
37 00:07:00.250 ⇒ 00:07:03.159 Demilade Agboola: No, I can’t know. That’s pretty good.
38 00:07:03.450 ⇒ 00:07:05.670 Emily Giant: It’s actually unreal. It was like.
39 00:07:06.371 ⇒ 00:07:26.849 Emily Giant: really loud, right by the screen. So, okay, it has stopped. Okay, so say again, now that we have them in the Int. Model. We don’t have to join it from the separate or what. No, it’s there.
40 00:07:26.850 ⇒ 00:07:29.030 Demilade Agboola: Sorry there’s already a join that exists.
41 00:07:29.030 ⇒ 00:07:29.600 Emily Giant: T.
42 00:07:29.600 ⇒ 00:07:33.799 Demilade Agboola: In here. So we just need to expose it like, so we don’t have. Yeah.
43 00:07:33.800 ⇒ 00:07:37.520 Emily Giant: Yeah, got you like, we don’t have to do anything but add the fields.
44 00:07:37.570 ⇒ 00:07:44.420 Demilade Agboola: Exactly so. Once we do that, the table, the this model, will have the data.
45 00:07:45.710 ⇒ 00:07:51.500 Demilade Agboola: Model for applications for sorry. I just meant types, and that will be present.
46 00:07:52.480 ⇒ 00:07:56.403 Emily Giant: Sweet. Yeah, okay, love that.
47 00:07:58.060 ⇒ 00:08:05.100 Emily Giant: So really, all that needs to be done is adding the fields and tying in canceled orders.
48 00:08:06.201 ⇒ 00:08:16.870 Emily Giant: That’s also taken into account. Okay, cool. So for the upstream. While you’re in here.
49 00:08:17.360 ⇒ 00:08:21.084 Emily Giant: Actually, I should probably share screen. But the
50 00:08:22.730 ⇒ 00:08:30.309 Emily Giant: the model I was looking at was the intermediate reconciliations. I think it’s called you had cleaned it up.
51 00:08:30.901 ⇒ 00:08:35.429 Emily Giant: So it’s in a good state, but it’s still like excluding
52 00:08:36.203 ⇒ 00:08:40.779 Emily Giant: hard goods without lots, so let me pull up.
53 00:08:42.510 ⇒ 00:08:43.440 Demilade Agboola: Yeah, yeah.
54 00:08:43.990 ⇒ 00:08:50.169 Emily Giant: Yeah, that one. So just so you have reference pulled up on your screen. I started a new
55 00:08:51.360 ⇒ 00:08:53.610 Emily Giant: Branch.
56 00:08:55.520 ⇒ 00:09:00.980 Emily Giant: let me know if you can see my, I can still see your screen, I’m gonna steal it from you.
57 00:09:02.200 ⇒ 00:09:04.960 Emily Giant: Desktop one.
58 00:09:16.590 ⇒ 00:09:17.760 Emily Giant: So
59 00:09:18.990 ⇒ 00:09:31.390 Emily Giant: right now, what they had brought up was that they were seeing some odd skews. That had like the word lotted. And I was like, Okay, well, we haven’t done a lot of looking into like
60 00:09:32.210 ⇒ 00:09:41.714 Emily Giant: active versus inactive products. And then one of the other obstacles with hard goods. Is that because they don’t have spoil dates, it’s hard to
61 00:09:43.290 ⇒ 00:09:47.000 Emily Giant: to have a like
62 00:09:47.770 ⇒ 00:10:05.000 Emily Giant: point in time. Snapshot of inventory. It wants to pull, like all of history for these snapshots. So when they were pulling like how many glass spaces do we have? And they added an adjustment day. It would go all the way back to like 2019, because there’s no lots, and
63 00:10:05.280 ⇒ 00:10:07.240 Emily Giant: it was giving them, like
64 00:10:07.590 ⇒ 00:10:17.779 Emily Giant: all of history. So it’s more of a training thing in some of those circumstances, regardless, they need a way to look at like
65 00:10:18.050 ⇒ 00:10:29.010 Emily Giant: today’s date for heartgoods and hard goods don’t have a date associated with them. Does that issue makes sense.
66 00:10:30.010 ⇒ 00:10:36.989 Demilade Agboola: Yes, but then, how do we, if there is no data associated with them, how do we
67 00:10:37.820 ⇒ 00:10:41.150 Demilade Agboola: assign a date so that we filter by dates.
68 00:10:41.390 ⇒ 00:10:44.865 Emily Giant: Exactly. I I’m trying to either.
69 00:10:48.050 ⇒ 00:10:56.080 Emily Giant: pull in. Okay. So here are a couple of things that like as a possibility, I was thinking. So
70 00:10:56.250 ⇒ 00:10:57.930 Emily Giant: let me put these in order real quick.
71 00:10:59.060 ⇒ 00:11:13.810 Emily Giant: First.st I this is related, but unrelated in the staging model I added a couple of the true false things from the item table. One of them is is active skew. So this, like will
72 00:11:14.100 ⇒ 00:11:22.819 Emily Giant: at least filter out the ones that are no longer for sale on the website. I checked the against like the data
73 00:11:23.270 ⇒ 00:11:34.780 Emily Giant: and shopify. And this is the one that is accurate. All of the other ones like is sellable is online. Those are all like red herrings. They don’t work, but this one does and then
74 00:11:35.110 ⇒ 00:11:43.579 Emily Giant: the islatted product, of course, was there before. But this is this is the main one that I added. And then there’s also this item status
75 00:11:43.740 ⇒ 00:11:58.050 Emily Giant: that was updated. So that’s another way that they could like make sure to filter out those like 2,014 skews that are still showing like 3,000 units in the Fc. They’re they’re not
76 00:11:58.994 ⇒ 00:12:05.779 Emily Giant: relevant, so they can filter them out that way. But in the inventory reconciliations it’s not
77 00:12:06.030 ⇒ 00:12:10.980 Emily Giant: done. But I wanted to run by like what I was thinking.
78 00:12:11.120 ⇒ 00:12:14.760 Emily Giant: and then we can chat through like, how can they pull
79 00:12:15.360 ⇒ 00:12:22.010 Emily Giant: by date, or by snapshot, or whatever? But what is
80 00:12:23.100 ⇒ 00:12:27.360 Emily Giant: seeming to come up as an issue is like the lack of
81 00:12:27.950 ⇒ 00:12:39.399 Emily Giant: inventory. There’s no inventory number, and we’re categorizing everything by inventory number. So they need some kind of proxy for an inventory number. If there’s an adjustment made
82 00:12:40.715 ⇒ 00:12:45.409 Emily Giant: on a non-lotted product, because otherwise there’s like no way to roll it up.
83 00:12:46.119 ⇒ 00:12:54.240 Emily Giant: It’s just like a floating vase out there without like an identifying feature. So
84 00:12:54.650 ⇒ 00:13:02.110 Emily Giant: it can be location. Item, id, it can be like. So the join that we usually use
85 00:13:02.240 ⇒ 00:13:13.839 Emily Giant: is the transaction. Not usually. This is the way you join to inventory assignment, but the transaction Id and transaction line Id combined are unique. And so you can take that for
86 00:13:13.970 ⇒ 00:13:20.739 Emily Giant: a, and this will only work for adjustments. This won’t work for like sub orders, but you don’t
87 00:13:21.060 ⇒ 00:13:25.339 Emily Giant: need that for a suborder, because the suborder. Id is unique
88 00:13:25.530 ⇒ 00:13:27.929 Emily Giant: and can be rolled up like.
89 00:13:29.680 ⇒ 00:13:37.879 Emily Giant: But it’s I guess it’s got to be by location and item, id for these non-lotted things, because those are like, what would be the parent?
90 00:13:40.210 ⇒ 00:13:40.610 Emily Giant: T.
91 00:13:40.850 ⇒ 00:13:44.060 Demilade Agboola: I think. Can we see like what? What?
92 00:13:44.720 ⇒ 00:13:48.809 Demilade Agboola: So we know. Inventor id not invent number Id will be null.
93 00:13:51.190 ⇒ 00:13:58.250 Emily Giant: oh, so just to like brief, you on what this actually looks like, i’m, just gonna send you the code in a Google Doc?
94 00:13:58.888 ⇒ 00:14:00.500 Emily Giant: So you can look at it.
95 00:14:01.480 ⇒ 00:14:09.689 Emily Giant: But basically it’s doing what I did with the other, with sales, which is like taking the lauded. And then the non lauded and then unioning them.
96 00:14:11.780 ⇒ 00:14:17.405 Emily Giant: But I didn’t. It’s not done. I need your help to do this correctly.
97 00:14:20.010 ⇒ 00:14:20.680 Emily Giant: Here.
98 00:14:24.860 ⇒ 00:14:28.279 Demilade Agboola: Give me. Give me like 30 seconds. I want to get something from the fridge.
99 00:14:28.910 ⇒ 00:14:30.050 Emily Giant: Go go.
100 00:15:31.870 ⇒ 00:15:36.250 Emily Giant: I really hope urban stem switches to zoom. It’s so much better than Google meets
101 00:15:36.430 ⇒ 00:15:40.042 Emily Giant: every time we meet on this. I’m like this is heaven. I love this.
102 00:15:41.200 ⇒ 00:15:43.050 Demilade Agboola: Yeah, zoom is so much, much better.
103 00:15:43.050 ⇒ 00:15:44.680 Emily Giant: It’s so much better.
104 00:15:45.190 ⇒ 00:15:46.140 Demilade Agboola: And
105 00:15:47.210 ⇒ 00:15:57.330 Demilade Agboola: there are a lot of like things that like Zoom allows you to do in terms of like I don’t know. Maybe meets could have it. But like with zoom over here we do. We do a lot of cool things with zoom.
106 00:15:58.390 ⇒ 00:16:03.620 Emily Giant: Yeah, like the whiteboard thing that we were doing for the retro. You can’t do that with Zoom.
107 00:16:05.360 ⇒ 00:16:15.440 Emily Giant: or I mean, excuse me with Google meets. And mostly, it’s just like the margins of the video like I cannot stand how Google meets has like
108 00:16:15.800 ⇒ 00:16:28.810 Emily Giant: in giant margins. I have to like zoom in, and then someone’s face is like that when they stop screen sharing. And and I know that’s happening with me to them, and that’s horrifying. My face should never be that magnified.
109 00:16:31.020 ⇒ 00:16:37.230 Demilade Agboola: Another thing I find like crazy about people like we’ve done it in a in a team meeting
110 00:16:37.340 ⇒ 00:16:40.379 Demilade Agboola: on on zoom.
111 00:16:40.580 ⇒ 00:16:43.500 Demilade Agboola: But we put like charade
112 00:16:44.060 ⇒ 00:16:49.409 Demilade Agboola: where you kind of had to like. Draw that you get word. And you kind of draw was one of our team meetings, and it was like a nice.
113 00:16:49.410 ⇒ 00:16:51.473 Emily Giant: Oh, that’s so fun!
114 00:16:52.780 ⇒ 00:16:53.650 Emily Giant: January.
115 00:16:54.230 ⇒ 00:16:59.739 Demilade Agboola: Exactly so. That was the whiteboard. How we did the whiteboard for the retro! But it was like drawing.
116 00:17:00.160 ⇒ 00:17:03.959 Demilade Agboola: and so on goes basketball, whatever like it’s something.
117 00:17:03.960 ⇒ 00:17:10.879 Demilade Agboola: Oh, it’s fun, but you can’t. So it’s just like those little things quality of life.
118 00:17:11.220 ⇒ 00:17:13.770 Emily Giant: Yeah, totally totally agree.
119 00:17:14.310 ⇒ 00:17:23.649 Emily Giant: Okay, so the adjustment. Id, I’m not sold on that. That was like a 7 o’clock at night adding it walking away from my computer. But I am sure that
120 00:17:23.810 ⇒ 00:17:33.462 Emily Giant: the prior model excluded non lauded goods. So what I have here is I just pulled from
121 00:17:34.750 ⇒ 00:17:37.970 Emily Giant: I pulled the base fields from
122 00:17:38.090 ⇒ 00:17:44.119 Emily Giant: transaction line and adjustments that we’ll use in both models, and then for the non-lotted ones
123 00:17:44.460 ⇒ 00:17:47.990 Emily Giant: and and filtered it obviously to just the inventory adjustments.
124 00:17:48.150 ⇒ 00:17:52.630 Emily Giant: and then for the non-lotted ones used the adjustment. Id
125 00:17:53.180 ⇒ 00:17:59.330 Emily Giant: item id, but this the adjustment id I put there because it could technically
126 00:17:59.580 ⇒ 00:18:01.619 Emily Giant: tie it back to location.
127 00:18:03.170 ⇒ 00:18:11.549 Emily Giant: what I struggle with sometimes is like the level of simplicity that I’m meant to be keeping in a model. This would
128 00:18:12.300 ⇒ 00:18:14.990 Emily Giant: technically be used in.
129 00:18:15.830 ⇒ 00:18:27.029 Emily Giant: And I know our future version is that we combine the inventory lot table and the inventory adjustments table into just one table that shows, like all of that potential granularity.
130 00:18:27.230 ⇒ 00:18:42.289 Emily Giant: But I tried to keep this as simple as possible and not add too many fields in this downstream model, because I know that we can tie it back in the mart to the
131 00:18:43.000 ⇒ 00:18:59.310 Emily Giant: to the locations model and Yada Yada Yada, but I don’t know what best practice really is like. I know that we definitely did it wrong in the past at urban stems, and, like every field, is in every upstream model until there’s like 500 in
132 00:18:59.450 ⇒ 00:19:00.990 Emily Giant: Tableau Adams. Xf.
133 00:19:01.260 ⇒ 00:19:08.000 Emily Giant: But would it be better in these models to keep it simple and tight, and then join
134 00:19:09.120 ⇒ 00:19:20.150 Emily Giant: in the mart’s model to the like location id product, type? Or is it better to carry all of those through in each model, so that there’s not so many joins in the mart.
135 00:19:24.740 ⇒ 00:19:26.239 Demilade Agboola: So for the most part
136 00:19:30.140 ⇒ 00:19:33.088 Demilade Agboola: joints aren’t particularly bad in that sense.
137 00:19:34.310 ⇒ 00:19:37.400 Demilade Agboola: Especially if you have like distribution keys set.
138 00:19:37.720 ⇒ 00:19:43.889 Emily Giant: We talked about distribution keys and like source keys. So if you have distribution keys set appropriately.
139 00:19:44.300 ⇒ 00:19:45.870 Demilade Agboola: You’ll be fine with them.
140 00:19:47.970 ⇒ 00:19:58.080 Demilade Agboola: I think the the they’re not like hard coded numbers and rules about these things. I think a couple of things to just like. Bear in mind, one is.
141 00:19:58.400 ⇒ 00:20:04.669 Demilade Agboola: every model should have very easy to understand bits of code.
142 00:20:04.880 ⇒ 00:20:19.730 Demilade Agboola: So ideally, you want to be aiming for about a hundred lines tops for every model. I mean. Sometimes you can go a little bit over, but you don’t want to go all the way to like 600 700 800 like at that point, like, it’s really understand what’s going on
143 00:20:20.150 ⇒ 00:20:27.460 Demilade Agboola: so ideally, you’re kind of aiming around that 100 line and under range. So that’s 1, 2 is
144 00:20:27.890 ⇒ 00:20:29.590 Demilade Agboola: as much as possible.
145 00:20:29.780 ⇒ 00:20:34.160 Demilade Agboola: Every model should have a very distinct
146 00:20:34.620 ⇒ 00:20:53.379 Demilade Agboola: process of thing that it’s doing, so that anybody that hops in understands what is going on there, what it is feeding and like the downstream dependencies, basically. So again, the the way we’ve done it, so far as you can see, like buffers in place.
147 00:20:53.838 ⇒ 00:21:14.139 Demilade Agboola: Adjustment types are in a place all of that. So if you need to hop in and fix something when adjustment types. You know the lineage to hop into and kind of fix everything. If you hop in and fix something about Presale committed having issues, you know where to go. You’re not just going, like you know, exactly where to go and how to handle it. So
148 00:21:14.600 ⇒ 00:21:25.013 Demilade Agboola: as long as you kind of stick to those 2 principles that helps. And then finally, as to like the width of the model in terms of how many columns do you wanna have
149 00:21:25.740 ⇒ 00:21:29.660 Demilade Agboola: so ideally, you also don’t want to go too wide.
150 00:21:30.365 ⇒ 00:21:50.040 Demilade Agboola: Why, people one of the problems on why tableau items except got so wide is tableau items except solves too many problems all at once. So because it needs to be this really versatile table that solves everybody’s problems across so many places. It needs to have so much information.
151 00:21:50.040 ⇒ 00:21:50.770 Emily Giant: Hmm.
152 00:21:50.770 ⇒ 00:21:53.339 Demilade Agboola: Kind of best practice to have
153 00:21:53.740 ⇒ 00:22:03.250 Demilade Agboola: dedicated dashboards for dedicated solutions, or de. I’m sorry dedicated models for dedicated solutions or dedicated dashboards that we? Oh.
154 00:22:03.560 ⇒ 00:22:13.539 Demilade Agboola: that this dashboard solves this problem, this dashboard solves that problem. Another advantage of trying to like localize, that
155 00:22:13.680 ⇒ 00:22:19.350 Demilade Agboola: is, if tables, items. Xf has an issue. It fucks up so many dashboards.
156 00:22:19.661 ⇒ 00:22:23.090 Emily Giant: Yeah, the whole company just shuts down for a day. Yeah.
157 00:22:23.090 ⇒ 00:22:23.620 Demilade Agboola: Exactly.
158 00:22:23.870 ⇒ 00:22:30.950 Demilade Agboola: But if you have like, more localized dashboards in that sense, if one dashboard goes bad
159 00:22:31.230 ⇒ 00:22:41.919 Demilade Agboola: like one model goes bad, or one like flow goes bad. I mean, obviously, they’re setting models. If they break, it affects everything like you can’t avoid that. But if if it’s like a final beat. If it’s something that just.
160 00:22:42.640 ⇒ 00:23:00.359 Demilade Agboola: we’re just, we just need it for like 2 dashboards or something. And that’s the model that we’re using for that. If that goes wrong. That’s fine. It’s localized troubleshoot that handle that and then have that so ideally. You don’t want to have one model that solves every single problem.
161 00:23:00.360 ⇒ 00:23:01.200 Emily Giant: Yeah.
162 00:23:01.946 ⇒ 00:23:15.320 Demilade Agboola: By time it starts to get too wide. So it’s just like bearing in mind those principles. There’s like, I said. There’s no hard and fast rule like this one as an individual model. Everything about reconciliation is clearly put into
163 00:23:15.950 ⇒ 00:23:28.570 Demilade Agboola: that place which is fine. So that’s kind of what I mean by like, there isn’t a hard and fast rule, but obviously you don’t want to overdo, you know, have too many, or get it too wide, and it’s solving too many problems.
164 00:23:29.270 ⇒ 00:23:41.179 Emily Giant: That makes sense. Okay, since this was like a draft. And I I knew I wasn’t gonna like commit anything without going over it with you. I was like, I’m gonna keep it as simple as possible while it still answers the question.
165 00:23:41.330 ⇒ 00:23:47.110 Emily Giant: Keeping in mind that I think that location id probably needs to be added in but
166 00:23:47.990 ⇒ 00:24:05.610 Emily Giant: we’ll we we will discuss, because I’m not sure about adjustment. Id yet. That was just a like like, I said, like a 10 min before I was signing off to go do something else was like, oh, let me do this before it leaves my mind, and then we’ll go over it in the morning. So here we’ve got
167 00:24:05.910 ⇒ 00:24:08.880 Emily Giant: the non lauded, which
168 00:24:09.780 ⇒ 00:24:16.610 Emily Giant: so yeah, like, here, I’m just pulling what I know I’ll use in both, and then filtering it for only inventory adjustments
169 00:24:16.770 ⇒ 00:24:25.420 Emily Giant: here. It’s only using the reconciliation base, since everything we need from there is just in that one
170 00:24:25.840 ⇒ 00:24:38.470 Emily Giant: sub query, and then the lotted ones tie in inventory assignment like that’s the main difference is that, like non-lotted ones will not have presence in inventory assignment and lotted will
171 00:24:40.470 ⇒ 00:24:42.779 Emily Giant: and then unioning them.
172 00:24:43.170 ⇒ 00:24:47.480 Emily Giant: But I don’t think it works right now.
173 00:24:48.000 ⇒ 00:24:48.550 Emily Giant: I think.
174 00:24:48.550 ⇒ 00:24:52.699 Demilade Agboola: The problem. The the problem I’m seeing right now is
175 00:24:52.960 ⇒ 00:24:56.829 Demilade Agboola: because inventory number Id is associated to null.
176 00:24:57.110 ⇒ 00:25:09.060 Demilade Agboola: But when we want to join further downstream, which is where we’re joining on in aggregate model, are we joining? We’re not joining aggregate model. We’re joining it. If propagates into aggregate models
177 00:25:09.517 ⇒ 00:25:13.010 Demilade Agboola: in. Give me one second, let me quickly look as a.
178 00:25:13.310 ⇒ 00:25:18.230 Emily Giant: Yeah. You’re you’re hitting on exactly what I couldn’t didn’t figure out yesterday.
179 00:25:18.230 ⇒ 00:25:22.259 Demilade Agboola: Oh, okay, so of course, we use it in.
180 00:25:22.580 ⇒ 00:25:27.700 Demilade Agboola: Yeah, because each of the reconciliation is associated to the inventory number. Id.
181 00:25:29.050 ⇒ 00:25:37.000 Demilade Agboola: So things like spoiled shrinkage system. Mismatch wouldn’t work because we’re grouping by the inventory number. Id.
182 00:25:37.684 ⇒ 00:25:42.080 Demilade Agboola: That will all be null. So it will be the same thing for everything.
183 00:25:42.554 ⇒ 00:25:47.320 Demilade Agboola: And then, when we try and join back, because we’re not taking those numbers and joining back to
184 00:25:47.880 ⇒ 00:25:51.329 Demilade Agboola: it all marked and eventually number that will work.
185 00:25:55.820 ⇒ 00:26:03.839 Demilade Agboola: My question is this, obviously, we’re not. We can’t roll this. These non lotter back up to lots.
186 00:26:04.310 ⇒ 00:26:05.050 Emily Giant: Correct.
187 00:26:05.460 ⇒ 00:26:09.750 Demilade Agboola: So what? What is the I? What is the goal? What are we trying to rug it up back to.
188 00:26:10.500 ⇒ 00:26:18.320 Emily Giant: We are trying to look at Fc. Level inventory of non-lotted goods at a point in time.
189 00:26:18.520 ⇒ 00:26:24.999 Emily Giant: and the most pressing point in time is today like they want to say
190 00:26:25.250 ⇒ 00:26:34.729 Emily Giant: how many glass centerpiece spaces are in Elite Miami today. And do we need to order more? So this is like.
191 00:26:37.130 ⇒ 00:26:43.350 Emily Giant: the sourcing team that’s looking at this to time out their purchases and deliveries.
192 00:26:44.238 ⇒ 00:26:46.930 Emily Giant: And it’s less sales oriented.
193 00:26:47.050 ⇒ 00:26:51.019 Emily Giant: more like long form. There is.
194 00:26:51.150 ⇒ 00:26:55.379 Emily Giant: in my opinion, no reason that these can’t be in a separate table
195 00:26:57.050 ⇒ 00:27:04.850 Emily Giant: like non-lotted can just be not included in these in the inventory lot table.
196 00:27:05.100 ⇒ 00:27:10.460 Emily Giant: But then that I’m saying this, but I’m not married to it.
197 00:27:10.760 ⇒ 00:27:21.920 Emily Giant: I think that that poses a a need for inventory adjustments being its own table
198 00:27:22.070 ⇒ 00:27:32.243 Emily Giant: still cause we were talking about rolling up the inventory lot table and the inventory adjustments table into one that can be like slinky
199 00:27:33.080 ⇒ 00:27:35.920 Emily Giant: But the sales team needs to be able to see
200 00:27:36.120 ⇒ 00:27:41.399 Emily Giant: the sales of vases and florals in one table.
201 00:27:42.320 ⇒ 00:27:51.810 Emily Giant: But it is for a very different purpose than inventory levels at the fc, that’s more for like
202 00:27:52.450 ⇒ 00:27:56.770 Emily Giant: sales and operations planning than it is, for, like
203 00:27:57.130 ⇒ 00:27:59.840 Emily Giant: how much money is tied up in this facility.
204 00:28:00.620 ⇒ 00:28:06.409 Demilade Agboola: Alright. So let me let me be clear about something. It appears that there are some
205 00:28:07.490 ⇒ 00:28:11.739 Demilade Agboola: non floral items that do not appear in lots right.
206 00:28:12.520 ⇒ 00:28:13.060 Emily Giant: Yeah.
207 00:28:13.060 ⇒ 00:28:16.510 Demilade Agboola: Some that also has shared with lots, usually as adjustments.
208 00:28:17.407 ⇒ 00:28:19.530 Emily Giant: Just meant suborders.
209 00:28:21.730 ⇒ 00:28:22.730 Demilade Agboola: Right.
210 00:28:24.680 ⇒ 00:28:32.199 Demilade Agboola: So 1st question, 1st things first, st when do when do they appear lotted, and when don’t they appear lotted? Is there a pattern to that.
211 00:28:32.740 ⇒ 00:28:33.380 Emily Giant: Yes.
212 00:28:33.750 ⇒ 00:28:39.679 Emily Giant: if they have an expiration date, they are allotted. If they don’t have an expiration date, they are not lauded.
213 00:28:42.030 ⇒ 00:28:46.040 Demilade Agboola: Alright. So that that’s the 1st step.
214 00:28:46.900 ⇒ 00:28:52.080 Demilade Agboola: Now, obviously, the sales team wants to see all sales
215 00:28:52.580 ⇒ 00:29:00.610 Demilade Agboola: of lotted and non and unlotted items altogether like. Oh, we sold 20 of this.
216 00:29:01.040 ⇒ 00:29:01.680 Emily Giant: Hmm.
217 00:29:03.090 ⇒ 00:29:06.420 Demilade Agboola: They don’t care about that differentiation, do they?
218 00:29:07.410 ⇒ 00:29:08.650 Emily Giant: They?
219 00:29:09.300 ⇒ 00:29:13.420 Emily Giant: They do sometimes.
220 00:29:19.020 ⇒ 00:29:22.455 Emily Giant: they do. In the
221 00:29:23.650 ⇒ 00:29:31.970 Emily Giant: There are a couple of cases. One is that if a skew is only sold with a vase pot.
222 00:29:32.200 ⇒ 00:29:35.750 Emily Giant: Non-lotted. Item, there has to be
223 00:29:35.970 ⇒ 00:30:04.709 Emily Giant: enough of the hard good to fulfill the amount of on hand lotted like. If the firecracker bouquet isn’t a bundle with the like ceramic vase, and you cannot send one without the other because they’re paired. You have to have enough of the ceramic vase to put up for sale the amount of the bouquet to send out the door, so like it does become important to look at those in tandem.
224 00:30:05.870 ⇒ 00:30:08.299 Demilade Agboola: Okay. But in in that case.
225 00:30:09.030 ⇒ 00:30:14.940 Demilade Agboola: if it’s a bouquet where just the firecracker needs to go with a ceramic vase
226 00:30:18.500 ⇒ 00:30:22.590 Demilade Agboola: once a purchase is made of. That is that item
227 00:30:23.370 ⇒ 00:30:26.920 Demilade Agboola: assigned to the lot of the firecracker.
228 00:30:32.360 ⇒ 00:30:33.649 Emily Giant: It’s a good question.
229 00:30:34.380 ⇒ 00:30:39.980 Emily Giant: I don’t know, because we’ve seen some weird stuff on the lots where I feel like I
230 00:30:40.650 ⇒ 00:30:45.479 Emily Giant: it used to be, and people didn’t like that because
231 00:30:46.170 ⇒ 00:30:52.869 Emily Giant: it got confusing that more units were leaving the lot than what was assigned. And I’m like, Oh, well, that’s the vase.
232 00:30:53.180 ⇒ 00:30:57.089 Emily Giant: and it got very hard to filter out understandably.
233 00:30:58.150 ⇒ 00:31:00.129 Emily Giant: But I don’t know. Maybe
234 00:31:00.300 ⇒ 00:31:07.130 Emily Giant: I don’t. I don’t think so, because I do not believe that hard goods ever appear in inventory assignment
235 00:31:07.640 ⇒ 00:31:10.720 Emily Giant: table, and that’s a join. It’s not a left join
236 00:31:11.190 ⇒ 00:31:16.870 Emily Giant: because you. That’s how we filter out orders that were
237 00:31:17.890 ⇒ 00:31:20.650 Emily Giant: force upgraded or removed from the lot like
238 00:31:21.600 ⇒ 00:31:45.969 Emily Giant: my understanding of from having worked with this data is that, like pre-sales, they’re not in inventory assignment yet, that’s when you have to pull the suborder information and the lot information from transaction and transaction line. And then once they hit the facility and are like firmly committed to the lot. That’s when you can pull the information from inventory assignment. Because that’s when they’re like.
239 00:31:46.090 ⇒ 00:31:59.134 Emily Giant: have that process of committing to the lot in netsuite, and sometimes the lot changes from transaction line to inventory assignment based on like our accounting method.
240 00:32:00.750 ⇒ 00:32:05.750 Emily Giant: hard goods don’t ever have
241 00:32:06.070 ⇒ 00:32:13.999 Emily Giant: an inventory number. Id and transaction line transactions, and I don’t think they ever have one an inventory assignment. It’s only
242 00:32:14.500 ⇒ 00:32:21.890 Emily Giant: it’s only the ones with an expiration date that do so. Hard goods are like
243 00:32:23.920 ⇒ 00:32:29.580 Emily Giant: just kind of floating out there, but they do have a suborder id. So what you
244 00:32:29.950 ⇒ 00:32:38.130 Emily Giant: and they’re never going to be sent without a floral. So what you could do for the sales team
245 00:32:38.540 ⇒ 00:32:49.130 Emily Giant: is associated with whatever lot is associated with the expiration date product.
246 00:32:49.530 ⇒ 00:32:51.760 Emily Giant: because the same sub order id.
247 00:32:52.280 ⇒ 00:32:56.450 Demilade Agboola: Yeah, alright. So 2. So 2 things in this case.
248 00:33:06.170 ⇒ 00:33:10.669 Demilade Agboola: also, just out of curiosity is the reason why the bases don’t have a lot
249 00:33:11.110 ⇒ 00:33:17.480 Demilade Agboola: be. Is that because they can be assigned to any lot basically like.
250 00:33:17.480 ⇒ 00:33:30.826 Emily Giant: Fucking. Terrible idea is what it is. They used to have lots, and then they removed them. When we changed the system, and everything has been completely fucked since. So anyway, that aside, it’s because they don’t expire, and because
251 00:33:31.400 ⇒ 00:33:33.179 Emily Giant: it was creating a lot of
252 00:33:35.840 ⇒ 00:33:43.920 Demilade Agboola: Well, the issue here is not really the expiration, like the issue with tying everything together is not necessarily exploration. It’s the they don’t have any lots.
253 00:33:44.260 ⇒ 00:33:44.920 Emily Giant: Right.
254 00:33:44.920 ⇒ 00:33:48.149 Demilade Agboola: Problems, lots expire. So if you associate them with a lot.
255 00:33:48.300 ⇒ 00:33:54.450 Emily Giant: The expiration of a lot to trans contact code transfer. So that okay, that makes sense. Now.
256 00:33:55.260 ⇒ 00:34:01.730 Emily Giant: So I guess essentially the lot in the case of hard goods is as good as the item Id.
257 00:34:02.980 ⇒ 00:34:10.910 Emily Giant: because lots are item id specific, and why they exist is that they have different expiration dates.
258 00:34:11.050 ⇒ 00:34:13.609 Emily Giant: but if they didn’t, then it would just be like
259 00:34:13.870 ⇒ 00:34:26.379 Emily Giant: if it was a clothing store. It’s you have 50 of the red shirt you don’t need like a lot for the red shirt. The red shirt’s the red shirt. So that’s kind of like a hard good. It’s the glass vase has its id.
260 00:34:27.060 ⇒ 00:34:31.949 Emily Giant: and there is no reason that it would need to be
261 00:34:32.389 ⇒ 00:34:35.349 Emily Giant: quantified differently, because they’re all the same.
262 00:34:35.989 ⇒ 00:34:43.919 Demilade Agboola: Yeah, so okay, so I think, what we could end up doing is this, we will need to have.
263 00:34:47.489 ⇒ 00:34:53.739 Demilade Agboola: I think what we will do is we end up having our. So we have our floral like March table, which
264 00:34:53.859 ⇒ 00:34:55.129 Demilade Agboola: it’s pretty fine.
265 00:34:56.429 ⇒ 00:34:58.909 Demilade Agboola: We will need to end up having a
266 00:35:02.249 ⇒ 00:35:05.389 Demilade Agboola: a like non hard goods, mark table.
267 00:35:05.819 ⇒ 00:35:11.269 Demilade Agboola: And what’s going to be there is, we will have it.
268 00:35:12.109 ⇒ 00:35:14.129 Demilade Agboola: We’ll have each item. Id.
269 00:35:16.760 ⇒ 00:35:25.849 Demilade Agboola: Where we can get an inventory number. Id. We will put it there, but for every item. Id. We can also find the Fc. Like, we can find the location
270 00:35:26.110 ⇒ 00:35:35.350 Demilade Agboola: as well as the yeah, we can find location, basically. And so now we can kind of partition
271 00:35:35.830 ⇒ 00:35:41.730 Demilade Agboola: for each id for each item. Id. We can partition it. The partition will be
272 00:35:42.300 ⇒ 00:35:47.199 Demilade Agboola: like the level of granularity will be the item id.
273 00:35:48.260 ⇒ 00:35:50.850 Emily Giant: Id. If it does exist.
274 00:35:51.900 ⇒ 00:35:53.650 Demilade Agboola: The location id.
275 00:35:55.691 ⇒ 00:35:59.729 Demilade Agboola: I know you mentioned one other. Id, but I think those are the 3 ones that will make it distinct.
276 00:35:59.730 ⇒ 00:36:04.390 Emily Giant: I think those are the ones that we need. I think that like that’s what I was trying to parse out was.
277 00:36:05.140 ⇒ 00:36:08.630 Emily Giant: what is the Id? And yeah.
278 00:36:09.030 ⇒ 00:36:11.759 Demilade Agboola: So once we have that combination. So obviously, if
279 00:36:12.890 ⇒ 00:36:26.760 Demilade Agboola: if there’s a lot, we can see the lots that it was assigned. So if there isn’t. That’s fine. We can just see the locations. It was it went to, and then the quantities that were like moved by location. So that gives us the ability to
280 00:36:27.080 ⇒ 00:36:34.550 Demilade Agboola: see just generally what happened cross, but we can also to like locations.
281 00:36:35.560 ⇒ 00:36:38.060 Emily Giant: That makes sense so.
282 00:36:38.060 ⇒ 00:36:45.469 Demilade Agboola: That would be an entirely different team. I don’t. I don’t want us to like put it together, because I think that would number one mess up what we’re doing
283 00:36:45.590 ⇒ 00:36:51.440 Demilade Agboola: and number 2. I don’t think he would entirely be useful, because at the end of the day, when someone is trying to like
284 00:36:51.630 ⇒ 00:36:58.669 Demilade Agboola: just zoom in on information. It would really mess up the other data that we have for floral.
285 00:36:58.670 ⇒ 00:36:59.280 Emily Giant: We’ll do it.
286 00:36:59.280 ⇒ 00:37:13.179 Demilade Agboola: And I feel like, if we have another table prepared for that, we can have our like dashboard, the 1st one being powered by, like our floral data, where they can see all of that, and then the lower lower part of it, powered by the hard, good
287 00:37:13.340 ⇒ 00:37:15.279 Demilade Agboola: version, might become like double talking.
288 00:37:15.280 ⇒ 00:37:18.369 Emily Giant: That makes complete sense to me. So
289 00:37:18.790 ⇒ 00:37:23.969 Emily Giant: in that light, I’m gonna revert this back to
290 00:37:24.100 ⇒ 00:37:30.490 Emily Giant: what it was before, and just build a separate table for the non-lotted ones, because.
291 00:37:31.680 ⇒ 00:37:32.060 Demilade Agboola: And this.
292 00:37:32.320 ⇒ 00:37:36.189 Emily Giant: For this. I think it’s they’re not.
293 00:37:37.280 ⇒ 00:37:44.480 Emily Giant: It’s gonna make things worse to union these 2 things together. They shouldn’t actually be viewed together.
294 00:37:45.840 ⇒ 00:37:53.390 Emily Giant: Yeah, that makes sense to me. And then the suborder level data already takes into account.
295 00:37:53.670 ⇒ 00:37:59.419 Emily Giant: It’s rose by suborder and item, Id, and that’s the uniqueness. So
296 00:37:59.760 ⇒ 00:38:02.519 Emily Giant: that’s already set up. How you described it.
297 00:38:02.760 ⇒ 00:38:09.070 Emily Giant: The reconciliations, I don’t believe are in that table yet.
298 00:38:10.200 ⇒ 00:38:15.710 Emily Giant: but they shouldn’t. Shouldn’t need to be like that’s not what. That table is just.
299 00:38:16.260 ⇒ 00:38:23.620 Demilade Agboola: Out of curiosity. Are they adjustments, I mean, can you have shrinkage? And, like all that stuff on hard goods as well.
300 00:38:24.650 ⇒ 00:38:26.770 Demilade Agboola: Okay, alright, that’s fine. I just wanted to be sure.
301 00:38:27.000 ⇒ 00:38:29.300 Demilade Agboola: Okay, so yeah, we can.
302 00:38:31.300 ⇒ 00:38:31.940 Demilade Agboola: Okay.
303 00:38:31.940 ⇒ 00:38:37.700 Emily Giant: That makes total sense to me. So what I’m gonna do is I’m gonna keep
304 00:38:37.940 ⇒ 00:38:47.340 Emily Giant: the 2 changes in staging and raw, because all it is is listing out what’s in the item table. So it doesn’t actually change anything.
305 00:38:47.550 ⇒ 00:38:50.669 Emily Giant: Oh, and then I’m going to revert.
306 00:38:54.630 ⇒ 00:38:58.590 Demilade Agboola: Okay. So oh, basically, you just listed out every single thing.
307 00:38:58.950 ⇒ 00:38:59.500 Emily Giant: Yeah.
308 00:38:59.730 ⇒ 00:39:00.075 Demilade Agboola: Alright
309 00:39:02.070 ⇒ 00:39:08.510 Demilade Agboola: to be on safe side, Jim, I want to do okay, just let me know when you’re committing, because my own today for refresh. Just so.
310 00:39:09.710 ⇒ 00:39:10.560 Emily Giant: Oh, yeah.
311 00:39:10.740 ⇒ 00:39:17.179 Demilade Agboola: Just to be honest, I’m not saying necessarily like it will break anything, but sometimes better safe than sorry.
312 00:39:17.300 ⇒ 00:39:17.780 Demilade Agboola: Bye.
313 00:39:17.780 ⇒ 00:39:21.440 Emily Giant: Yeah, added well, it it
314 00:39:29.620 ⇒ 00:39:38.000 Emily Giant: and the usable Boolean, for whether or not product is active to staging.
315 00:39:39.300 ⇒ 00:39:41.270 Emily Giant: And then this one’s going back.
316 00:39:46.040 ⇒ 00:39:55.120 Emily Giant: I I won’t do a Pr. Yet. I’ll wait until I’ve added the hard, good, intermediate
317 00:39:55.280 ⇒ 00:40:01.000 Emily Giant: reconciliation model. So now this one should be you refresh.
318 00:40:10.010 ⇒ 00:40:14.209 Emily Giant: Okay? So now it’s just back to like the inventory number Id and the adjustment type.
319 00:40:14.870 ⇒ 00:40:15.370 Demilade Agboola: Okay.
320 00:40:15.830 ⇒ 00:40:16.830 Emily Giant: Fine.
321 00:40:18.280 ⇒ 00:40:22.298 Demilade Agboola: So we’ll probably we don’t, probably, but we’ll need like
322 00:40:23.510 ⇒ 00:40:31.429 Demilade Agboola: So my question is, do you want to do the aggregation in an int model, then pull it into the math model for the hard goods.
323 00:40:31.880 ⇒ 00:40:37.440 Demilade Agboola: So like we’ll have a matte, hard codes, inventory lots and hard codes, inventory table, or something.
324 00:40:38.580 ⇒ 00:40:43.414 Emily Giant: Yeah, I think so like just having them on.
325 00:40:44.690 ⇒ 00:40:53.890 Emily Giant: Sorry. I’m erring, because some of the hard goods have expiration dates and like chocolate bars
326 00:40:54.570 ⇒ 00:41:02.719 Emily Giant: type thing, and I don’t want that to be frustrating for the team to have to go back and forth between those 2.
327 00:41:04.060 ⇒ 00:41:08.390 Emily Giant: But I guess that doesn’t really matter. I can just say like it’s not flowers.
328 00:41:08.690 ⇒ 00:41:12.299 Demilade Agboola: Yeah, so we can have a flow like we can have a flowers
329 00:41:12.540 ⇒ 00:41:17.290 Demilade Agboola: top. And then a hard code like table below.
330 00:41:17.930 ⇒ 00:41:18.940 Emily Giant: Yep.
331 00:41:19.340 ⇒ 00:41:23.760 Demilade Agboola: That way like that way. If people want to like Hone in on
332 00:41:25.990 ⇒ 00:41:41.349 Demilade Agboola: the hard goods of a particular inventory number, they just type it in filter by that inventory number and see it if it doesn’t have an inventory number which a number of them don’t. They just hone in on the the item itself, like the product, skew, or whatever, and like oh.
333 00:41:42.210 ⇒ 00:41:44.090 Emily Giant: Yeah, that makes sense.
334 00:41:44.410 ⇒ 00:41:45.050 Demilade Agboola: Yeah.
335 00:41:45.300 ⇒ 00:41:47.750 Emily Giant: So this one.
336 00:41:48.250 ⇒ 00:41:56.300 Emily Giant: It’s fine then. So now it’s back to like this is a parameter, is is lotted product, and that tends to filter in like
337 00:41:57.380 ⇒ 00:42:05.499 Emily Giant: what you just said would be like criterion for this table. And then we’ll just have another like.
338 00:42:06.500 ⇒ 00:42:16.010 Emily Giant: not not from here. But there will be a similar model. That will be just for hard goods, and it will not use inventory number. Id.
339 00:42:16.150 ⇒ 00:42:17.459 Emily Giant: It will use.
340 00:42:18.000 ⇒ 00:42:19.559 Emily Giant: Item id.
341 00:42:20.050 ⇒ 00:42:20.780 Demilade Agboola: Maybe.
342 00:42:21.520 ⇒ 00:42:29.529 Demilade Agboola: and also invention on my Id, if it does exist. But it’s it’s fine, it’s fine. If it doesn’t exist, because it’s not, it’s not primary, it’s not primary key.
343 00:42:30.610 ⇒ 00:42:31.420 Emily Giant: Okay.
344 00:42:33.580 ⇒ 00:42:38.529 Demilade Agboola: But then we should have a surrogate key of all 3, and then we shouldn’t have duplicates
345 00:42:38.730 ⇒ 00:42:45.769 Demilade Agboola: like one. An item should only like one row should represent the item sent to a particular location.
346 00:42:46.170 ⇒ 00:42:49.180 Demilade Agboola: and the invention number on that location, if it does exist.
347 00:42:51.180 ⇒ 00:42:54.600 Emily Giant: Okay, so inventory number id location, id. Item, id
348 00:42:55.332 ⇒ 00:43:01.669 Emily Giant: and then surrogate key to make sure that, like the combination of those 3 things, don’t have duplicates.
349 00:43:01.670 ⇒ 00:43:02.260 Demilade Agboola: Yeah.
350 00:43:02.440 ⇒ 00:43:12.180 Emily Giant: But other than that, it’s gonna be a like exactly like this model, but filtered for hard goods.
351 00:43:12.540 ⇒ 00:43:14.669 Demilade Agboola: Yeah, so hard goods. And
352 00:43:15.180 ⇒ 00:43:21.409 Demilade Agboola: yeah, whatever like the adjustment type adjustment category and all that adjustment quantity that was done on it.
353 00:43:21.860 ⇒ 00:43:24.010 Emily Giant: Yeah, okay, I can make that today.
354 00:43:24.918 ⇒ 00:43:28.029 Emily Giant: and then sent through the Pr for review.
355 00:43:28.150 ⇒ 00:43:37.559 Emily Giant: But I think that will resolve the issues that they were having with inventory in a clean way that doesn’t like mess up what’s already in here.
356 00:43:38.530 ⇒ 00:43:39.799 Demilade Agboola: We love to hear that.
357 00:43:40.030 ⇒ 00:43:42.800 Emily Giant: Yeah, I like that. Good talk.
358 00:43:44.320 ⇒ 00:43:49.430 Emily Giant: Good, Doc. Okay, cool. Yeah. That’s like.
359 00:43:50.450 ⇒ 00:43:58.320 Emily Giant: pretty much all I was working with today. Everything else. I mean, we could quickly add the
360 00:43:59.870 ⇒ 00:44:04.830 Emily Giant: flag for canceled orders in the last 13 min.
361 00:44:06.680 ⇒ 00:44:12.350 Demilade Agboola: So so what is this lack of cancel orders? Cause that’s not necessarily gotten a clear idea of what’s going on with that.
362 00:44:12.700 ⇒ 00:44:15.040 Emily Giant: I’m gonna have to work my way back from
363 00:44:15.545 ⇒ 00:44:20.880 Emily Giant: what was it called oms sub orders. But you redid it, and it’s nicer. Now.
364 00:44:22.860 ⇒ 00:44:28.119 Emily Giant: this is the old one. It’s in this lineage that like is canceled.
365 00:44:33.600 ⇒ 00:44:44.760 Emily Giant: okay, base suborders that is canceled. Okay? So it’s from the staging suborders table which you have already cleaned up in the new structure.
366 00:44:44.920 ⇒ 00:44:46.200 Demilade Agboola: Okay, so.
367 00:44:46.200 ⇒ 00:44:48.510 Emily Giant: Called Oms.
368 00:44:58.790 ⇒ 00:44:59.690 Emily Giant: It’s in here.
369 00:45:02.610 ⇒ 00:45:04.489 Emily Giant: Oh, it’s a longi.
370 00:45:09.270 ⇒ 00:45:12.430 Emily Giant: so not is deleted because those will not
371 00:45:12.560 ⇒ 00:45:21.370 Emily Giant: make it through this model. So it’s joined on sub order id, and is canceled.
372 00:45:23.590 ⇒ 00:45:29.489 Demilade Agboola: Alright. So where are we trying to remove canceled orders from.
373 00:45:31.000 ⇒ 00:45:33.890 Emily Giant: Those are getting removed from.
374 00:45:34.210 ⇒ 00:45:38.580 Emily Giant: Not this, not lot. Details.
375 00:45:39.300 ⇒ 00:45:43.319 Demilade Agboola: Because I’m trying to like what numbers are inflated, that we’re trying to remove them from.
376 00:45:44.777 ⇒ 00:45:48.120 Emily Giant: It’s from the inventory adjustment mark.
377 00:45:49.370 ⇒ 00:45:56.619 Emily Giant: And then also. So there are too many models.
378 00:45:57.900 ⇒ 00:46:17.089 Emily Giant: I believe, unless you’ve already fixed that that aggregate sales. The field we’re trying to remove it from is quantity sold in both the inventory balance mart, because 2 exist right now. And the inventory adjustments, Mart. So if I go to
379 00:46:18.090 ⇒ 00:46:18.860 Emily Giant: sure.
380 00:46:19.480 ⇒ 00:46:22.869 Demilade Agboola: We only have one like Major Mark. So.
381 00:46:28.190 ⇒ 00:46:30.370 Emily Giant: This one and this one are both like.
382 00:46:30.780 ⇒ 00:46:31.810 Demilade Agboola: Oh, okay.
383 00:46:31.810 ⇒ 00:46:39.029 Emily Giant: Yeah, this one is inventory number Id is one line, and then this one sub order. Id is one line. Right now.
384 00:46:39.140 ⇒ 00:46:43.739 Emily Giant: Now we had talked about creating one table that, like
385 00:46:44.440 ⇒ 00:46:47.800 Emily Giant: you can look at them on both levels.
386 00:46:48.060 ⇒ 00:46:48.680 Demilade Agboola: Yeah.
387 00:46:49.530 ⇒ 00:46:54.229 Emily Giant: But right now that’s not how they’re set up.
388 00:46:54.990 ⇒ 00:46:55.920 Demilade Agboola: Okay, so.
389 00:46:55.920 ⇒ 00:47:02.050 Emily Giant: This one is still like the unique is the inventory number Id, and this one the unique, is the suborder id.
390 00:47:02.160 ⇒ 00:47:10.170 Emily Giant: but that number in both of them, I believe, is getting calculated in the same place. So
391 00:47:11.360 ⇒ 00:47:17.450 Emily Giant: in the one that you’ve been working on sales
392 00:47:22.810 ⇒ 00:47:24.440 Emily Giant: Presale committed.
393 00:47:30.210 ⇒ 00:47:31.900 Emily Giant: is it? In this.
394 00:47:37.410 ⇒ 00:47:41.180 Emily Giant: I think it’s in the model that you’ve been working on is where it needs to get
395 00:47:44.200 ⇒ 00:47:44.960 Emily Giant: like this.
396 00:47:45.580 ⇒ 00:47:49.609 Demilade Agboola: Which I do? Is it the shrink quality, shrink, quantity, or.
397 00:47:51.180 ⇒ 00:47:56.530 Emily Giant: It’s yeah, it’s in it, but it’s the sale. So I have to keep backing it up. Because
398 00:47:56.780 ⇒ 00:48:01.450 Emily Giant: what creates the sales in this? Where is the join?
399 00:48:05.220 ⇒ 00:48:07.330 Emily Giant: So it’s not reconciliations.
400 00:48:07.620 ⇒ 00:48:13.899 Emily Giant: It’s sales, redelivery adjustments, inventory number, subscription adjustments.
401 00:48:14.450 ⇒ 00:48:15.800 Emily Giant: Come on.
402 00:48:16.580 ⇒ 00:48:22.639 Demilade Agboola: So the sales are being calculated in considerations, I believe if you, if you go, give me, let me see.
403 00:48:26.480 ⇒ 00:48:27.850 Emily Giant: Would you want me to scroll.
404 00:48:28.280 ⇒ 00:48:32.219 Demilade Agboola: So if that can you can you go down? Can you open the.
405 00:48:32.650 ⇒ 00:48:33.680 Emily Giant: The code.
406 00:48:33.900 ⇒ 00:48:34.480 Demilade Agboola: Yeah.
407 00:48:36.060 ⇒ 00:48:37.090 Emily Giant: Let’s start at the top.
408 00:48:37.270 ⇒ 00:48:39.209 Demilade Agboola: We want the total quantity sold.
409 00:48:39.710 ⇒ 00:48:43.100 Demilade Agboola: So from like, if you scroll down.
410 00:48:44.030 ⇒ 00:48:46.040 Demilade Agboola: it’s coming in from all of that.
411 00:48:46.360 ⇒ 00:48:51.045 Emily Giant: Yeah. Okay, yep.
412 00:48:51.870 ⇒ 00:48:56.290 Emily Giant: So this is the only section where that needs to be worked in.
413 00:48:57.336 ⇒ 00:49:02.920 Emily Giant: These upstream models. So it would be inventory.
414 00:49:03.190 ⇒ 00:49:07.470 Demilade Agboola: I believe, Union. That’s probably why it’s happening.
415 00:49:07.680 ⇒ 00:49:10.830 Emily Giant: Yeah, where is that?
416 00:49:14.690 ⇒ 00:49:19.370 Emily Giant: Okay? I’m just gonna type it in, because I do not see that dim.
417 00:49:19.690 ⇒ 00:49:23.290 Demilade Agboola: Alright. I think there’s an easier way to switch models.
418 00:49:23.750 ⇒ 00:49:24.997 Emily Giant: There’s gotta be right.
419 00:49:26.840 ⇒ 00:49:34.260 Emily Giant: Yeah, the the model chooser and dbt, not my fave.
420 00:49:34.550 ⇒ 00:49:35.600 Emily Giant: So.
421 00:49:35.600 ⇒ 00:49:43.020 Demilade Agboola: Kind of random. But like, if if we’re using Dvt core like the Cli version.
422 00:49:43.210 ⇒ 00:49:43.900 Emily Giant: Hmm.
423 00:49:44.170 ⇒ 00:49:47.539 Demilade Agboola: Or power user. If you hold on command
424 00:49:47.750 ⇒ 00:49:54.140 Demilade Agboola: and click on the model, it actually takes you to the model like the reference, like you click on it. It takes you to the model code.
425 00:49:54.140 ⇒ 00:49:57.279 Emily Giant: Like if I were to click on this.
426 00:49:57.280 ⇒ 00:50:03.989 Demilade Agboola: Exactly so. If you held command and clicked, it will take you to the model. It is the. It’s so simple.
427 00:50:04.873 ⇒ 00:50:06.560 Emily Giant: That’s amazing.
428 00:50:06.560 ⇒ 00:50:12.560 Demilade Agboola: It makes a huge, huge difference in how, in how you interact.
429 00:50:12.560 ⇒ 00:50:15.080 Emily Giant: I can’t believe I’ve been living like this
430 00:50:15.190 ⇒ 00:50:21.920 Emily Giant: without I’m gonna advocate for, like I don’t care how much it costs. I need to be able to click on that ref.
431 00:50:22.280 ⇒ 00:50:39.469 Demilade Agboola: And that’s the crazy part. It’s like, it’s the free version of like, it’s so Texas, all. Technically, it’s the free version of Dvt. But you have to add like another like software. So which is also free. But it it’s actually quite fascinating.
432 00:50:39.790 ⇒ 00:50:48.860 Emily Giant: That is, I’m I know this is gonna sound like an exaggeration life changing. It’s crazy
433 00:50:49.140 ⇒ 00:50:57.860 Emily Giant: like I feel like an old woman like I need like glasses. And I’m like looking for these models. Okay, so anyhow.
434 00:50:58.480 ⇒ 00:51:01.629 Emily Giant: this is the union of the suborders.
435 00:51:02.520 ⇒ 00:51:03.980 Emily Giant: And then
436 00:51:04.610 ⇒ 00:51:15.810 Emily Giant: I mean, this is just the Union. I don’t know if you want to like work that into the suborders with lots suborders, non-lotted Bs upstream.
437 00:51:17.830 ⇒ 00:51:26.370 Emily Giant: But you could also do like from Union, where like it’s canceled
438 00:51:27.820 ⇒ 00:51:33.819 Emily Giant: blah blah from, and just like, tie it in right there and remove the canceled ones from oms. Suborders.
439 00:51:35.100 ⇒ 00:51:41.850 Demilade Agboola: So, okay, so the basic idea is downstream. We don’t want to see any canceled orders. We don’t factor into the calculations for anything.
440 00:51:44.300 ⇒ 00:51:51.640 Emily Giant: No, you know what I think that that’s probably not true. I think it might be like unioned
441 00:51:51.790 ⇒ 00:51:59.899 Emily Giant: dot everything, and then, like suborders.is canceled and just like adding it as a field
442 00:52:00.940 ⇒ 00:52:03.259 Emily Giant: and joining it on suborder.
443 00:52:05.020 ⇒ 00:52:07.690 Emily Giant: And that way you can just choose it as a filter.
444 00:52:08.610 ⇒ 00:52:11.229 Demilade Agboola: Okay, I hear what you mean. I hear what you mean.
445 00:52:11.740 ⇒ 00:52:15.099 Emily Giant: Yeah, because I would want to see the canceled orders.
446 00:52:16.500 ⇒ 00:52:17.750 Demilade Agboola: That’s fair. That’s fair.
447 00:52:18.940 ⇒ 00:52:26.739 Emily Giant: So select union everything. So we’re just cancelled from Union, and there would just be a join right? You don’t want a left, join.
448 00:52:28.250 ⇒ 00:52:29.350 Demilade Agboola: Yeah.
449 00:52:29.950 ⇒ 00:52:33.650 Emily Giant: But canceled is sometimes maybe null.
450 00:52:34.460 ⇒ 00:52:36.910 Emily Giant: Would that then not like pull over the nulls?
451 00:52:38.520 ⇒ 00:52:40.790 Emily Giant: Actually don’t know what canceled looks like.
452 00:52:41.240 ⇒ 00:52:52.340 Demilade Agboola: When you’ve canceled this. No, you just require us. And then that’s the or worst case scenario you just since where it’s canceled is true, like you just filter, and every other thing will be false.
453 00:52:52.660 ⇒ 00:52:53.620 Demilade Agboola: But yeah.
454 00:52:58.920 ⇒ 00:52:59.590 Emily Giant: Okay.
455 00:53:00.760 ⇒ 00:53:03.020 Emily Giant: Checkout. All is canceled.
456 00:53:10.630 ⇒ 00:53:12.099 Emily Giant: I guess. Select distinct.
457 00:53:14.560 ⇒ 00:53:16.359 Demilade Agboola: Yeah. Oh, oh.
458 00:53:31.460 ⇒ 00:53:32.860 Demilade Agboola: that’s just 1. 0, 0.
459 00:53:33.350 ⇒ 00:53:36.449 Emily Giant: Yes, okay, so it’s already in shape. Yeah.
460 00:53:39.490 ⇒ 00:53:44.339 Demilade Agboola: I think there might be an easier way then doing a join again.
461 00:53:44.830 ⇒ 00:53:45.470 Emily Giant: Okay.
462 00:53:45.470 ⇒ 00:53:50.249 Demilade Agboola: Yeah, this is where we can propagate it through the different like intermediate models, and just have it there.
463 00:53:50.920 ⇒ 00:53:51.530 Emily Giant: Yeah.
464 00:53:51.840 ⇒ 00:53:52.870 Demilade Agboola: Going.
465 00:53:54.030 ⇒ 00:54:02.519 Demilade Agboola: I’ll look into that. I’ll just look into that. But since we’re all on the same page, I think that that’s just a policy of life. Fix.
466 00:54:03.180 ⇒ 00:54:06.200 Emily Giant: Yeah, totally. Okay. So I think that that’s
467 00:54:07.260 ⇒ 00:54:13.280 Emily Giant: I don’t think we’re gonna find a good way to identify canceled orders in netsuite. Unfortunately, because of user.
468 00:54:14.780 ⇒ 00:54:21.609 Emily Giant: because the users are humans. So this, to me, is like, probably a a better way to just
469 00:54:22.150 ⇒ 00:54:26.859 Emily Giant: use the the delta for canceled orders, even though I don’t like
470 00:54:27.070 ⇒ 00:54:33.190 Emily Giant: cross-referencing things when it’s not 100% necessary. But whatever do you?
471 00:54:33.540 ⇒ 00:54:35.999 Emily Giant: So you’ll take this, the adding, the canceled.
472 00:54:36.930 ⇒ 00:54:40.100 Demilade Agboola: Yes, I will take handling the cancelled.
473 00:54:40.430 ⇒ 00:54:45.280 Emily Giant: And then I’m going to build the non-lotted table, and I’ll just like
474 00:54:45.650 ⇒ 00:54:48.490 Emily Giant: Flag you when it’s done to look at the Pr.
475 00:54:48.930 ⇒ 00:54:49.879 Demilade Agboola: Okay. Sounds good.
476 00:54:50.337 ⇒ 00:54:51.710 Emily Giant: Do that today.
477 00:54:52.460 ⇒ 00:54:54.400 Demilade Agboola: Okay. Alright. Sounds good.
478 00:54:54.670 ⇒ 00:54:58.100 Emily Giant: Cool. Alright, wow! We’re done like 2 min early.
479 00:54:58.100 ⇒ 00:55:00.371 Demilade Agboola: Oh, also, just quick question, though.
480 00:55:05.380 ⇒ 00:55:13.386 Demilade Agboola: are we sure that somewhat ids match from both the Oms as well as this? Are they? Okay, so that’s fine. Then
481 00:55:14.600 ⇒ 00:55:15.940 Demilade Agboola: I’ll look into that. Okay.
482 00:55:16.200 ⇒ 00:55:19.480 Emily Giant: Yeah, they definitely do. That’s like one thing that actually works.
483 00:55:23.900 ⇒ 00:55:25.350 Emily Giant: This is all something.
484 00:55:25.850 ⇒ 00:55:30.697 Emily Giant: Yeah, no, those actually work. All right, cool.
485 00:55:31.940 ⇒ 00:55:42.180 Emily Giant: Alright. Well, ping me if you need anything, I’m gonna go ahead and bang out this model real quick, since it’s mostly just like duplicating the other one, and then saying.
486 00:55:42.900 ⇒ 00:55:49.040 Emily Giant: for not flowers, and then, I think the
487 00:55:50.820 ⇒ 00:56:03.760 Emily Giant: the team that was struggling yesterday that should like get in front of all the issues that they were seeing. Also, I need to add that, like is active product, that I just committed an item in
488 00:56:04.190 ⇒ 00:56:14.650 Emily Giant: both of the existing the inventory number id model and the suborder id model. So just letting you know in advance that I’ll send through that pr for you to review.
489 00:56:15.300 ⇒ 00:56:18.610 Demilade Agboola: Okay, I’ll also we could do that.
490 00:56:18.990 ⇒ 00:56:28.220 Demilade Agboola: It’s not high priority that we have like inventory adjustments that was created, and that kind of fits like inventory number inventory except, and all that stuff.
491 00:56:28.420 ⇒ 00:56:29.000 Emily Giant: Yeah.
492 00:56:30.030 ⇒ 00:56:32.799 Demilade Agboola: But I want to be able to see like.
493 00:56:33.150 ⇒ 00:56:38.109 Demilade Agboola: because it’s coming from the new like salesforce and shopify models. But we should
494 00:56:38.290 ⇒ 00:56:41.329 Demilade Agboola: tunnel that logic through our new models?
495 00:56:41.510 ⇒ 00:56:47.139 Demilade Agboola: Or is that? Is that? Is there anything that is being channeled in there that we already have.
496 00:56:49.570 ⇒ 00:56:50.859 Emily Giant: Say that again.
497 00:56:51.740 ⇒ 00:56:54.439 Demilade Agboola: So we have our inventory adjustments.
498 00:56:54.760 ⇒ 00:56:55.450 Emily Giant: Hmm.
499 00:56:55.690 ⇒ 00:56:57.960 Demilade Agboola: Model. Let me quickly share my screen.
500 00:56:58.180 ⇒ 00:56:58.780 Emily Giant: Yeah.
501 00:57:02.520 ⇒ 00:57:06.820 Demilade Agboola: because I was looking at some of the lineage, and it wasn’t as clean as I wanted it to be.
502 00:57:07.620 ⇒ 00:57:14.759 Demilade Agboola: and I’m like, hmm, so this was part of why I noticed it wasn’t as clear as I wanted things to be.
503 00:57:15.040 ⇒ 00:57:22.749 Demilade Agboola: So this our inst models are then going to another like postgrespace inventory adjustments.
504 00:57:23.180 ⇒ 00:57:25.669 Emily Giant: I’m still not seeing your screen. I’m seeing mine.
505 00:57:25.960 ⇒ 00:57:27.149 Demilade Agboola: Oh, my! Bad!
506 00:57:27.380 ⇒ 00:57:28.070 Emily Giant: Okay.
507 00:57:28.240 ⇒ 00:57:29.139 Demilade Agboola: Can you see my screen.
508 00:57:33.050 ⇒ 00:57:36.250 Emily Giant: Are we at? No, I still see mine. What’s happening.
509 00:57:36.690 ⇒ 00:57:40.769 Demilade Agboola: Can you click, zoom, tab, you should be able to see like the.
510 00:57:41.130 ⇒ 00:57:47.779 Emily Giant: Oh, yep, yep, yep, yep, zoom, wow! There’s 2 tabs. It’s incredible. Okay, go ahead.
511 00:57:49.280 ⇒ 00:57:53.520 Demilade Agboola: So this is the inventory adjustments model.
512 00:57:54.330 ⇒ 00:57:56.209 Demilade Agboola: It’s the postgrespace.
513 00:57:56.480 ⇒ 00:57:57.160 Emily Giant: Hmm.
514 00:57:57.160 ⇒ 00:58:08.639 Demilade Agboola: And this created from our shopify adjustments the new ones we just created, which are super cool models. But then we’re trying to feed old like legacy models
515 00:58:09.230 ⇒ 00:58:12.049 Demilade Agboola: for like Inventory Xf and all that stuff.
516 00:58:12.540 ⇒ 00:58:16.130 Demilade Agboola: And I’m trying to be sure that is there any logic here
517 00:58:16.250 ⇒ 00:58:25.250 Demilade Agboola: that is being powered like parent stuff here that we we need to move into our new models because ideally, we want to be able to like, get rid of.
518 00:58:25.660 ⇒ 00:58:30.060 Emily Giant: Yeah, ideally.
519 00:58:30.980 ⇒ 00:58:50.509 Emily Giant: No, at this point. But I will double check for you. Today and let you know. I don’t think so. I feel like that is what those models are was like. If anything, there’s additional logic that needs to go away forever in those that just should never have been used. But I’ll double check. I know exactly what you mean.
520 00:58:50.990 ⇒ 00:58:52.740 Demilade Agboola: Alright. So this is like long term.
521 00:58:53.230 ⇒ 00:59:01.849 Demilade Agboola: We don’t want to have things going from our beautiful models back into like. So this is where we did like. This portion
522 00:59:02.480 ⇒ 00:59:06.250 Demilade Agboola: is where everything becomes old school like legacy stuff.
523 00:59:06.250 ⇒ 00:59:19.819 Emily Giant: Yeah, just absolute ass. Yeah, right in there. But there is definitely so what you’re hitting right after inventory adjustments is revenue. That’s where revenue starts.
524 00:59:20.020 ⇒ 00:59:20.840 Demilade Agboola: Oh, okay.
525 00:59:21.030 ⇒ 00:59:31.860 Emily Giant: So it’s gonna be maybe next sprint that we hit those and kill them. But I’ll I’ll document out like what kind of logic
526 00:59:32.030 ⇒ 00:59:38.840 Emily Giant: even in here there’s some that we can kill like checkout order number netsuite inventory adjustment id like a bunch of that
527 00:59:39.250 ⇒ 00:59:40.550 Emily Giant: is obsolete.
528 00:59:41.238 ⇒ 00:59:45.840 Emily Giant: But to make those revenue models work. I had to put those in there.
529 00:59:46.200 ⇒ 00:59:53.289 Demilade Agboola: Alright. So this model, this model currently exists right now as this, like literally the same model.
530 00:59:54.220 ⇒ 00:59:56.280 Emily Giant: Yeah, I did that.
531 00:59:56.530 ⇒ 00:59:58.650 Emily Giant: No, I or you didn’t.
532 00:59:58.990 ⇒ 01:00:09.030 Demilade Agboola: Because I I didn’t want it to exist in an entirely like I wanted things to live within the same lineage. And so if we’re taking things. If we’re taking this, these models
533 01:00:09.140 ⇒ 01:00:31.990 Demilade Agboola: and creating like a postgres based model, it’s like across domains in a way that like isn’t sustainable. So I want us to be able to like, duplicate that. And then, if we need to build up on top of that model to have some certain logic that you’re using elsewhere. We have, like in our new structure, we can build on it. We can build upwards on it.
534 01:00:33.060 ⇒ 01:00:40.270 Emily Giant: Okay, that makes sense. Okay, hop to my next meeting. But I’ll make tickets for like that
535 01:00:40.560 ⇒ 01:00:46.659 Emily Giant: part of this work of the like documenting upstream things. We haven’t touched. Post our new models to like.
536 01:00:46.950 ⇒ 01:00:50.920 Emily Giant: Decide what logic we keep, what logic goes so that we can kill them.
537 01:00:51.200 ⇒ 01:00:52.107 Demilade Agboola: Alright, sounds good.
538 01:00:52.620 ⇒ 01:00:54.921 Emily Giant: Alright! See you in like 30 min.
539 01:00:55.700 ⇒ 01:00:57.130 Demilade Agboola: Thank you. Bye.