
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.
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:
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:

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.
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
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.
/*
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 descOs dois maiores picos ocorreram na sexta feira nos horários das 22 e 23 horas do dia.
/*
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 descO maior ticket médio foi encontrado na `AHORA PLACE` de 589 $ e o menor no `WEAR PLACE` de 27 $.
/*
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 descA média diária de entregas foi de 2961, e o entregador com a maior média de entregas no dia foi de 92.
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:
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_lucroAssim obtemos o resultado que, cada funcionário irá receber 435 $ de bonificação referente ao período da informação.
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.
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.