Meeting Title: [Javvy + Brainforge] Metabase Dashboard Walkthrough Date: 2025-04-02 Meeting participants: Annie Yu, Aakash Tandel, Aman Nagpal, Vlad, Robert Tseng


WEBVTT

1 00:00:12.010 00:00:12.860 Aman Nagpal: Hello!

2 00:00:14.550 00:00:15.510 Annie Yu: Hello!

3 00:00:15.810 00:00:16.250 Aman Nagpal: Hey, guys.

4 00:00:16.250 00:00:17.070 Aakash Tandel: There you go!

5 00:00:17.510 00:00:19.090 Annie Yu: Hi! How’s it going

6 00:00:19.090 00:00:20.650 Aman Nagpal: Good? How’s everything?

7 00:00:21.260 00:00:25.376 Annie Yu: Good. Hello, man! I think this is my 1st time seeing you

8 00:00:25.720 00:00:27.960 Aman Nagpal: I think so. Yeah, where are you located?

9 00:00:28.140 00:00:31.199 Annie Yu: I’m in Portland, Oregon. How about you?

10 00:00:31.200 00:00:32.409 Aman Nagpal: I’m in New York.

11 00:00:32.750 00:00:36.800 Annie Yu: Nice. I I live in New Jersey for

12 00:00:37.030 00:00:40.630 Annie Yu: for a while before moving here, so

13 00:00:40.630 00:00:41.790 Aman Nagpal: Would you like better?

14 00:00:42.370 00:00:48.480 Annie Yu: Well, if I’m being honest, the West Coast, but I also think like

15 00:00:48.790 00:00:54.145 Annie Yu: no, I think it’s like for the same price you can get like much better quality.

16 00:00:54.480 00:00:57.329 Aman Nagpal: That’s true. It’s too expensive over here for no reason

17 00:00:57.330 00:00:58.070 Annie Yu: Yeah.

18 00:00:59.490 00:01:02.450 Robert Tseng: We’re comparing New York and like West Coast

19 00:01:03.220 00:01:04.628 Aman Nagpal: Jersey and West Coast

20 00:01:04.980 00:01:06.779 Robert Tseng: Jersey and West Coast got it.

21 00:01:06.780 00:01:07.405 Aman Nagpal: Yeah.

22 00:01:08.360 00:01:13.499 Aman Nagpal: I think, Vlad should be joining as well in a minute. You guys haven’t met yet right

23 00:01:14.400 00:01:15.480 Robert Tseng: No. Nope, yeah.

24 00:01:16.050 00:01:19.180 Aman Nagpal: Cool. He’s our new data analyst

25 00:01:19.420 00:01:23.279 Aman Nagpal: who’s gonna help make you know some reports and stuff. But

26 00:01:23.700 00:01:36.579 Aman Nagpal: I think overall, and I don’t know if we can record this on zoom and send it to us, or just switch to Google meet if we need to. But yeah, we just wanna basically have all the details handy. And then I think, Robert, you said

27 00:01:36.770 00:01:39.780 Aman Nagpal: with them would be able to record some looms as well right for the

28 00:01:39.780 00:01:40.140 Robert Tseng: Yeah.

29 00:01:40.140 00:01:41.470 Aman Nagpal: There’s cool

30 00:01:42.060 00:01:44.369 Robert Tseng: Oops. Sorry! I’ll just cut out for a sec.

31 00:01:44.890 00:01:46.260 Robert Tseng: Follow up.

32 00:01:48.630 00:01:49.440 Robert Tseng: Can you still hear me?

33 00:01:49.440 00:01:50.389 Aakash Tandel: Yep, we can hear you

34 00:01:50.710 00:01:52.520 Robert Tseng: Okay, yeah, that’s weird.

35 00:01:54.500 00:02:05.270 Aakash Tandel: Yeah, this is already recording. So we should be good. I will share this after the meeting. Andy, do you wanna just go ahead, share your screen, and we can start there. We’ll give Black a minute or 2.

36 00:02:07.070 00:02:11.150 Aakash Tandel: Also, I’m going to be slightly off camera while I scarf down some food in between meetings.

37 00:02:12.060 00:02:12.829 Aman Nagpal: Sounds good

38 00:02:17.570 00:02:18.360 Annie Yu: Whoa!

39 00:02:19.170 00:02:21.761 Annie Yu: And I think today will

40 00:02:22.490 00:02:27.190 Annie Yu: probably focus more on just gross margin dashboard

41 00:02:29.270 00:02:34.109 Aman Nagpal: Yeah, I think, that works. I think more. So. It’s

42 00:02:34.860 00:02:42.940 Aman Nagpal: we can always do more on an additional call. But basically, if you were to describe to me from scratch right where

43 00:02:43.210 00:02:46.420 Aman Nagpal: everything is located on the metabase side which

44 00:02:46.916 00:02:54.070 Aman Nagpal: databases we’re using, using the difference in like the mark versus whatever. I don’t know if you want to do that today, or if you want to do that

45 00:02:54.370 00:02:57.959 Aman Nagpal: on a later call. But you know, as long as we can get through it. It doesn’t have to be today

46 00:02:58.740 00:03:11.080 Annie Yu: Oh, I think we can touch on that cause. I if I’m not wrong, everything is using probably the same model within this dashboard, and, as well as for the Amazon dashboard

47 00:03:11.550 00:03:14.779 Aman Nagpal: Yeah, let’s do it. And by the way, the guys, this is Vlad,

48 00:03:15.220 00:03:24.349 Aman Nagpal: so I guess the best way to describe it or go through. It would just be as if you know we don’t know where anything is, because that’s kind of where we’re starting from. Scratch in essence

49 00:03:25.590 00:03:26.116 Annie Yu: Okay.

50 00:03:27.450 00:03:29.019 Annie Yu: How should I do this?

51 00:03:29.640 00:03:30.980 Annie Yu: Should we?

52 00:03:33.660 00:03:48.530 Robert Tseng: Yeah, maybe just start from like the Meta base like homepage. And then, like as you’re clicking around the models and like kind of showing where everything is in the marts. Then eventually, when you get to an example for a report, you can just use the gross margin, dash

53 00:03:49.290 00:03:58.419 Annie Yu: Okay, so here is where we have our key dashboards. So these 4, I believe, are the one that are current and up to date.

54 00:04:00.430 00:04:05.620 Annie Yu: And I believe for these 2 we are running on way.

55 00:04:06.630 00:04:09.320 Annie Yu: How do I show the model from here?

56 00:04:09.830 00:04:11.250 Robert Tseng: Yeah, yeah.

57 00:04:11.250 00:04:14.560 Annie Yu: Yeah, so we are. I think we’re

58 00:04:15.360 00:04:23.250 Annie Yu: phasing out this one, and everything should be running on this one. So the hot Mars snowflake, and for the

59 00:04:23.540 00:04:28.720 Annie Yu: more so like sales data, we would mainly use this one fact orders.

60 00:04:29.030 00:04:31.800 Annie Yu: Should we go through the columns or not? I

61 00:04:31.800 00:04:36.659 Robert Tseng: I think, just include, like, what’s what’s going on. In fact, orders. Yeah.

62 00:04:37.110 00:04:42.739 Annie Yu: Yeah, so for fact orders, everything is on the order level.

63 00:04:43.127 00:04:54.380 Annie Yu: And I said that because I I wanna I want to point this out because I figure out I spent some time figuring out these 2. The difference between these 2 is this is based on order, level and order line means

64 00:04:54.910 00:05:08.570 Annie Yu: when you place an order, you can buy multiple items. So one id can have multiple line line id, if that makes sense. but we’re if we’re looking at only sales

65 00:05:09.051 00:05:14.510 Annie Yu: from a higher level. We use this one order, Id, and then we have the customer id

66 00:05:15.050 00:05:21.080 Annie Yu: customer type, where I believe we only have new versus returning.

67 00:05:21.300 00:05:24.839 Annie Yu: And here’s the order created date.

68 00:05:25.120 00:05:32.160 Annie Yu: We have app source, and I think there’s Amazon shopify Tiktok.

69 00:05:33.060 00:05:34.799 Annie Yu: That’s probably it.

70 00:05:35.020 00:05:40.300 Annie Yu: And here we have total price, and I think total price is probably

71 00:05:40.600 00:05:45.549 Annie Yu: we are using less now because we had a different calculation. And now we are

72 00:05:45.700 00:05:49.289 Annie Yu: kind of updating our metric calculation. So I will skip that

73 00:05:50.980 00:05:59.370 Annie Yu: And here’s the total line price. Wait total line item price. And when we, I think we we can.

74 00:05:59.560 00:06:08.289 Annie Yu: I’m gonna flash up this one just quickly, go through the main like sales metrics that we have, which is sales revenue. So here

75 00:06:08.290 00:06:17.529 Aman Nagpal: This would actually be super helpful before we jump into that, though, and and Vlad feel free to jump in with any questions. If we rewind a little bit. So this is the prod marts.

