3
respostas

[Dúvida] Não entendi o conceito de preço de custo.

Em momentos anteriores, foi definido que o preço de custo está vinculado ao custo da última compra (abordagem just in time)

Assim, no exemplo dado, se o produto foi vendido quando o preço de compra foi 2, mas agora o preço de compra é 3, como ficaria o indicador? A forma que a coisa está posta, só teria uma solução para o indicador usando slowly changing dimension, coisa bem avançada para um curso básico. Entendi o conceito que o instrutor quis passar, mas a solução adotada implica que o indicador jan/23 obtido em fev/23 teria valores distintos que o mesmo indicador jan/23 obtido em jan/24 porque o preço de custo (just in time) mudou no período.

Fiquei bem confuso com esse exemplo.

3 respostas

Oii, José! Tudo bem?

Agradeço por aguardar o nosso retorno.

Na abordagem just in time, o preço de custo é sempre atualizado para refletir o custo da última compra. Isto é, indicador de janeiro de 2023 obtido em fevereiro de 2023 pode ser diferente do mesmo indicador consultado em janeiro de 2024, caso o preço de custo tenha mudado nesse período.

Uma sugestão para lidar com isso, sem usar formalmente os conceitos mais avançados (SCD), é registrar o preço de custo diretamente com cada transação. Isso significa que, ao salvar os dados de uma venda, você armazena não só informações como data, produto e quantidade, mas também o preço de custo vigente no momento da venda.

Por exemplo, em um sistema básico, cada venda poderia incluir um campo adicional chamado preco_custo para guardar o valor aplicado naquela transação. Dessa forma, qualquer análise futura será baseada nos valores históricos, mesmo que o preço de custo atual tenha mudado. Essa abordagem simples evita inconsistências sem complicar o modelo de dados.

Espero ter ajudado, conte sempre conosco aqui no fórum.

Bons estudos!

Nathalia, bom dia!

Concordo contigo que também há a solução que você apresentou. O grande porém está no fato dela não ter sido colocada no modelo da aula.

Vamos aos poréns mais técnicos: 1 - A tabela de fatos costuma superar em muito o tamanho das dimensões. Colocar mais informações nessa tabela costuma prejudicar o desempenho do projeto de DW como um todo. 2 - O processo de ETL (ou ELT se tiver vindo do data lake) costuma ser usado para resolver esse problema. Ocorre que a nota fiscal é mais de um fato: Fato 1 - venda no varejo... tem data/hora/produto (normalmente sumarizado daí a importância o T nas siglas... cerveja deve ser cerveja ou bebida alcoólica, dependendo do grão sumarizado o código cerpa long nec ou polar lata é irrelevante). Se o produto não estiver sumarizado, o caso clássico da cerveja x fraldas descartáveis na sexta-feira jamais ocorreria porque o algoritmo (A priori, se não me falha a memória é o nome do algoritmo que chegou nesse resultado) não conseguiria a frequência mínima e muito menos a confiabilidade mínima para chegar no resultado que aumentou tanto as vendas de cerveja quanto de fraldas descartáveis nas sextas-feiras. 3 - A relevância dos dados sumarizados corretamente vai muito além de uma fato, há também os desdobramentos. No caso da nota fiscal há uma segunda fato de faturamento (nota fiscal, loja, cliente, valor... aqui caberia o custo sumarizado pela nota fiscal, a lucratividade) que teria condição de estabilizar a rentabilidade de cadas NF. Caso fosse relevante, o tipo de embalagem teria uma terceira fato: produto, quantidade, loja, embalagem... essa fato ajudaria a estabelecer a melhor forma de comprar/vender cada tipo de produto de acordo com os critérios de loja.

De qualquer forma, o exemplo, como está na aula, ficou confuso e incompleto, dando uma aparência de material feito às pressas.

Oii, José!

Entendo e sinto muito pela experiência com a atividade. Se puder, peço, por gentileza, que reforce o seu feedback no formulário de pesquisa disponibilizado no final do curso. Dessa forma o seu feedback terá mais ainda visibilidade. Com certeza ele nos ajudará a aplicar melhorias futuras no material.

Conte com a Alura para se desenvolver!

Até mais, José!