Otimização do Centro de Delivery

Introdução

O projeto foi feito através de uma base de Delivery Center, disponibilizada no Kaggle e instruída dentro do curso do Universidade dos Dados, que apresenta as demandas do atendimento aa diversas áreas que o projeto atende.

No projeto foi feito utilizando o SQL e Python, junto a ele foi feito o uso de estatística descritiva, como medidas estatísticas e tabelas de frequência, analise exploratória e as duas ferramentas para entregar e concluir as demandas e perguntas passadas pelas partes interessadas

Os arquivos, perguntas e consultas, estão disponíveis no meu GitHub.

Desenvolvimento do Projeto

Contexto e Objetivo

O Delivery Center é uma plataforma de de diferentes lojistas e marketplaces, que criou um sistema saudável para vendas de produtos e comidas dentro do mercado brasileiro, que conta com milhares de itens, pedidos e entregas que são operacionalizados diariamente.

O sucesso do negócio, visa utilizar cada vez mais dados para tomada de decisão, com isso o objetivo do projeto, é aplicar uma análise com dados para entender os principais pontos positivos e negativos da nossa operação do dia a dia.

Com base nisso, as áreas de negócio nos passaram algumas demandas e perguntas, que vamos utilizar dados para poder tomar a melhor decisão possível.

Com isso o projeto foi dividido em três partes:

Coleta e Tipos de Dados

As bases foram disponibilizadas em CSV e realizei a importação dentro do ambiente SQL para realizar as duas análises nas diferentes ferramentas. O modelo dos dados se encontra dessa forma:

Metadados das Bases

Nossa base consta com 7 tabelas diferentes, que iremos utilizar para analisar toda a nossa análise, durante a análise não foi criada nenhuma variável a mais.

A descrição dos datasets que foi disponibilizada é a seguinte:

O período da informação é referente aos dados das lojas e peidos que forma processados no Centro no período de janeiro a abril de 2021.

Análise Exploratória

Utilizando Python, fizemos uma análise para conhecimento e entendimento dos nossos dados, para identificação de padrões e com aplicação dos conceitos necessários para chegar no resultado.

Dentro disso, as principais análises que obtemos foi o seguinte:

A parte das demandas e perguntas de negócio foram realizadas dentro do PostgreSQL

Perguntas de Negócio

Nessa estrutura do projeto, buscamos entender ainda mais nosso conjunto dos dados e transformar as informações brutas em insights valiosos para os tomadores de decisão.

Aqui irei explorar as principais, porém, todas as questões estarão disponíveis nos arquivos do projeto dentro do GitHub.

Quais são os dias e horários de pico de pedidos?

/*
PREMISSAS
- Considerando dias como dias da semana
*/


select
  extract(dow from o.order_moment_created) as dia_semana,
  o.order_created_hour as hora_pedido,
  count(*) as pedidos
from orders o
group by extract(dow from o.order_moment_created), o.order_created_hour
order by pedidos desc

Os dois maiores picos ocorreram na sexta feira nos horários das 22 e 23 horas do dia.

Qual é o ticket médio por canal de venda?

/*
 PREMISSAS
- Apenas pedidos finalizados e pagos
*/




select
  c.channel_name,
  round( avg(o.order_amount + o.order_delivery_fee), 2) as Ticket_Medio
from orders o
left join channels c
on c.channel_id = o.channel_id
left join payments p
on p.payment_order_id = o.payment_order_id
where o.order_status = 'FINISHED' and p.payment_status = 'PAID'
group by c.channel_name
order by ticket_medio desc

O maior ticket médio foi encontrado na `AHORA PLACE` de 589 $ e o menor no `WEAR PLACE` de 27 $.

Quantos pedidos, em média, cada entregador realiza por dia?

/*
PREMISSAS
- Apenas pedidos finalizados, iremos considerar apenas corridas com menos de 11KM,
iremos considerar corridas com o valor acima disso, possíveis erros/fraudes
*/



select
  dr.driver_id ,
  count(o.order_id) / count(distinct o.order_moment_created::date) as Entregas_por_dia
from deliveries d
left join drivers dr
on dr.driver_id = d.driver_id
left join orders o
on o.delivery_order_id = d.delivery_order_id
where d.delivery_status = 'DELIVERED' and d.delivery_distance_meters < 11000 and d.driver_id is not null
group by dr.driver_id
order by entregas_por_dia desc

A média diária de entregas foi de 2961, e o entregador com a maior média de entregas no dia foi de 92.

Demandas das Áreas

O estudo foi direcionado com base em demandas das diferentes áreas de negócio do delivery, que buscavam insights para otimizar suas operações. A principal demanda foi a seguinte:

Se a empresa tem um gasto fixo de 5 reais por entrega, recebe 15% do valor de cada entrega como receita e, do total do lucro, distribui 20% em forma de bônus para os 2 mil funcionários, quanto cada um irá receber no período contido no dataset.

Estruturando a consulta, ficou da seguinte forma:

/*
PREMISSAS
- Receita sendo considerada como (order_amount) + (order_delivery_fee)
- Custo Fixo de 5 reais
- Entregas finalizadas e Pagas
*/




with receita as (
select
   o.order_id as ordem,
   sum(o.order_amount + o.order_delivery_fee) as Receita,
   sum(o.order_amount + o.order_delivery_fee) * 0.15 as Receita_15
from
   orders o
left join payments p
on p.payment_order_id = o.payment_order_id
where o.order_status = 'FINISHED' and p.payment_status = 'PAID'
group by o.order_id
),   lucro_por_entrega as (
select
   Receita_15 - 5 as Lucro_Entrega
from receita
),   total_lucro as (
select
   Sum(lucro_entrega) as lucro
from lucro_por_entrega
)
select
   lucro * 0.2 as Distribuição,
   ( lucro * 0.2 ) / 2000 as Por_funcionario
from total_lucro

Assim obtemos o resultado que, cada funcionário irá receber 435 $ de bonificação referente ao período da informação.

Validação do Projeto

De acordo com a análise feita, poderíamos realizar ações como:

Olhamos os critérios de sucesso do projeto, alinhamos com os times de negócio se as suas necessidades foram atendidas e apresento o projeto e os resultados obtidos.

Conclusão

A análise feita junto com o resultado que podemos obter visa otimizar e melhorar o atendimento geral do delivery, através das técnicas certas junto com as áreas de negócios na tomada de decisão mais assertiva.

Esse resultado foi possível graças a entender o contexto do problema e os melhores métodos para resolver o mesmo.

Caso queiram discutir alguma técnica utilizada, dúvida ou sugerir algo, estou aberto a receber mensagens no meu Linkedin.

Trabalhos Recentes