76 00:06:17.670 00:06:21.669 Aman Nagpal: Snowflake. Is that a database or table?

77 00:06:22.020 00:06:22.960 Aman Nagpal: Proud marts

78 00:06:24.022 00:06:27.930 Annie Yu: Is that a it would be a

79 00:06:27.930 00:06:29.229 Robert Tseng: Yeah. It’s a database

80 00:06:29.770 00:06:34.529 Aman Nagpal: And what’s the difference between all of the different databases?

81 00:06:35.490 00:06:39.900 Aman Nagpal: So we could just have a description right verbally, of each one

82 00:06:42.380 00:06:42.890 Annie Yu: You mean

83 00:06:42.890 00:06:56.980 Vlad: Yeah, I’m sorry for interrupt. Yeah, I honestly have the same question. Yeah, because in Meta base, I’ve discovered different, like broadmarts. Yeah. And also Javi Broad. If I’m not wrong. Yeah, it’s name.

84 00:06:57.090 00:06:58.229 Vlad: What’s what’s there

85 00:06:58.230 00:07:07.339 Robert Tseng: Yeah, we’ll we’re gonna get rid of Javi Snowflake. It’s just gonna be snowflake was really just like, for I guess in development, we were.

86 00:07:07.620 00:07:12.729 Robert Tseng: we were the only ones that were building anything in here. So we just like kind of had 2 databases.

87 00:07:12.850 00:07:17.329 Robert Tseng: We are. Yeah, like, we’re just gonna only show smarts in the future.

88 00:07:17.330 00:07:22.770 Aman Nagpal: So in Snowflake it’ll be prodmarts. That’s our main data for everything.

89 00:07:23.430 00:07:36.579 Robert Tseng: Yeah, so there’s prodmarts, and there’s prod intermediates. Prodmarts is like it’s already been summarized and kind of put into its final form for you to plug into a a dashboard

90 00:07:36.880 00:07:53.009 Robert Tseng: prod intermediate. There are more tables that’s like before we’ve done all the consolidation across the different tables. It’s probably closer to what you would get straight from raw. But it’s cleaned up. And if you wanted to do your own

91 00:07:53.140 00:08:07.690 Robert Tseng: data exploration, if you’re like a SQL power user, then you would probably go and build using prod intermediate. If you if if the if you if there’s any, investigate any data that’s not already in Podmarks.

92 00:08:08.430 00:08:10.360 Aman Nagpal: Got it. So basically we would have.

93 00:08:10.710 00:08:20.700 Aman Nagpal: I’m assuming a prod raw or a raw database of everything coming in raw. Then you manually cleaned up, remove some stuff from raw to intermediate

94 00:08:21.480 00:08:24.400 Aman Nagpal: intermediary, and then between intermediary and

95 00:08:24.550 00:08:29.539 Aman Nagpal: prod. You, I’m assuming is where we run all the cleanup with Dbt, is that right?

96 00:08:29.810 00:08:37.819 Robert Tseng: Yeah. So raw is just straight, raw, and then prod intermediate. There’s already been some cleaning like we’ve done all the renaming we’ve kind of gotten rid of like

97 00:08:38.059 00:08:41.710 Robert Tseng: certain values that like don’t like nonsense values or whatever

98 00:08:42.240 00:09:03.119 Robert Tseng: prodmarts is really just like a. It’s we’ve done joints across different, like the fact that you can see Amazon, Tiktok, and shopify all on a single table is because there’s been like multiple layers of transformation to get that all in this, in the, in the, in the same, like into the same format.

99 00:09:04.280 00:09:12.170 Robert Tseng: but like in intermediate though, they would be, split up as different sources, because we haven’t had. We did. We haven’t made that transformation yet.

100 00:09:12.710 00:09:16.340 Aman Nagpal: Okay. And are you using Dbt between both

101 00:09:16.700 00:09:21.550 Aman Nagpal: splits? Or is it only between intermediate and prod

102 00:09:21.820 00:09:25.970 Robert Tseng: Yeah. No dpt is used in every in every step. Yeah.

103 00:09:26.660 00:09:33.059 Aman Nagpal: Okay, that sounds good. And then in terms of all of these, I guess these would be tables, right? Or

104 00:09:33.060 00:09:34.139 Robert Tseng: Yep. Tables.

105 00:09:35.380 00:09:39.969 Aman Nagpal: Agent. Macro usage is the gorgeous data.

106 00:09:40.760 00:09:45.799 Aman Nagpal: But it’s specifically for macro usage and not it. We don’t have all of gorgeous in one table

107 00:09:46.170 00:09:53.349 Robert Tseng: Yeah, that that was a specific summary like. So there’s like different some naming conventions here when we say summary

108 00:09:53.801 00:10:11.038 Robert Tseng: it’s like summarized data for a very specific question, or, like, you know, for the agent Macro usage. It was because you specifically wanted to see Macros by by by agent or whatever. So that’s what there that is for. But there’s also like a dim tickets

109 00:10:11.620 00:10:16.279 Robert Tseng: table or fact, our fact tickets kind of table where you can

110 00:10:16.430 00:10:26.569 Robert Tseng: go and like, look at all the other ticket fields that we’ve that we have there as well. That’s not just focused on Macro names

111 00:10:27.090 00:10:32.740 Aman Nagpal: Got it. And this is probably a stupid question to you guys. But what is, I guess? The description of

112 00:10:32.900 00:10:35.959 Aman Nagpal: Martz fact dim all that stuff

113 00:10:36.893 00:10:48.170 Robert Tseng: I mean, this was just like naming the kind of just standard naming conventions at this point. I guess Tbp was kind of the one that like pioneered a lot of this. But like

114 00:10:48.310 00:10:57.352 Robert Tseng: marts are. It’s like you can think of that like a marketplace of different tables. It’s a it’s just like a convention we follow to organize

115 00:10:58.576 00:11:17.983 Robert Tseng: the tables. And so we and like, for when we name things summary, dim or fact, we’re also following the same convention. So I’m sure you could look online and find more details on it. But, generally speaking, facts, fact tables are like transactional tables, like they’re

116 00:11:18.750 00:11:28.990 Robert Tseng: you know, like orders, like transactions. Like things that are. These are very long tables, because there are probably a lot of

117 00:11:30.410 00:11:49.449 Robert Tseng: a anytime. There’s new orders and new transactions these tables grow, whereas, like dimensions like they also grow, but they don’t grow necessarily at the same rate, like the number of customers. I think the number of products is not growing at the same rate as the fact. So yeah, it’s it’s just a way for us to differentiate like.

118 00:11:49.450 00:12:02.559 Robert Tseng: okay, dimension dimension tables. They’re like more qualitative in nature. And it’s like at the product level or the customer level. Whereas, like the fact tables, they’re at like transaction or order levels

119 00:12:03.390 00:12:06.089 Aman Nagpal: So fact, orders could be all orders, and then

120 00:12:06.390 00:12:11.349 Aman Nagpal: dim or dimensional we could have one, for I don’t know concentrates

121 00:12:12.542 00:12:20.367 Robert Tseng: We probably wouldn’t do just concentrates. I think we would probably just do like a dim products table, which I guess isn’t here yet. But

122 00:12:20.680 00:12:21.340 Aman Nagpal: Got it

123 00:12:21.590 00:12:28.580 Robert Tseng: Yeah, so that way you can within, if you click into, maybe we just click into like dim customers. For example.

124 00:12:32.710 00:12:38.399 Robert Tseng: yeah, so this is like customer level data, and, like

125 00:12:41.400 00:12:44.419 Robert Tseng: all the dimensions you wouldn’t want to see on a customer

126 00:12:45.470 00:13:03.339 Robert Tseng: dimensions, meaning, like other attributes, like number of orders, they place in their lifetime, their address the 1st time they ordered, etc. And so these are usually wider tables. Because it’s like they keep growing wider, like the the more you want to know about your customers.

127 00:13:04.410 00:13:05.370 Robert Tseng: So yeah.

128 00:13:06.170 00:13:10.850 Aman Nagpal: So this number of orders, let’s say, for example, would not appear. In fact, customers

129 00:13:12.817 00:13:18.990 Robert Tseng: No, you probably join it like I don’t think we would include it. In fact, they’re in like in like a fact. Orders table

130 00:13:19.720 00:13:24.200 Aman Nagpal: I guess, for me. What’s the difference between fat customers and this damn customers?

131 00:13:24.520 00:13:26.230 Robert Tseng: I don’t think there’s a fat customers

132 00:13:26.230 00:13:29.490 Aman Nagpal: Oh, got it.

133 00:13:30.790 00:13:37.420 Aman Nagpal: Okay. So we have a bunch of different tables, some for gorgeous shopify Amazon, Oquendo.

134 00:13:38.700 00:13:44.420 Aman Nagpal: And then all the dashboards are just pulling from whichever data from all of these tables, right

