;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

AutoData

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Descontos não bastam: o que falta para convencer cliente a trocar de carro

Pátio da fábrica da Volkswagen em São Bernardo do Campo está lotado - Reprodução/TV Globo
Pátio da fábrica da Volkswagen em São Bernardo do Campo está lotado Imagem: Reprodução/TV Globo

Colunista do UOL

30/06/2023 12h00

Nas últimas duas semanas não se fala de outra coisa no mundo automotivo: os incentivos oferecidos pelo governo para a compra de carros zero-quilômetro. Crescerá o volume de negócios? Os descontos oferecidos pelas empresas fabricantes são generosos? E o consumidor, ainda quer comprar um carro novo?

Enquanto restam ainda muitas dúvidas sobre duas perguntas, que perdurarão até o balanço de vendas de junho, programado para ser divulgado pela Fenabrave na terça-feira, 4, a última questão já pode ser respondida: sim.

Houve um grande aumento no fluxo nos concessionários, o que é ótima notícia. A própria Fenabrave disse que suas associadas de todas as marcas registraram variação de 30% a 260% mais fregueses visitando as lojas em junho, após o anúncio do apoio do governo à compra de carros novos.

Esta é uma mensagem poderosa, pois demonstra que há demanda, que o consumidor está interessado em adquirir um veículo zero-quilômetro. Mas este interesse é sensível ao preço.

Está claro que os valores cobrados antes do pacote do governo estão muito longe das possibilidades da maioria da população. Um consultor especializado em indústria automotiva disse que o preço, em média de R$ 130 mil por um veículo zero km, aponta para um mercado de, no máximo, 2 milhões de unidades vendidas ao ano. E que este volume não tende a crescer nos próximos anos.

Ele argumenta que apenas os consumidores mais abonados terão condições de comprar produtos com valores tão altos. Estes preços acabam limitando o potencial de crescimento do mercado interno e, também, mantendo fábricas produzindo aquém da capacidade para a qual foi projetada.

Nem mesmo os generosos descontos concedidos pelas próprias montadoras durante este período em que o governo está, de alguma forma, subsidiando uma parte dos preços de alguns veículos, têm feito os negócios deslancharem. As prévias de vendas demonstram que aumentou um pouco o número de negócios com o consumidor pessoa física. Porém as consultas feitas pelo potencial cliente nas lojas, sem que houvesse a conclusão da venda, foram muito maiores.

A segunda pergunta, assim, pode ser parcialmente respondida: os descontos ainda não foram suficientes para fazer o consumidor decidir pela compra de um carro zero. Talvez a partir da quinta-feira, 29, com a liberação de mais R$ 300 milhões, totalizando um pacote de incentivos de R$ 800 milhões só para automóveis, o cliente volte às lojas e feche negócio, impulsionando as vendas do mês que vem.

Mas esta hipótese parece improvável pois o crédito adicional também poderá ser utilizado pelas locadoras, que ficaram de fora do programa após o governo estender, por quinze dias, a exclusividade para os consumidores finais.

A expectativa é a de que as vendas reduzam os estoques, que ainda estão altos, acabando com a paralisação da produção em muitas fábricas. No entanto, enquanto o preço não couber no bolso do consumidor, o financiamento não seja destravado para compra de veículos, os empregos não voltem e a confiança não melhore, será difícil convencer a população a trocar de carro.