Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Part 1 - Metrics design (30 points)

The Operation’s Research team has developed a new optimization model to encourage
couriers to move from certain zone to another in a specific time of the day, for each one of
the cities. The objective of this model is to better allocate couriers and maximize the chance
that there is an available courier for each one of the orders created by the app users. One of
the main challenges in this problem is that a courier is free to move anywhere he likes, so
the team needs to be creative in the incentives that they give to couriers to encourage them
to move to different zones.

This project represents a milestone in Rappi, and the team is sure it will help to have an
efficient operation that improves the user experience.

1. What do you think are the main variables that the team used, studied or took into
account when developing this optimization model?

2. Propose and define the primary success metric for measuring the impact of the
optimization model in Rappi’s operation. What are 2-3 additional tracking metrics that
would be important to monitor (in addition to the primary success metric defined
above)? Why?

3. Outline a testing plan for evaluating if the performance of Rappi improved after
deploying the model (according to the metrics you outlined). How would you balance
the need to deliver quick results, with statistical rigor, while still monitoring for risks?

4. Explain how you would translate the results from the testing plan into a decision on
whether to keep the model or roll it back.

Part 2 - Programming (20 points)

Write the following functions in the programming language of your choice (e.g. R, Python,
Visual Basic, Java, etc.). You can only use control flow structures (e.g if-then-(else), for
loops, while loops, etc.). It is not allowed to use predefined functions, packages, or libraries.

1. Given a list of integers of size n, write a function that computes the differences
between the minimum and maximum number (do not use max() or min() functions).

2. VLOOKUP (BUSCARV) Microsoft Excel function with the following parameters:


(Searched value, matrix, column indicator). For an explanation of this function you can
use the help feature of Microsoft Excel.

Part 3 -- Data analysis (50 points)

Rappi’s Operations team is interested in decreasing the number of orders that are not taken
by any courier, due to the fact that they are not attractive enough for couriers. To solve this
problem, we have provided a sample of orders created in September 2017.
Your objective is to use this dataset to help Rappi understand which factors determine
whether an order is going to be taken by a courier, and offer recommendations to take
actions based on your insights to improve Rappi’s operation.

Below you can find a detailed description of the dataset. Please include any
code/spreadsheet you wrote/build for the analysis and delete the dataset when you have
finished the challenge. In addition, please detail any assumptions you may need or explain
any issues you may encounter.

1. Perform any cleaning, exploratory analysis, and/or visualizations to use the provided
data for this analysis (a few sentences/plots describing your approach will be
enough).

● How many orders were not taken by any courier?


● What weekday has the higher percentage of non-taken orders? (20 points)

2. Make an analysis to help Rappi determine whether or not an order is going to be


taken by a courier. Discuss why you chose your approach, what alternatives you
considered, and any concerns you may have (20 points).

3. Briefly discuss how Rappi can take advantage of the insights gained from your
analysis to increase the number orders taken by our couriers (10 points).

Codebook

Column name Description

order_id Order ID

store_id Store ID of the order

to_user_distance Distance (km) between store and user location

to_user_elevation Difference in meters between the store and user altitude ( m.a.s.l.)

total_earning Courier’s earning by delivering the order

created_at Timestamp of order creation

taken Takes the value of 1 if the order was taken by a courier, 0


otherwise.

You might also like