135 00:13:44.680 00:13:45.320 Robert Tseng: Yep.

136 00:13:45.720 00:13:49.179 Robert Tseng: So every dashboard is built on top of these tables. Yeah.

137 00:13:50.360 00:13:52.459 Aman Nagpal: Got it? Any questions.

138 00:13:52.460 00:14:00.319 Aakash Tandel: Good guide in the the chat for dbt’s like explainer on the differences. If you want, like more detail on any of that stuff

139 00:14:00.920 00:14:02.659 Aman Nagpal: Awesome. I’ll check this out. Thank you.

140 00:14:04.790 00:14:05.740 Aman Nagpal: That’s good.

141 00:14:06.356 00:14:12.769 Aman Nagpal: Yeah, okay. And then I know we were on the we were. Gonna look at the formulas. I think we could hit that, for now

142 00:14:14.646 00:14:15.143 Annie Yu: Yup.

143 00:14:17.110 00:14:21.337 Annie Yu: So these are out. I can share this with you guys, too.

144 00:14:22.230 00:14:25.669 Annie Yu: and here’s some of the metrics that

145 00:14:26.020 00:14:36.839 Annie Yu: we lay out the calculations. And this is this the column? Them. I’m basing them on that fact order, because there might be a slight different

146 00:14:37.250 00:14:39.849 Annie Yu: column names somewhere else.

147 00:14:41.730 00:14:46.990 Annie Yu: So I think these ones are really the ones that we want to get familiar with.

148 00:14:47.588 00:14:55.890 Annie Yu: Here the sales revenue, and actually in the dashboard, we also lay out some key definitions here.

149 00:14:57.620 00:15:01.260 Annie Yu: So yeah, I won’t go through all of them.

150 00:15:01.570 00:15:04.330 Annie Yu: But just know that there is this here

151 00:15:04.590 00:15:08.710 Annie Yu: for use. And should we go into a dashboard now?

152 00:15:08.830 00:15:11.879 Annie Yu: Do we feel like we are ready for a dashboard?

153 00:15:13.560 00:15:16.869 Aman Nagpal: Yeah, I would say, we can jump into it, and then we can keep going back and forth

154 00:15:16.870 00:15:17.860 Annie Yu: Yeah, cool.

155 00:15:18.240 00:15:39.050 Annie Yu: So starting with this gross margin dashboard. So for this one, we really just focus on tracking the profitability and costs across various dimensions. And here, on the very top, we have that filters that you can use, and we always try to have some

156 00:15:39.480 00:15:44.710 Annie Yu: text box in each section. Just so we can have more context.

157 00:15:45.817 00:15:50.120 Annie Yu: and know the nuances. Also the metric calculation.

158 00:15:50.854 00:15:54.000 Annie Yu: And I always like to start with the key questions

159 00:15:54.440 00:16:06.540 Annie Yu: for dashboards. So I think, for this one’s also like pretty straightforward. We want to know how our our sales revenue trending over time. And are we improving our profitability along with it.

160 00:16:06.850 00:16:18.930 Annie Yu: Also, moving on what products or customer type are driving the most profit or or loss, and and as well as where are we potentially

161 00:16:19.240 00:16:28.373 Annie Yu: losing, not losing money. But where are we? Potentially having more costs like refund and discounts?

162 00:16:29.110 00:16:32.780 Annie Yu: So from here, very high level, we have.

163 00:16:36.500 00:16:39.149 Annie Yu: Wait. I’m gonna just okay. Cool.

164 00:16:41.180 00:16:47.289 Annie Yu: So here we have the sales revenue. Average order value.

165 00:16:47.690 00:16:53.459 Annie Yu: which is sales revenue divided by order, number, order, count

166 00:16:53.640 00:17:06.019 Annie Yu: and gross profit, gross margin. And this is just a very high level top view, and moving to just more granular details by different categorical data. Here we have that

167 00:17:06.742 00:17:18.289 Annie Yu: same thing revenue aov gross profit before new versus returning customer. So these are kind of the similar view just with different metrics.

168 00:17:18.900 00:17:25.579 Annie Yu: And moving down here we have that different dimension so protein versus concentrate.

169 00:17:26.940 00:17:31.029 Annie Yu: so similarly gross profit, gross margin.

170 00:17:31.790 00:17:34.630 Annie Yu: And from here we also include the

171 00:17:34.880 00:17:38.040 Annie Yu: metrics by 2. I think major names

172 00:17:38.900 00:17:42.908 Annie Yu: so very similar views not gonna repeat that

173 00:17:43.410 00:17:47.799 Aman Nagpal: I think, for the sake of time, we don’t necessarily necessarily need to review

174 00:17:48.040 00:17:58.549 Aman Nagpal: all of this, but I guess, to put simply all the calculations were done and then displayed here. Right? So how would I be able to access

175 00:17:58.990 00:18:02.679 Aman Nagpal: like if I click on one? Can I see the calculation for that item?

176 00:18:02.810 00:18:07.239 Annie Yu: Yeah, I’m just gonna go through this.

177 00:18:08.010 00:18:09.940 Annie Yu: So here we see

178 00:18:10.840 00:18:18.839 Annie Yu: the sales revenue. We had to do some calculation in the back. And this is really based on that calculation here

179 00:18:18.840 00:18:19.570 Aman Nagpal: Hmm!

180 00:18:22.290 00:18:25.079 Aman Nagpal: And what’s considered a question in metabase

181 00:18:27.010 00:18:29.569 Annie Yu: Well, I’m very new to Meta Base, but

182 00:18:29.570 00:18:31.159 Robert Tseng: It’s just a it’s just a report

183 00:18:31.160 00:18:33.550 Annie Yu: Yeah, it’s it’s really like A

184 00:18:33.830 00:18:40.269 Annie Yu: is that is that what’s that called just each tile that we have here?

185 00:18:41.090 00:18:42.689 Aakash Tandel: Yeah, I would say, tile

186 00:18:43.460 00:18:44.020 Annie Yu: Okay.

187 00:18:47.130 00:18:50.500 Aman Nagpal: How about like this? Example? Chart the gross margin

188 00:18:52.950 00:18:54.860 Aman Nagpal: or even this one? Right? So

189 00:18:55.080 00:19:00.579 Aman Nagpal: if you edit this, it’ll be the same type of editing view we just saw, or different

190 00:19:02.674 00:19:04.499 Annie Yu: What? What’s what do you mean?

191 00:19:04.910 00:19:07.130 Aman Nagpal: Like if I wanted to see where

192 00:19:07.400 00:19:10.399 Aman Nagpal: all of this data is coming from. For this chart

193 00:19:10.400 00:19:18.090 Annie Yu: So there’s always that 3 dots, and you can go back and see how the calculation and filter it’s been done

194 00:19:19.300 00:19:24.949 Aman Nagpal: So filter is filtering out specific data. Summarize is the top headings

195 00:19:28.560 00:19:30.590 Annie Yu: How I think about it is

196 00:19:30.850 00:19:48.309 Annie Yu: so we filter self exploratory, summarize. I think one thing that really helps me a lot is actually, when you do it, step by step, you can see the preview of that table. So here, summarize, I’m just kind of taking these ones from here.

197 00:19:48.880 00:19:53.830 Annie Yu: and I just know, okay, I need these metrics to help me get to that cost.

198 00:19:54.800 00:20:01.100 Annie Yu: Metric. So yeah, this is what really helps me a lot, step by step.

199 00:20:01.290 00:20:11.020 Annie Yu: and so based on these ones, I eventually get to the. We added that cost column here

200 00:20:12.010 00:20:16.000 Annie Yu: and then. So you can do like multiple summaries

201 00:20:16.630 00:20:22.640 Aman Nagpal: Can you go into that a little bit? This custom column? How? What makes it custom and how? Where that’s coming from?

202 00:20:23.648 00:20:26.099 Annie Yu: I believe that as long as

203 00:20:26.500 00:20:30.860 Annie Yu: so we don’t have a cost column here, so I want to add one. I can just add it here.

204 00:20:31.399 00:20:36.460 Annie Yu: And you kind of cause. I I feel like the functions here are

205 00:20:36.810 00:20:43.299 Annie Yu: some are like really straightforward, but some you have to go through Meta based document to really learn about it.

206 00:20:44.959 00:20:47.119 Aman Nagpal: Fully loaded cogs. That’s a custom

207 00:20:47.500 00:20:55.260 Aman Nagpal: that we created. Right? So is that something, we just input it here and pasted it here or it lives elsewhere. The metric, and we brought it in here

208 00:20:57.650 00:21:09.120 Annie Yu: I would say, if you’re using fact orders, you can always just copy and paste this one. But if you are using some other tables there might be a slight different naming

209 00:21:09.290 00:21:15.799 Annie Yu: in terms of the the columns, and in that case you will want to make sure you’re on the right column.

210 00:21:16.340 00:21:17.080 Aman Nagpal: Got it

