How to Measure Your Business the Amazon Way
Collaborative article between Dmitry Anoshin and BI Bites đȘ. Subscribe to our newsletter so you wonât miss any cool stuff!

Introduction
Amazon is known for its intense data-driven culture, and one of its secret weapons is the Weekly Business Review (WBR). Imagine the entire leadership team huddled every week, poring over a ton of metrics â thatâs exactly what happens at Amazon. In fact, Amazonâs executives review 400â500 metrics in a single 60-minute WBR meeting, and theyâve been doing this every week since the early 2000s.
Why go to such lengths? Because WBRs help leaders catch trends, spot issues, and make informed decisions faster than you can say âAlexa.â Itâs not just another meeting; itâs a powerful habit that keeps the company focused, accountable, and nimble in decision-making. If that sounds daunting, donât worry â weâre going to break down how you can apply a WBR framework to your business (with fewer than 500 metrics, we promise đ).
WBR Explained: What Exactly Is a Weekly Business Review?
A Weekly Business Review (WBR) is a regular, structured review of your businessâs performance that happens every week (yes, weekly â consistency is key!). In a WBR, you and your team look at a set of key metrics to understand how the business is doing and why. Amazon popularized this practice as a cornerstone of its management process. Every WBR meeting at Amazon follows a consistent format: a huge deck of charts and numbers covering everything from customer experience to sales to operations, presented in the same layout week after week (How Amazon Uses Input Metrics).
This routine might sound rigid, but itâs incredibly effective. By keeping the format identical each week, Amazonâs leaders can quickly spot anomalies or trends â itâs like flipping through a familiar photo album and instantly noticing what changed since last time.
So why does Amazon take WBRs so seriously? Because weekly reviews drive action. They answer three big questions:
What did customers experience last week? How did the business perform? Are we on track to hit our goals?
In practice, that means the WBR surfaces unfiltered facts about whatâs happening in the business and where itâs heading. If somethingâs off â say, a spike in customer complaints or a dip in sales â it gets noticed immediately. Discussion then focuses on why it happened and what to do about it. Think of the WBR as an early-warning system and a progress report rolled into one. Done right, it highlights problems andopportunities, so you can fix issues or double down on a success long before they grow big. No wonder Amazonâs teams treat WBR prep as sacred â itâs their ritual for staying tuned in to the business. And the result? More data-driven decisions and fewer âI didnât see that comingâ surprises đ .
Letâs check out a real example of WBR from Amazon where Dmitry spent 5 years