211 00:21:18.920 00:21:23.160 Robert Tseng: I’ll jump in here. So this is like if and if you could click on the custom column again.

212 00:21:23.240 00:21:23.750 Annie Yu: Yeah.

213 00:21:23.750 00:21:35.120 Robert Tseng: So all of those like sum of cogs, product cost whatever like those are. So the summary is just the aggravation right? It’s just like adding, like a sum, average, or whatever other, like

214 00:21:35.270 00:21:39.709 Robert Tseng: straightforward single calculation to an existing field.

215 00:21:39.850 00:21:47.010 Robert Tseng: So that’s 1 layer. I mean, this is kind of what we do on the back end for Dbt for some of the other calculations. But I think this is, you know.

216 00:21:47.260 00:21:55.860 Robert Tseng: this is just like SQL. Based logic at this point, and the custom column is just okay. Well, you’ve created those new summary

217 00:21:56.140 00:22:11.589 Robert Tseng: metrics in in metabase. And so you just have to combine them all together to calculate fully loaded cost. So it’s this is also kind of simulating what you would do in SQL. There’s always a view SQL. Tab in the upper right hand corner, so

218 00:22:11.590 00:22:36.869 Robert Tseng: you could always just like copy paste that into a SQL. Editor. So if you just pasted that into Snowflake, it would give you the same thing. So that’s kind of the unique thing. It’s like, yeah, metabase ui is a slightly custom. But all the logic is the same as like, you know, sequel is all SQL. Based logic. So you’ll always be able to just like, take your output from Meta Base and just throw it into a SQL. Query, and it’ll

219 00:22:37.030 00:22:38.300 Robert Tseng: share the same thing

220 00:22:39.180 00:22:39.950 Aman Nagpal: Sounds good

221 00:22:55.600 00:22:56.279 Annie Yu: Okay.

222 00:23:02.400 00:23:04.889 Annie Yu: Should we move on with the pivot table?

223 00:23:08.480 00:23:09.730 Aman Nagpal: Yeah, let’s do it.

224 00:23:10.400 00:23:17.920 Annie Yu: Okay, so here’s another like more granular views at the offer name level by the funnel type.

225 00:23:18.050 00:23:22.309 Annie Yu: Here we can always expand and collapse.

226 00:23:23.156 00:23:27.589 Annie Yu: And one thing about the key map here is really just based on that.

227 00:23:28.140 00:23:30.680 Annie Yu: The color is based on the scale.

228 00:23:31.492 00:23:37.650 Annie Yu: So here we can easily spot that this one has lower, gross margin compared to the others.

229 00:23:38.240 00:23:40.290 Annie Yu: and very similarly it was.

230 00:23:40.750 00:23:50.709 Annie Yu: Here we have concentrate protein, and really just the same view, but with different metrics and dimension.

231 00:23:53.010 00:23:58.450 Annie Yu: Here we have that trend view for both concentrate and protein gross profit

232 00:23:59.190 00:24:04.339 Annie Yu: down here. This is more so around. Our costs.

233 00:24:05.500 00:24:08.300 Annie Yu: So where do our costs come from?

234 00:24:08.490 00:24:10.419 Annie Yu: Here? We have that breakout

235 00:24:15.490 00:24:22.780 Annie Yu: similar breakouts over time by lp. 43 PC. 84.

236 00:24:23.010 00:24:29.339 Annie Yu: In the bottom. We have that refund impact trend. So this is where we can see

237 00:24:30.470 00:24:35.440 Annie Yu: the refund percentage and discount. And I think one thing that’s

238 00:24:37.160 00:24:39.829 Annie Yu: what I would do was probably

239 00:24:40.670 00:24:46.310 Annie Yu: always compare these ones with our sales trend. So we know that

240 00:24:48.840 00:24:52.299 Annie Yu: whether like a discount, is driving sales or not.

241 00:24:54.810 00:24:57.785 Annie Yu: So that’s pretty much it.

242 00:24:59.060 00:25:05.369 Annie Yu: I think there’s a lot of repetitive views just with different dimensions for you to slice and dice.

243 00:25:05.540 00:25:08.939 Annie Yu: and so definitely play around with it.

244 00:25:10.605 00:25:15.609 Annie Yu: And I’m gonna pause here to see if there’s more question

245 00:25:19.530 00:25:21.189 Aman Nagpal: We’ll add any questions from you.

246 00:25:23.630 00:25:32.279 Vlad: Honestly based on reviewing the like current appearance in metabase to me looks clear. Yeah, I have, I think, more question about them

247 00:25:32.500 00:25:41.020 Vlad: like, is it possible to like review the some quick demo? For example, if we have the

248 00:25:41.130 00:26:04.809 Vlad: customer table? Yeah, the internal process, how we can reach in that, for example, additional, like additional field. For example, in our collection. Yeah, we’ve enrich and add more field during the user onboarding or some any other order wherever and so we need to add this field and able to discover and, for example.

249 00:26:04.890 00:26:21.980 Vlad: create the additional question in metabase. I mean, like more about this about the dashboard. Yeah. One thing which I want to ask, may you please share the link for for it, because I’ve tried to find it inside the metabase by the name, but

250 00:26:22.230 00:26:26.709 Vlad: can’t find it, and for others think you have to me will clear things

251 00:26:26.710 00:26:31.470 Aakash Tandel: Andy, can you see the dashboard link? Just the URL in the chat right now?

252 00:26:31.470 00:26:31.890 Aakash Tandel: Yep, yep.

253 00:26:31.890 00:26:34.759 Annie Yu: Yeah, not sure if this key dashboard

254 00:26:35.840 00:26:44.983 Aakash Tandel: And then, yeah, I think your other question was, if you wanted to add in a new like user dimension, how would that kind of pipeline through.

255 00:26:45.310 00:27:08.370 Aakash Tandel: Robert, I think you might be able to give more color on this. But in general we’re getting a lot of data from you know, Amazon shopify. So it’s kind of what they get, and then what? We then modify that data in Snowflake, so that they, you know, the dim product, dim customer table is set. So we have all that dimensional data in one place. But if we were to instrument additional things it would

256 00:27:08.370 00:27:14.489 Aakash Tandel: probably be a limitation on what do we get from from the data sources? I’m not sure, Robert, if you have any other insight there

257 00:27:14.840 00:27:37.539 Robert Tseng: Yeah, that’s correct. I think. If there’s a net, new field or value that’s coming in from the data, if a net new value on an existing field. We don’t have to change anything, I think. That’s just, you know, changing the filters downstream. But if it’s a net new field in a data source. Then, yeah, we have to get it from the source. So you know, either Amazon or whatever

258 00:27:38.419 00:27:44.909 Robert Tseng: but then sometimes we’re asked for. You know, new ways of segmenting.

259 00:27:45.280 00:27:52.870 Robert Tseng: existing like creating a new field off of existing data like basically creating a a proxy, a proxy field, which.

260 00:27:52.970 00:28:07.129 Robert Tseng: if that’s the case and you can create it directly in Meta base kind of like the Fully Co. Fully loaded cogs. Kind of demo that. And he just gave. It’s like there isn’t a field that Amazon gives us that’s called fully loaded cogs

261 00:28:07.270 00:28:14.789 Robert Tseng: they may. And even the distinction between total price versus total line. Item price, I think, is an interesting one to point out.

262 00:28:14.980 00:28:28.759 Robert Tseng: and if we could go to fact orders, and then so I could hover so we could hover over total price versus total line item price. I want to call out something there so like total price. That’s what that’s what shopify would give us. It comes straight out of

263 00:28:29.660 00:28:41.040 Robert Tseng: there. I mean, that’s that’s an after tax like value. Whereas total line item price. That’s because we we sum up the price for each of the line items. And so there’s going to be a slight difference.

264 00:28:41.810 00:28:46.929 Robert Tseng: It’s it’s yeah. And and then we need to manually take out the discounts we need to take out.

265 00:28:47.070 00:29:03.960 Robert Tseng: We need to add shipping back into it. But the way that we’ve constructed the sales revenue metric is so that it’s before tax. And that’s why it’s different from what shopify gave us in total price. But we were able to construct it, using other fields that they did give us. So. I think a lot of the

266 00:29:04.630 00:29:09.950 Robert Tseng: the work that we do around there is either adding, adding new fields,

267 00:29:11.180 00:29:19.790 Robert Tseng: like net new fields, or creating new fields by using existing fields to do some sort of calculation on on top of them. So

268 00:29:19.790 00:29:23.400 Aman Nagpal: So total price is really just total order price, right

269 00:29:23.890 00:29:24.560 Robert Tseng: Yep.

270 00:29:24.840 00:29:35.609 Aman Nagpal: So whichever order this line item belongs to what was the full order price of that order, and then total line I line items. Price is for that specific line. Item.

271 00:29:36.618 00:29:43.310 Robert Tseng: Well, I mean at this level, it’s all aggregated to the order level. So it’s like every every line item

272 00:29:44.360 00:29:53.700 Robert Tseng: like the price the individual price of the items before discount. Before shipping they get summed up into total item price. So you could call that like the

273 00:29:53.920 00:29:55.389 Robert Tseng: I don’t know, like the gross

274 00:29:55.800 00:30:04.099 Robert Tseng: price of of the of of all the line items. But total prices is after tax after discount, and includes shipping

275 00:30:06.720 00:30:13.989 Aman Nagpal: Got it, and this is is in is inclusive of Amazon. Shopify everything. This table

276 00:30:14.520 00:30:14.850 Robert Tseng: Yep.

277 00:30:16.730 00:30:17.450 Aman Nagpal: Got it

278 00:30:19.060 00:30:33.290 Aakash Tandel: Yeah. And like, Robert was mentioning earlier, a lot of this can happen either at the database level or in the visualization level which Meta base is at it just depends on how you want to handle that. And honestly, there’s an engineering component to

279 00:30:33.290 00:30:57.479 Aakash Tandel: putting that model more in the database side of things. So if it’s something you’re using a lot. And it’s like, Hey, this is something that just makes more sense to have readily available for the analyst to put into a bunch of different dashboards. That’s when I typically like to think about putting that in the database side as opposed to like, hey? If it’s a you know one off question or a question, we only this one team asks kind of regularly. Then you put it kind of in the dashboard. So there’s no hard and fast

280 00:30:57.480 00:30:59.300 Aakash Tandel: role. But that’s kind of what I like to think about.

281 00:31:00.420 00:31:00.850 Robert Tseng: So like.

282 00:31:00.850 00:31:01.630 Aman Nagpal: Example, yeah.

283 00:31:01.630 00:31:18.520 Robert Tseng: Yeah, I was gonna say, so like the sales revenue. For example, if we’re gonna end up using that beyond this dashboard, which it looks like we will. I will probably. I mean, I would probably push for the team to add this into the the model itself, so we don’t have to calculate it every time and create a new portal with sales, revenue

284 00:31:19.130 00:31:23.700 Aman Nagpal: That’s actually a good segue. So where we’re looking at

285 00:31:23.870 00:31:26.359 Aman Nagpal: Meta Base right now, this table.

286 00:31:26.620 00:31:31.589 Aman Nagpal: whatever we see here is exactly how it is in Snowflake. If you were to do what you just said.

287 00:31:32.269 00:31:34.560 Aman Nagpal: where would that happen? And what would that look like

288 00:31:36.050 00:31:52.210 Robert Tseng: So that would happen in. I mean, we would push like, you know, we have all we do, all of our kind of code or the code base entirely managing Github. And so somebody would create a Pr kind of like you would do in a software engineering out of environment.

289 00:31:52.520 00:31:57.149 Robert Tseng: And then it’s it would be added to a Dbt model. So

290 00:31:58.150 00:32:07.200 Robert Tseng: yeah, like, in in Snowflake, Dbt, models are basically SQL worksheets that are all stitched together. They’re fired off in a sequence. So that

291 00:32:07.730 00:32:13.209 Robert Tseng: like, it goes yeah, like from from the raw tables, it’ll

292 00:32:13.410 00:32:21.200 Robert Tseng: trigger like will trigger multiple models. That kind of. There’s multiple layers of dependency to get it from one version to another.

293 00:32:21.943 00:32:22.930 Robert Tseng: But yeah.

294 00:32:24.110 00:32:27.450 Aman Nagpal: I think that would be a great example if we’re able to go over. That is

295 00:32:27.670 00:32:37.120 Aman Nagpal: what did something look like initially, whether it’s intermediate, or whatever it is, pull up one dvt, you know.

296 00:32:37.420 00:32:45.929 Aman Nagpal: Snippet, take a look at what that snippet is actually doing and what it results in visually. If that’s something we can look at

297 00:32:46.910 00:32:48.930 Robert Tseng: Sure I can. I can. I can share that

298 00:32:49.090 00:32:49.780 Aakash Tandel: Great. Yeah, I was gonna say.

299 00:32:50.310 00:32:53.700 Aakash Tandel: might not be the right person for that. But yeah, Robert, if you want to do that.

300 00:32:54.920 00:32:58.830 Robert Tseng: Let me pull it up so

301 00:33:31.260 00:33:44.170 Robert Tseng: alright. So this is kind of the same view that Annie was showing earlier, and then I have what we have in Github. So starting from the raw. So the raw, this is like what we get straight up. Api, we’ve kind of already.

302 00:33:45.295 00:33:48.599 Robert Tseng: Like, you know, we’re basically just

303 00:33:49.270 00:33:56.993 Robert Tseng: looking at every field that we get. And then if we needed to, we need to clean data types there, we we set it as different things.

304 00:33:57.510 00:34:02.090 Robert Tseng: they’re far charger floats. So making sure that all the data types come in as expected.

305 00:34:02.867 00:34:09.460 Robert Tseng: and then organizing it so that we’re renaming things in in a in a way that’s kind of sensible.

306 00:34:09.922 00:34:15.666 Robert Tseng: So that’s like kind of the 1st raw kind of step, and then

307 00:34:17.760 00:34:26.439 Robert Tseng: now, if we go to, let’s go like an intermediary sales mark. So this is where I guess.

308 00:34:27.449 00:34:33.790 Robert Tseng: Yeah. First, st I I was just showing you shopify. So in this model. Now we have kind of pulling in

309 00:34:34.030 00:34:36.169 Robert Tseng: the fields that we want from Rob.

310 00:34:37.303 00:34:41.240 Robert Tseng: Some light renaming there again, and then we start to

311 00:34:42.590 00:34:49.460 Robert Tseng: some labels that are, you know, pretty typical. So like new versus returning customers like, that’s

312 00:34:50.650 00:34:58.989 Robert Tseng: that’s something that you know, the joby team wants to like every cut. And so we’re defining that here in this, in this layer.

313 00:34:59.900 00:35:08.369 Robert Tseng: And then we’re kind of unioning or joining this with some like with the Amazon data as well, so then we have this layer of back orders.

314 00:35:10.490 00:35:11.716 Robert Tseng: and then

315 00:35:12.750 00:35:18.800 Robert Tseng: Oh, I guess at that point that was already that was already at the final there. Sorry I skipped the step. So

316 00:35:19.740 00:35:30.929 Robert Tseng: yeah. And the shopify order kind of this is actually the intermediary layer. Sorry. So it’s like, Okay, there’s all these different. I was like that. Look way, too clean to be an intermediary model. There are

317 00:35:31.270 00:35:32.310 Robert Tseng: are.

318 00:35:33.780 00:35:45.320 Robert Tseng: yeah, we basically have to calculate every field here. So like discounts discount at the order level. A fees. Maybe pick something more complicated here. Tags. Product costs.

319 00:35:46.820 00:35:47.490 Robert Tseng: Wow

320 00:35:51.010 00:35:55.630 Robert Tseng: additional details. I mean, I guess the shopify data is pretty straightforward at this point.

321 00:35:55.960 00:36:04.060 Robert Tseng: Okay, great. So like processing fee here, it’s like, okay, this was a hard, coded assumption here that we know it’s all true. This is the

322 00:36:05.420 00:36:11.610 Robert Tseng: after tax fee, the after tax order price times.

323 00:36:11.760 00:36:18.529 Robert Tseng: you know, 2.9% plus 30 cents. And that’s the processing fee that we want to apply to all orders. So that’s like defined here.

324 00:36:19.074 00:36:27.349 Robert Tseng: So it’s like any of those hard, coded assumptions that we need to make that apply universally to any sort of shopify order.

325 00:36:28.250 00:36:43.089 Robert Tseng: Or if there are like certain ways that we want to aggregate the data already, like, what does, how do we like? Consider it discounts or fee amounts, or whatever? That’s all kind of taken care in this layer. And so by the time it gets to the mark layer of like the back orders.

326 00:36:43.270 00:36:50.080 Robert Tseng: It’s generally like, we’re not really doing any more significant. I guess we are doing like

327 00:36:50.290 00:37:09.910 Robert Tseng: math here still. But it’s it’s this is like a separate step. This is like for the platform fee, or whatever. So the point is just that you can trace like for any fee like. If you were to view this I were to take processing fee, and I would look into Github. I would know exactly where it was, where it was calculated in a cleaner way.

328 00:37:12.270 00:37:21.030 Robert Tseng: because before you know, these tables would pretty much just be like a massive like file that’s called a scheduled query

329 00:37:21.694 00:37:31.729 Robert Tseng: and it would be very hard to debug or dissect, like what’s actually going on in there. So this is really, this mode of development is really just for organization

330 00:37:32.400 00:37:48.519 Robert Tseng: and ensuring that like, when you make one change, it will impact everything that’s dependent on it. So you don’t have to do redundant calculations across multiple across multiple sequel models.

331 00:37:50.410 00:37:55.280 Robert Tseng: So point is that this final table is basically what you see here