Yes, it was done in Excel and probably still running by Excel and my teams. It took 1â2 days to prepare WBR across all team in the org. Automation with Tableau was a game changer. Any automation is game changer.
Input vs. Output Metrics: Focusing on What You Can Control
One of the secret sauces in Amazonâs WBR is how they distinguish between output metrics and input metrics. So, whatâs the difference? In simple terms: output metricsare the results (the outcomes you want), and input metrics are the drivers (the things you do to influence those outcome. Amazon loves input metrics â and for good reason.
- Output Metrics are like the scoreboard. They tell you how youâre doing, but you canât change them directly. For example, in business this could be total revenue, number of customers, or profit â or even your websiteâs conversion rate. In life, an output metric might be your weight or exam score. These metrics are âlagging indicatorsâ â they lag behind the work that causes them. If your sales or conversion rate dropped last week, thatâs useful to know, but itâs just the result. Yelling âincrease!â at an output metric usually doesnât help (if only it were that easy! đ).
- Input Metrics are like the levers and dials you can turn to affect the outputs. They are controllable actions or processes that drive those result. Think of things like number of new products added to your catalog, website loading speed, marketing spend, customer service response time, etc. These are typically âleading indicatorsââ they lead to outcomes. The beauty of input metrics is that when one is off track, you know where to intervene. They give you a clear idea of what to fix or improve. For instance, if âwebsite uptimeâ (an input) fell, you can bet itâs impacting âorders placedâ (an output), and you know exactly which tech team to poke.
Amazonâs philosophy is to obsess over input metrics. Why? Because focusing on controllable inputs is how you eventually get the outputs you want. A famous anecdote drives this home: Jeff Bezos once met a CEO who was giddy that his companyâs stock price went up by 30 cents that day â a classic output metric. Bezos basically shrugged and noted the CEO had done nothing to cause that stock rise.
The lesson? Donât pat yourself on the back for outputs you donât directly control. Instead, zero in on the inputs you cancontrol (like improving customer experience, product selection, or co which in turn drive those outputs. Itâs like trying to lose weight â you canât just tell the scale to change (output), but you can exercise and eat right (inputs) and let those efforts reflect on the scale over time. By managing the right inputs, Amazon ensures the outputs (revenue, market share, customer satisfaction, you name it) take care of themselves. As one Amazon veteran put it, output metrics are important, but input metrics are what give you âclarity on the levers you can pullâ to improve those outcome. In short: control the inputs, and the outputs will follow.
eCommerce Example: WBR in Action at âSurfalyticsâ đââïž

Letâs bring this to life with a practical example. Meet Surfalytics,
our real eCommerce store that sells surfing gear and beach accessories. How can Surfalytics use a WBR and input/output metrics to ride the wave to success? đ
Imagine every Monday morning, the Surfalytics team holds a Weekly Business Review meeting. They look at a simple one-page report of last weekâs key stats. Hereâs how they might break it down and use those metrics:
- Conversion Rate (Output) â Last week, Surfalyticsâ conversion rate (the percentage of visitors who bought something) was, say, 2.5%, down from 3% the week before. Thatâs a red flag đ. In the WBR, the team asks âWhy did it drop?â They dive into input metrics behind conversion. It turns out the website load time increased by 1 second last week (perhaps due to a fancy new video on the homepage), and a couple of popular products were out of stock. Slower pages and missing products likely frustrated some shoppers, causing fewer checkouts. Aha! Now the team has actionable steps: optimize the site speed and urgently restock those popular items. By tackling these inputs, they expect conversion rate to bounce back rather than just hoping numbers magically improve.
- Traffic (Input) â Next, they review website traffic. Good news: traffic is up 15% week-over-week, thanks to a new Google Ads campaign đ. Traffic is an input metric because Surfalytics can control it (by adjusting ad spend, SEO, content marketing, etc.). Higher traffic usually leads to higher sales if other inputs (like site experience and product availability) are solid. The team notes that the campaign worked well. If traffic had been down, that would have signaled the need for action (maybe the marketing team paused ads or some referral source dried up, which theyâd address for next week). By tracking it weekly, theyâre never in the dark about their customer visits.
- Product Availability (Input) â Surfalytics tracks the in-stock rate of its top products. Last week, it was only 80%, meaning 20% of high-demand items were unavailable. Thatâs likely a big factor in lost sales â you canât sell what you donât have, and customers probably went âout of stock⊠ughâ and left. In the WBR, this metric prompts a plan: the inventory team will work with suppliers to raise that in-stock rate to 95%+. Product availability is a controllable input â the team can introduce better inventory management or reorder faster. Improving this input will directly boost output metrics like sales and customer satisfaction (fewer folks encountering out-of-stock messages). Lesson learned: always keep your best-sellers on the (virtual) shelves!
- Operational Efficiency (Input) â The Surfalytics crew also checks an operational metric: say, order fulfillment time (how fast orders are shipped out). They see it slipped from an average of 1 day to 2 days last week. Maybe the warehouse was understaffed or a process snag slowed things down. While customers havenât started screaming yet, a slower ship time could hurt the customer satisfactionscore or lead to higher refund requests (output metrics) if it continues. Because WBR highlighted this trend early, the operations manager can act now â perhaps put an extra team on duty or streamline packing for the coming week. By tightening this up (input), they keep the customer experience strong and prevent future issues. In essence, the WBR helps them dive deep into each part of the business, from web analytics to supply chain, and ensures every team knows where to focus their efforts before small problems become big ones.
Through this weekly routine, Surfalytics creates a continuous improvement loop. Each week they celebrate wins (đ€ high-five for that traffic boost) and confront challenges head-on. Over time, this leads to better and better performance. The marketing folks see how their campaigns translate to sales, the product team sees how selection and stock levels matter, and the operations folks see the impact of speedy delivery â itâs allconnected. The WBR turns vague goals like âincrease revenueâ into specific action plans: increase revenue -> improve conversion -> speed up site, keep products in stock, etc. Itâs business analytics made actionable and even a bit fun (with coffee and donuts in the meeting, of course!).
WBR in Tableau
Letâs create a WBR dashboard in Tableau! Weâll use the Sample Superstore Dataset for this project. If you prefer, you can simply download the workbook and reverse-engineer it. The final solution is available here.
To save time on dashboard layout, Iâll be using my free Dashboard Template. You can download it and start building your charts right away.
I recommend using the 3x2x1 layout and completely deleting the left column for a cleaner design.

Weekly Line Chart
This is Line Chart that shows Weekly Sales values, its Previous Period Sales (in this case previous Week) and itsâ Previous Year Sales.
- Build the Chart Axes
1.1 Drag Order Date
to the Columns shelf. Change its granularity to Week
by clicking on the dropdown menu for Order Date
and selecting Week
.
1.2 Add Sales
to the Rows shelf

2. Create Calculations
You will need calculated fields for:
- Previous Week Sales. Letâs create a calculation called Sales Previous Period, because weâll use it in Previous Monthly Sales as well.
//**Sales Previous Period**
LOOKUP(ZN(SUM([Sales])), -1)
//LOOKUP function shifts the focus from the current row to one row backward
- Sales Previous Year Week. This one will be separate from monthly one because weâll calculate not -1 row, but -52, meaning 52 weeks ago.
//**Sales Previous Year Week**
LOOKUP(ZN(SUM([Sales])), -52)
//LOOKUP function shifts the focus from the current row to 52 rows backward
3. Combine Measures on the chart
3.1 Drag Measure Values
to the Rows shelf.
Filter by Measure Names to leave only Sales Previous Period
and Sales Previous Year Week
3.2 Create Dual axis between SUM(Sales)
and Measure Values
by right-click on Measure values â Dual axis. Synchronize axis by right-clicking on on the them â Synchronize axes.

4. Filter the chart
One of the tricks here is to filter for the last 6 weeks while still keeping all the LOOKUP
calculations visible. Due to the order of operations, we canât use the usual dimension date filter. Instead, we need to use a Table Calculation filter. For more details, refer to Tableau's Order of Operations.
This is why we create a filter calculation:
//**Filter Rank date (week)**
RANK(MAX(DATETRUNC('week',[Order Date])))
//Applies RANK to dates in the chart
Then, use this calculation to keep only the last 6 ranked weeks.

5. Customize the Marks
For SUM(Sales)
set up blue color. For Measure Names set up light grey for Sales Previous Period
and dark grey for Sales Previous Year Week
. Choose dashed line type for them.
6. Formatting
- Hide right axis by right click â Un-click Show header.
- Remove date axis title.
- Remove Column and Row dividers. Remove Grid Lines.
- Use grey for axes text.
More about Formatting in Tableau: https://help.tableau.com/current/pro/desktop/en-us/formatting_worksheet.htm
- Add legend via the Sheet title â fact âprevious week â â previous year

Monthly Line Chart
This is Line Chart that shows Monthly Sales values, its Previous Period Sales (in this case previous Month) and itsâ Previous Year Sales.
For a monthly line chart, the logic is the same.
The only differences are:
- Sales Previous Year Month: This calculation helps find the sales from the same month in the previous year.
//**Sales Previous Year Month**
LOOKUP(ZN(SUM([Sales])), -12)
//LOOKUP function shifts the focus from the current row to 12 rows backward (yar ago)
- Filtering the chart to display only the last 6 months.
//**Filter Rank date (month)**
RANK(MAX(DATETRUNC('month',[Order Date])))
//Applies RANK to dates in the chart
Now you can place both of these charts on the dashboard.

Weekly KPI Card
This is KPI card that shows Last Week Sales values, its Period over Period % change (in this case % WoW) and Year over Year % Change.
This is not an essential part for the WBR but it can be useful to look at the charts together with KPI cards.
- Build the KPI structure
1.1 Drag Order Date
to the Columns shelf. Change its granularity to Week
by clicking on the dropdown menu for Order Date
and selecting Week
. Make it Discrete.
1.2 Add Sales
and WEEK(Order Date)
(you can copy it by Cmd/Ctrl+Drag the pill from 1.1) to the Text in the Marksshelf.
Go to the text and add text âSalesâ on top of the SUM(Sales)
Apply formatting:
- black color and size 22 for SUM(Sales)
- black color and size 14 for âSalesâ text
- grey color and size 10 for WEEK(Order Date)
- Apply Custom Date Formatting to WEEK(Order Date):
dd mmm
. More about Custom Date Formats - left-align all text

At the end youâll get something like that

2. Create Calculations for PoP
Weâll reuse some of the previously calculated fields, like Sales Previous Period
and Sales Previous Year Week
- Firstly, letâs create the one to calculate % difference between periods â
Sales % PoP.
//**Sales % PoP**
(ZN(SUM([Sales])) - [Sales Previous Period]) / [Sales Previous Period]
- Now we need two more calculations to create ââ % for the KPI card on the basis of
Sales % PoP
//**Sales % Neg**
IIF([Sales % PoP] < 0,
'â' + STR(ROUND([Sales % PoP]*100,1)) + '%','')
//Here we check if the % PoP was **negative** and if yes we add arrow down â and % result.
//**Sales % Pos**
IIF([Sales % PoP] > 0,
'â+' + STR(ROUND([Sales % PoP]*100,1)) + '%','')
//Here we check if the % PoP was **positive** and if yes we add arrow up â and % result.
3. Add PoP to the KPI card
Now we can add them to the KPI card design. Just place Sales % Neg
and Sales % Pos
them in the to the Text in the Marks shelf.
Now the trick would be to apply formatting, Since the Sales % PoP
****canât be both positive and negative at the same time, weâll only see Sales % Neg
OR Sales % Pos
.
So in the text we color Sales % Neg
in red-orange and Sales % Pos
in blue-violet and add âWoWâ at the end.

4. Create Calculations for Week YoY
Now letâs create the rest of the calculations for the KPI card â YoY.
- Firstly, letâs create the one to calculate % difference between years â
Sales % WoW YoY
//**Sales % WoW YoY**
(ZN(SUM([Sales])) - [Sales Previous Year Week]) / [Sales Previous Year Week]
- Now we need two more calculations to create ââ % for the KPI card on the basis of
Sales % WoW YoY
//**Sales % Neg WoW YoY**
IIF([Sales % WoW YoY] < 0,
'â' + STR(ROUND([Sales % WoW YoY]*100,1)) + '%','')
//Here we check if the % YoY was **negative** and if yes we add arrow down â and % result.
//**Sales % Pos WoW YoY**
IIF([Sales % WoW YoY] > 0,
'â+' + STR(ROUND([Sales % WoW YoY]*100,1)) + '%','')
//Here we check if the % YoY was **positive** and if yes we add arrow up â and % result.
5. Add YoY to the KPI card
Do the same as in the 3rd point by adding Sales % Neg WoW YoY
and Sales % Pos WoW YoY
to the text and formatting it.

You should get smth like that at the end.

6. Filter by last week
To filter by last week we can use Filter Rank date (week) calculation and leave only 1st one.

Monthly KPI Card
This is KPI card that shows Last Month Sales values, its Period over Period % change (in this case % MoM) and Year over Year % Change.
For the monthly card the logic is the same.
But instead of Sales % WoW YoY
calculate Sales % MoM YoY
using Sales Previous Year Month
//**Sales % MoM YoY**
(ZN(SUM([Sales])) - [Sales Previous Year Month]) / [Sales Previous Year Month]
And based on it the same calculations for Sales % Neg MoM YoY
and Sales % Pos MoM YoY
Filter by Filter Rank date (month)
to leave only 1st rank.

Now you can add both KPI cards on top of the Line Charts

Table Weekly
This is the table that shows Weekly Sales values, its Period over Period % change (in this case % WoW) and Year over Year % Change.
- Drag
Order Date
to the Columns shelf. Change its granularity toWeek
by clicking on the dropdown menu forOrder Date
and selectingWeek
. - Add Segment and Measure Names to Rows**.** Drag
Measure Names
to the Rows shelf. - Add Measure Values to the Text in the Marks.
- Filter by Measure Names to leave only
SUM(Sales)
Sales % PoP
Sales % WoW YoY
All these calculations were created during the KPI card creations.

5. Change Marks type from Text to Square.
6. Add Measure Values to Color in the Marks.
7. Use Separate Legends for Measure Values.

8. Set up colors.
For Sales % PoP
and Sales % WoW YoY
choose diverging colors, I use red orange ##FF7E79 and blue violet #7A81FF

For SUM(Sales)
I also use diverging colors but put white #FFFFFF on both side so the cells with SUM(Sales) wonât be colored.

9. Filter by last 6 weeks
To filter by last week we can use Filter Rank date (week)
calculation and leave 1-6 ranks.
10. Add worksheet title âWEEKLYâ

Table Monthly
This is the table that shows Monthly Sales values, its Period over Period % change (in this case % MoM) and Year over Year % Change.
For Table Monthly the logic is the same.
But instead of Sales % WoW YoY
use Sales % MoM YoY
and Filter Rank date (month)
for filtering.
I also removed Last unclosed month from it for use case purposes by using
//Filter Last unclosed month
DATETRUNC('month', [Order Date])<{MAX(DATETRUNC('month', [Order Date]))}
Hide Segment and Measure Names by right-click â unclick Show header.

Table MTD
This is the table that shows MTD â Month to Date Sales values, its Period over Period % change (in this case % MoM) and Year over Year % Change. MTD measures the performance of a metric from the start of the current month up to the present day.
For MTD Table we gonna need a bit more calculations.
- First letâs calculate current
MTD Sales
â sales from the start of the current month till the last available day. For example, if today is 20 November 2024, weâll calculate the SUM of Sales from the 1st of November to 20th of November.
//**MTD Sales**
IIF(
[Order Date] <= {MAX([Order Date])}
AND
YEAR([Order Date]) = {MAX(YEAR([Order Date]))}
AND
MONTH([Order Date]) = MONTH({MAX([Order Date])}),
[Sales],
NULL)
2. Now Previous month MTD Sales
â sales for the same period as current MTD but month ago. For example, if today is 20 November 2024, weâll calculate the SUM of Sales from the 1st of October to 20th of October.
//**Previous month MTD Sales**
IIF(
[Order Date] <= DATEADD('month', -1, {MAX([Order Date])})
AND
YEAR([Order Date]) = YEAR(DATEADD('month', -1, {MAX([Order Date])}))
AND
MONTH([Order Date]) = MONTH(DATEADD('month', -1, {MAX([Order Date])})),
[Sales],
NULL)
3. Now weâll calculate the % difference between 1. and 2. to get MTD Sales % PoP
//**MTD Sales % PoP**
(SUM([MTD Sales])-SUM([Previous month MTD Sales]))/
SUM([Previous month MTD Sales])
4. Next weâll need Previous year MTD Sales
â sales for the same period as current MTD but year ago. For example, if today is 20 November 2024, weâll calculate the SUM of Sales from the 1st of November 2023 to 20th of November 2023.
//**Previous year MTD Sales**
IIF(
[Order Date] <= DATEADD('year', -1, {MAX([Order Date])})
AND
YEAR([Order Date]) = {MAX(YEAR([Order Date]))} - 1
AND
MONTH([Order Date]) = MONTH({MAX([Order Date])}),
[Sales],
NULL)
5. And YoY change between current MTD Sales
and Previous year MTD Sales
//**MTD Sales % YoY**
(SUM([MTD Sales])-SUM([Previous year MTD Sales]))/
SUM([Previous year MTD Sales])
6. Create the table.
The logic of table creation is the similar to the Tables Weekly/Monthly.
6.1 But to columns put Last Month Date
//**Last Month Date**
{MAX(DATETRUNC('month',[Order Date]))}
6.2 Use MTD Sales
, MTD Sales % PoP
, MTD Sales % YoY
as measures for Rows.
6.3 Hide Segment and Measure Names, apply formatting.

Table QTD
This is the table that shows QTD â Quarter to Date Sales values, its Period over Period % change (in this case % QoQ) and Year over Year % Change. QTD measures the performance of a metric from the start of the current quarter up to the present day.
All the calculations for QTD are similar to MTD but instead of âmonthâ use âquarterâ.
You can check all of them in the Tableau workbook.
Table YTD
This is the table that shows YTD â Year to Date Sales values, its Period over Period % change (in this case % YoY). YTD measures the performance of a metric from the start of the current year up to the present day.
For the table instead of % PoP weâll put MIN(NULL) to have the line but not to put values in it.
All the calculations are similar to MTD but use âyearâ instead of âmonthâ.
You can check all of them in the Tableau workbook.
Tables all Together
To create a full table weâll use all the one we previously created and put them into the horizontal container one by one. Make 0 paddings and apply Fit â âEntire viewâ.
Between these tables you can put Blank objects with grey background 0 paddings and 1pt width.

Useful sources:
- Cedric Chin, Commoncog: âThe Amazon Weekly Business Review (WBR)â â Describes Amazonâs WBR meeting cadence and its role in Amazonâs data-driven ( The Amazon Weekly Business Review (via Bezosâs Shadow) â Commoncog ).
- Paul Duvall, Mastering Weekly Business Reviews â Highlights how WBR is used as a mechanism to analyze trends and drive account (Mastering Weekly Business Reviews: Insights from Amazonâs Iconic WBR) (Mastering Weekly Business Reviews: Insights from Amazonâs Iconic WBR)â L56-L59ă.
- Holistics.io Blog: âHow Amazon Uses Input Metricsâ â Explains Amazonâs focus on controllable input metrics vs. output metrics (How Amazon Uses Input Metrics) (Input Metrics for Business Growth: A Guide to Defining and Measuring Key Drivers).
- WorkingBackwards.com, âInput Metrics & Weekly Business Reviewâ â Defines input and output metrics (controllable inputs that improve customer experience vs. lagging outputs (Input Metrics for Business Growth: A Guide to Defining and Measuring Key Drivers). Also outlines Amazonâs practice of reviewing metrics weekly, and how this fits into broader monthly/quarterly (Amazon Operating Cadence â Working Backwards).
- The North (thenorth.io): âInput metrics vs Output metricsâ â Provides a simple overview of inputs (actions you control) vs outputs (results you want) (Input metrics vs Output metrics â The North) (Input metrics vs Output metrics â The North).