332 00:37:55.590 00:38:00.730 Aman Nagpal: Yeah, muted. I was saying 2 questions. Here one is, what app is this? On the left

333 00:38:01.280 00:38:02.790 Robert Tseng: This is gate. Huh?

334 00:38:03.800 00:38:10.330 Aman Nagpal: Oh, I haven’t actually used this app I’ve only used. I haven’t seen the code

335 00:38:11.380 00:38:20.480 Aman Nagpal: in their app. I’ll check that out and number 2. So you let’s say, processing fee, that’s a good example. Right? I would go to if I go to Snowflake.

336 00:38:20.650 00:38:27.639 Aman Nagpal: Look at this table orders. It’s not gonna have it in, let’s say the raw.

337 00:38:27.860 00:38:34.059 Aman Nagpal: But if I go to Snowflake Intermediate, it will show it based on what we’ve done here in Dvt.

338 00:38:34.750 00:38:35.400 Robert Tseng: Yep.

339 00:38:36.160 00:39:03.199 Aakash Tandel: Yeah, basically, your business logic is going to be built into the code here in these Dvc models. So you know, sometimes people pull that out. And they put documentation together. The problem with that is, it always gets out of date. So it’s honestly better if you guys can just go in and look at the code and say, Hey, look, this is where we’re defining that processing order fee type of thing, because it’s like directly, exactly what it’s doing, and then you can go back to the database and say, Okay, here, that’s how they derive this thing

340 00:39:04.790 00:39:09.410 Aman Nagpal: Got it? Okay? And what does that look like in Snowflake, I guess. Does it

341 00:39:09.820 00:39:12.700 Aman Nagpal: show show that this is, you know.

342 00:39:13.010 00:39:16.410 Aman Nagpal: from code, this column? Or how does that, or look

343 00:39:17.130 00:39:22.320 Robert Tseng: Oh, yeah, and stuff like, it’ll just look like this like you won’t see the actual underlying calculation

344 00:39:23.580 00:39:28.249 Aman Nagpal: So if we were look to look for processing here, it just looks like a regular column

345 00:39:28.490 00:39:32.386 Robert Tseng: Yeah, it would just look like whatever is here.

346 00:39:37.350 00:39:43.790 Aman Nagpal: So maybe this is a better question. If they weren’t named correctly. Right? Raw versus factor intermediate.

347 00:39:43.900 00:39:50.830 Aman Nagpal: It was just orders one and orders 2. How could I know which one is the raw data and which one is after code

348 00:39:57.930 00:40:02.030 Robert Tseng: I’m not following. Did anyone else understand that question?

349 00:40:02.390 00:40:08.439 Aakash Tandel: Followed the question. I don’t know the answer you’re saying like, is there a way to see like

350 00:40:08.980 00:40:17.560 Aakash Tandel: the like? Maybe the are you looking for like? Does this have a source of a like an Api? Is that kind of what you’re looking at? Or

351 00:40:17.560 00:40:22.539 Aman Nagpal: Yeah, like, portable or 5 trainer pulling data into Snowflake. Right? So

352 00:40:22.790 00:40:29.829 Aman Nagpal: let’s say, it was just orders from 5 Tran. It’s in a table called Orders one right? Then we

353 00:40:30.100 00:40:51.299 Aman Nagpal: clean it up with Dbt, and we put everything in a table called Orders to. Now somebody new on the team comes in. They’re not named raw, etc. There’s just one and 2. It’s not correct. How can they go to Snowflake and view the fact that one of them is just the raw data from 5 trend, and the other one was, after all, of the cleaning up from Dbt.

354 00:40:51.580 00:41:00.010 Robert Tseng: But yeah, so that’s why the analysts that would just not look at Raw. They would just go to the marks, because that’s already a post cleanup for everything. So you know, like when something

355 00:41:00.010 00:41:10.750 Aman Nagpal: That’s what I mean, right? If if we don’t name them correctly, if they’re not named raw, they’re not named, whatever. How can you tell in Snowflake, which one is raw and which one is after calculations and code

356 00:41:11.280 00:41:18.090 Robert Tseng: But yeah, I mean you, you probably would not like if you just, you know, that’s yeah. I think that’s that was the

357 00:41:18.340 00:41:28.829 Robert Tseng: that was probably even. That’s why Dbt, even like existed. Because data teams were just like, why are there 5 processing fee definitions floating around? Nobody knows which one to use

358 00:41:31.560 00:41:42.049 Aman Nagpal: How about just the fact? Just the table itself, right? Which one is raw and which one is after? Dbt, how can we tell that in Snowflake, without the titles of the tables

359 00:41:44.310 00:41:45.579 Aman Nagpal: you follow what I’m saying

360 00:41:46.220 00:41:48.489 Robert Tseng: Well, yeah, I’m saying you you can like you can

361 00:41:48.490 00:41:49.440 Aman Nagpal: No, you can’t at all

362 00:41:49.440 00:41:50.040 Robert Tseng: Yeah.

363 00:41:51.460 00:42:00.180 Aman Nagpal: So if if there was no titles, I go into Snowflake, there’s absolutely no way to tell which one is from 5 tran, and which one is after cleanup

364 00:42:00.760 00:42:15.410 Robert Tseng: Yeah, I mean, assuming that every model was named the same thing, and it was just a bunch. It was a repository of all the same like with no name. Sequel sheets. Yeah, you would just end up seeing a bunch of duplicate values, or or I mean, maybe you wouldn’t.

365 00:42:16.020 00:42:26.079 Robert Tseng: I I guess I wouldn’t say it’s impossible, like I I think you could use some deduction and be like, oh, like this. This orders table doesn’t have processing fee. It must be like.

366 00:42:26.700 00:42:31.919 Robert Tseng: you know, a step back from the one that does like. I don’t know but you’d be. You’d be guessing

367 00:42:32.290 00:42:32.849 Aman Nagpal: Got it.

368 00:42:32.850 00:42:35.349 Aman Nagpal: Okay? So yeah, that makes sense.

369 00:42:35.350 00:42:41.720 Aakash Tandel: Yeah, that’s actually what a lot of like companies have before they do stuff like this. So yeah, that that’s definitely it’s

370 00:42:41.720 00:42:43.657 Robert Tseng: Exactly why we we do this.

371 00:42:44.440 00:42:45.950 Vlad: Yeah, yeah.

372 00:42:45.950 00:43:13.280 Vlad: I have a quick question about the description, some dictionary of these fields. Because, yeah, I’ve tried to review based on Google spreadsheet, which any before share it in the chat. But they don’t have access. 1st of all, may ask you. I’ve already requested the access. And another thing. Yeah, I’ve discovered quite a lot of different. Some like city about the

373 00:43:13.890 00:43:36.050 Vlad: some in SQL. Query, I mean a lot of entities. Do you have it like separate dictionary for these like row tables which tables really in use for some aggregations which fields and their definitions, it will, it will really like speed up. Just, for example, me to to discover all the stuff

374 00:43:37.460 00:43:49.579 Robert Tseng: Yeah, I mean beyond the Google sheet that we shared Akash. We need to get to share, because, like a part of the Dbt. Workflow is like everything is kind of turned into every model is also turned kind of has a

375 00:43:49.770 00:44:08.429 Robert Tseng: has a pairing, has is paired with a yaml file. The Yaml file is just like a data documentation file. So that could be a a different view, especially if lot is going and looking at more detail, like, I feel like the Google sheet documentation is more appropriate for someone that’s like.

376 00:44:09.090 00:44:13.259 Robert Tseng: who’s just gonna pay attention to like how things are calculated, and not

377 00:44:13.410 00:44:20.770 Robert Tseng: necessarily like looking for the the like lineage, and and like the tech, the technical documentation.

378 00:44:21.530 00:44:32.639 Robert Tseng: But anyway, like we we do, we do generate this the Yaml files just I don’t. I don’t think they’re in Github, so we have to figure out how to get that to them.

379 00:44:32.640 00:44:50.199 Aakash Tandel: Yeah. Vlad, I also just sent you access to that so hopefully, you can get in if you can’t let me know. But yeah, yeah, I think what you’re saying is right, Robert, like for, like the business level stuff where you don’t care about the code, and you just want the understanding of like, how these metrics are like

380 00:44:50.310 00:44:57.820 Aakash Tandel: categorize that Google spreadsheets going to be good for. But if you want like code information, I think going through these files will probably be the best bet

381 00:44:59.560 00:45:14.397 Vlad: Okay, makes sense. Yeah, it will be great if you’re able to provide the access. Yeah. And I will discover it. And yeah, and for the seconds. For example, iteration of our like discussion and meeting. Yeah, I think it. It will be much more really applied questions

382 00:45:15.230 00:45:25.470 Robert Tseng: I mean, sounds like we just need to add into this Github repo, if you wanna like, if you want like, if you saw what I did there. I was just like, Oh, processing fee like I just checked it in. And I found the models and what they were calculating it so

383 00:45:25.470 00:45:42.719 Vlad: Yeah, totally understand this. Yeah, how to apply the search inside the github? Yeah. But sometimes it’s not obvious, like the usage or some aggregation type for for specific field without the context and understanding. Yeah, like like that.

384 00:45:46.150 00:45:56.260 Aman Nagpal: As I try to wrap my head around this. So what you know our discussion earlier about doing it in the database versus doing it in the visualization tool. I guess something like Omni.

385 00:45:56.795 00:46:00.959 Aman Nagpal: I think you guys have the demo as well. Right? That’s kind of the only one where

386 00:46:01.440 00:46:07.880 Aman Nagpal: you can do it on the visualization and then push it back into Dbt

387 00:46:08.300 00:46:11.360 Aman Nagpal: from the visualization. Right? Do you? Usually you can’t do that

388 00:46:11.360 00:46:32.310 Robert Tseng: Yeah, usually, you can’t do that. So that speeds up the development because the problem with Dbt development is like, yeah, it makes things cleaner, but it’s slow, or because, you know, you have to run it through this pipeline, or whatever. So the fact that omnia can push can push back into Dbt directly is, you know, obviously a a big, a big plus

389 00:46:32.970 00:46:35.879 Aman Nagpal: With light dash. I guess you can’t push it back, but it’s

390 00:46:36.530 00:46:48.050 Aman Nagpal: built in a way. Let me know if I’m misunderstanding this where it can kind of read the metrics from Dbt. More easily, and you can distinguish between each one more easily or no

391 00:46:49.014 00:47:15.489 Robert Tseng: I feel like you still run the same problem. It’s not like, it’s hard to translate something from like, basically on our team, like for the sales revenue thing. I basically will create a ticket. I’ll send them the logic that I had in Meta Base, and then I would probably just have. I guess, some like a waste or someone. He will go into the fact orders sequel file, and then he’ll make he’ll add the same logic there. There’s just like one step of translating

392 00:47:15.807 00:47:23.890 Robert Tseng: finding where to place it in the file, and to, you know, just to stick it in there, but, like the logic, would be the same as like what I already done in metase

393 00:47:24.710 00:47:30.580 Aman Nagpal: Got it on that note. How’s the dvt, I mean the light dash trial going? Are we good to test that soon?

394 00:47:32.113 00:47:37.456 Aakash Tandel: Utumn is working on that, so I’ll check with him to see how far he’s gotten.

395 00:47:38.000 00:47:44.899 Aakash Tandel: Awaish is back as of today. So if it’s something that utham hasn’t started yet, we’ll get awaish on it.

396 00:47:45.650 00:47:51.130 Aman Nagpal: Cool. Actually, one more question. I was looking at another tool. I don’t. If you can pull it up on your browser.

397 00:47:51.790 00:47:55.690 Aman Nagpal: It’s called steep app. Have you guys heard of it? Because I think it’s newer

398 00:47:56.340 00:47:56.960 Robert Tseng: Nope.

399 00:47:57.730 00:48:08.240 Aman Nagpal: So this one, if we pull up some screenshots, it might help me understand a little bit more. The way they do it is they have this left hand kind of key metrics.

400 00:48:08.865 00:48:13.910 Aman Nagpal: Area where you can put in metrics direct. Yeah, this you can put in metrics here.

401 00:48:14.423 00:48:22.910 Aman Nagpal: I guess this is the quote unquote, doing it in the visualization. Or if you connect to Dbt, you can pull in all of your metrics from Dbt.

402 00:48:23.100 00:48:39.939 Aman Nagpal: Here and do that instead. So would this kind of be a display of? I know you’re looking at this for the 1st time. But that metric screenshot would that be if we connected to Dbt. Just displaying all the different quote unquote metrics or breakdowns that we have in Dbt. Here, visually.

403 00:48:40.780 00:48:50.331 Robert Tseng: Yeah, I mean, this is the they probably just read the Yaml file. This is exactly what Dbt’s metrics layer does or like we. We should already be doing this.

404 00:48:50.650 00:48:51.160 Aman Nagpal: Got it

405 00:48:51.160 00:48:57.099 Robert Tseng: So, yeah, I think they just yeah, they just visualize it. Yeah.

406 00:48:57.100 00:48:58.530 Aman Nagpal: Metabase, or anything right

407 00:48:58.580 00:48:59.860 Robert Tseng: No, it’s not

408 00:48:59.860 00:49:00.460 Aman Nagpal: Got it.

409 00:49:02.400 00:49:09.969 Aman Nagpal: So actually, I was gonna try checking this out. There’s a couple of there’s like a free trial or something. I could just connect this this to Snowflake.

410 00:49:10.080 00:49:12.510 Aman Nagpal: Pull in the data from, let’s say.

411 00:49:12.740 00:49:15.740 Aman Nagpal: if I wanted to do raw or even.

412 00:49:15.900 00:49:20.539 Aman Nagpal: you know the the final one prodmarts and just play around with the data and

413 00:49:21.054 00:49:26.489 Aman Nagpal: make whatever reports I wanted to, that we’ve already done in Meta Base. Let’s say right

414 00:49:27.400 00:49:28.010 Robert Tseng: Yeah.

415 00:49:28.860 00:49:30.080 Aman Nagpal: Just to play around with it

416 00:49:30.810 00:49:51.230 Robert Tseng: Yeah, I mean, I think that’s that’s the benefit of us. Kind of having it in Snowflake. And you know you add it to everything now, so you can. You can plug it into any tool. We have no like, you know, winning. We have no winning force in this race. I think the point was really just. You know, the the trade offs. You make speed of development capabilities. And

417 00:49:52.330 00:49:56.510 Robert Tseng: I guess it’s the 3rd one that we- we talk about.

418 00:49:57.470 00:49:58.910 Robert Tseng: Well, anyway. Yeah. So

419 00:49:59.250 00:50:13.839 Robert Tseng: yeah, I mean, we we made Meta base with the budget that you gave us before. And if you want to try all these other tools like, go ahead. I think it’s just. It’s relatively easy to to move between tools at this point, because everything is is a fundamentally SQL.

420 00:50:14.720 00:50:26.919 Aman Nagpal: So even the okendo dash that you guys have made if we, you know getting that into light dash, or you know, yeah, light dash. What would the steps kind of be for that high, you know, low, level

421 00:50:28.157 00:50:42.119 Robert Tseng: Yeah, we would just plug in like the fact reviews. Model and then that’s pretty much. I think that’s all you would need. Then you can. You can use their visualization capability to recreate the same things

422 00:50:42.390 00:50:42.910 Aman Nagpal: So

423 00:50:42.910 00:50:48.569 Aman Nagpal: we still would need to manually, you know, select the types of visuals, visualizations we want from whichever data

424 00:50:49.490 00:50:50.870 Aman Nagpal: we couldn’t just

425 00:50:51.790 00:50:56.120 Aman Nagpal: take the sequel, I mean, could we take the sequel from metabase and plug it into light? Dash or no?

426 00:50:56.530 00:51:06.600 Robert Tseng: Yeah, maybe I think I haven’t looked at the light dash workflow yet, but if it’s also SQL, I mean, it is SQL. Based, then we should be able to just refactor the same

427 00:51:07.210 00:51:20.070 Robert Tseng: things from one place to another. The reason why we don’t build everything custom, SQL. And Meta base is because of if you build it out in their ui, where they’ve actually, they’re actually connecting the models to each other.

428 00:51:20.668 00:51:25.920 Robert Tseng: Like, I don’t know. Let me just maybe this is the last thing we’ll talk about before we jump off the call.

429 00:51:27.460 00:51:33.040 Robert Tseng: But let me go to like the gross dash.

430 00:51:34.900 00:51:36.420 Robert Tseng: So

431 00:51:36.740 00:51:46.879 Robert Tseng: okay, let’s talk about this one so like here that drill down that you can drill down into the underlying model like, that’s why we don’t do it in custom sequel. If we had built this report

432 00:51:47.280 00:51:57.349 Robert Tseng: just in custom sequel, it doesn’t establish the lineage across models, and so you would not be able to drill down. That’s the that’s the issue we had with the gorgeous dashboard when I showed you

433 00:51:57.966 00:52:00.100 Robert Tseng: and so I think that’s

434 00:52:00.630 00:52:08.350 Robert Tseng: I would say that’s probably the main thing that I would be looking at when I’m evaluating these tools like how easy it is to drill down to underlying models

435 00:52:08.650 00:52:12.980 Aman Nagpal: Could you narrow that down for me a bit this concept of drilling down

436 00:52:13.510 00:52:16.519 Robert Tseng: Yeah, drilling down is like, okay, so

437 00:52:18.410 00:52:29.430 Robert Tseng: and yeah, sorry, I’m just gonna pick on this one. Because I don’t think we actually updated it yet. So like, yeah, for like this, Macro, save cancellation rate kind of tab, like, obviously, this visualization visualization is there?

438 00:52:30.750 00:52:37.457 Robert Tseng: I guess we did update this one. But yeah, I don’t think we’ve updated it for like this.

439 00:52:38.040 00:52:43.810 Robert Tseng: model, for example, like, this one is just made in custom sequel. I think so

440 00:52:46.280 00:52:50.860 Robert Tseng: yeah, like it, because it doesn’t, hasn’t actually connected to like the

441 00:52:51.150 00:53:00.369 Robert Tseng: it gets. It’s just hooked up to a summary table and doesn’t doesn’t have the relation you haven’t established the join relation with, like the underlying fact model.

442 00:53:00.840 00:53:05.000 Robert Tseng: Like, you’re not able to to go in and figure out like which

443 00:53:05.700 00:53:11.220 Robert Tseng: particular oh, actually, wait! Did we update this already? So this is not actually, I’m not really sure

444 00:53:11.220 00:53:14.880 Annie Yu: I think, San Jose today, because the wish push that new model and

445 00:53:15.190 00:53:42.800 Robert Tseng: Okay, sorry. This was as of maybe a couple of days ago, and so still not not there yet. So never mind. This was not a great explanation. But yeah, you were not. We were not able to drill into these until we updated the model there pretty much it was just like sequel that just showed you 1,700 tickets used the same attempt. You couldn’t actually figure out who you from the Ui. You could not drill into like which which tickets are those specific

446 00:53:43.350 00:54:00.909 Aman Nagpal: So in amplitude. Right? Let’s say we make a chart at the top. You see the chart at the bottom. You see the actual table of the data that’s being displayed in the chart above. Right? So when you do this, see records, you’re talking about just seeing the table of data in that metric, or in that chart

447 00:54:01.120 00:54:08.120 Robert Tseng: Yeah, because every chart is a is an aggregation of of a of an underlying table. Yeah.

448 00:54:08.330 00:54:12.819 Aman Nagpal: But how can it be that if you do it one way versus the other, that

449 00:54:12.990 00:54:16.890 Aman Nagpal: you can see the chart? But you can’t see the table. If it has a chart.

450 00:54:17.110 00:54:23.930 Aman Nagpal: let’s say we did it sequel way. If it’s able to build a chart, wouldn’t you also be able to see the underlying table or no

451 00:54:24.705 00:54:30.550 Robert Tseng: Yeah, you can. If you run like the sequel. Query, it’s it’s just this is just the nuance here where it’s like.

452 00:54:30.790 00:54:32.400 Robert Tseng: if you just wrote it.

453 00:54:32.550 00:54:39.049 Robert Tseng: Yeah, it just wrote the Ross. If you just did it in SQL, it hasn’t actually connected it to like

454 00:54:39.260 00:54:53.040 Robert Tseng: the like an underlying table. So you can’t actually view the underlying table until you turn that query into a model, a model and a model and table are equivalent. You can think of it that way

455 00:54:53.600 00:54:59.739 Aman Nagpal: So if I were to say one way is saying, here’s the data. Now show me

456 00:54:59.860 00:55:12.509 Aman Nagpal: a table and show me a chart. Is the the new, the improved way versus. Here’s a sequel to show a chart. Then you would separately need to do. Here’s a sequel to show the table for that chart

457 00:55:12.680 00:55:13.950 Robert Tseng: Correct. Yeah.

458 00:55:14.710 00:55:16.790 Aman Nagpal: Got it an extra step there. Okay, that makes sense.

459 00:55:16.790 00:55:26.390 Robert Tseng: Yeah, every SQL query is turning data into a specific table that you want to use for visualization, or just to answer your question, or whatever

460 00:55:27.370 00:55:28.029 Aman Nagpal: Got it

461 00:55:28.330 00:55:28.890 Robert Tseng: Yeah.

462 00:55:29.390 00:55:34.800 Aman Nagpal: We got only about 3 min left. What other questions do you have, or anything else

463 00:55:36.360 00:55:49.463 Vlad: Honestly for present time. Yeah, I only need like access to Github. Yeah. And after that I will take time to review all things by myself. And yeah, I think,

464 00:55:50.270 00:56:04.279 Vlad: when we like plan, the next iteration of meeting, I will also prepare, like separately more detailed questions from my side based on process. And I think maybe based on some

465 00:56:04.650 00:56:06.100 Vlad: data details

466 00:56:07.150 00:56:09.250 Robert Tseng: Yeah lot. What’s your username? Let me just add you right now.

467 00:56:12.060 00:56:12.620 Vlad: Oh!

468 00:56:12.620 00:56:13.279 Aman Nagpal: Theater, but

469 00:56:13.586 00:56:14.199 Vlad: It’s hurting.

470 00:56:15.240 00:56:19.190 Vlad: Yeah, I need to. I need to remember

471 00:56:19.190 00:56:20.910 Robert Tseng: Just send it to me. No worries. Yeah.

472 00:56:20.910 00:56:24.127 Aman Nagpal: Yeah, let’s just I’ll just send both emails if you can.

473 00:56:24.710 00:56:27.169 Vlad: Add us via email. I’ll add it here

474 00:56:27.730 00:56:28.430 Robert Tseng: Yeah.

475 00:56:28.430 00:56:35.339 Aman Nagpal: On that note. What’s kind of the process can we take to make sure we have

476 00:56:35.600 00:56:42.320 Aman Nagpal: kind of ownership of whatever it is? Right. So the Google sheets to Snowflake portable i 0 5 tran

477 00:56:42.500 00:56:44.250 Aman Nagpal: metabase account.

478 00:56:45.176 00:56:46.959 Aman Nagpal: What am I missing?

479 00:56:47.760 00:56:51.319 Aman Nagpal: And dbt, or is it? Dbt cloud? I don’t even know the difference.

480 00:56:53.370 00:56:57.239 Aman Nagpal: That github repo. You know all that stuff

481 00:56:59.630 00:57:12.289 Robert Tseng: Yeah, I mean, it cost us just we just have to go through the list and transfer ownership for everything we already they already have ownership of metabase. I think we passed the billing to a month’s team like a while ago. But I think for the other things we can

482 00:57:12.600 00:57:39.730 Aakash Tandel: Cool. Yeah, I can. I can send it over a list of all the stuff in the stack I’m on, and then you can point me to who maybe just their email address, who should be owner on those things that we have redundancy built in? And yeah, typically, we want, like you all to have like the main ownership, just because, like billing and you know, you, someone within with a Java email should probably own the whatever tool we’re talking about. So yeah, that makes sense

483 00:57:40.140 00:57:54.449 Aman Nagpal: Yeah, you can just use my email with the double V for ownership of everything. And then my Github is a single V for now. But you know we I can change that later. Last question. The Snowflake Bill, I think, went up.

484 00:57:54.760 00:58:00.670 Aman Nagpal: I wanna say, if I’m looking at it right from 63 in January to 200 and

485 00:58:01.050 00:58:03.809 Aman Nagpal: end of February, I guess. One month apart

486 00:58:04.294 00:58:13.110 Aman Nagpal: and compute is $140 higher. So I’m just wondering where you think we’ll be at, or what causes caused the increase to go up any ideas

487 00:58:15.440 00:58:36.689 Robert Tseng: I mean, we’re just processing more data than we are since January. So I mean, unless we add significantly, unless we add like another big data source. And we basically, I would just look back to that January bill. What what did we not have plugged in, or what was turned off versus like what’s turned on now, and we would just have to. You know that. That’s probably that’s that’s that’s the difference.

488 00:58:37.480 00:58:48.810 Aakash Tandel: More, the more tools we integrate. Like the Klavios, the attentives, all, like North, means all that type of stuff. As soon as we integrate that that just sends more data to snowflakes. That’ll increase the cost. Yeah.

489 00:58:50.000 00:58:57.770 Aman Nagpal: Sounds good guys. Thank you for the call. Everybody and then, you know, we mean, Vlad can discuss and kind of see what else

490 00:58:58.020 00:59:01.650 Aman Nagpal: what other gaps there are, and maybe we can have another call or something

491 00:59:01.650 00:59:09.653 Aakash Tandel: Sounds good. Yeah, we might pull in someone else, and he might not be the best person for like the engineering thing. So yeah, and I’ll send over this

492 00:59:10.030 00:59:11.520 Aakash Tandel: recording as soon as it’s done.

493 00:59:11.980 00:59:16.570 Aman Nagpal: Thank you. And if you can ask with them to send over those looms as soon as possible. That’d be great, too.

494 00:59:16.570 00:59:17.859 Aakash Tandel: Yeah, sounds good.

495 00:59:18.290 00:59:19.249 Aman Nagpal: Well, thank you guys.

496 00:59:19.250 00:59:20.820 Annie Yu: Thanks so much, appreciate it, bye.

497 00:59:20.820 00:59:22.069 Robert Tseng: Okay. Bye. Everyone.