De janeiro a março de 2026, os municípios brasileiros partilharam mais de R$ 41 bilhões do Fundo de Participação dos Municípios (FPM). O valor representa um aumento de aproximadamente 5% em comparação com o mesmo período de 2025, quando o montante foi de cerca de R$ 39 bilhões.
Contudo, nos repasses referentes aos dois últimos decêndios deste ano, os valores foram inferiores aos registrados no mesmo período do ano anterior. Para o especialista em orçamento público Cesar Lima, essa tendência pode estar relacionada aos efeitos da nova faixa de isenção do Imposto de Renda, já que parte do FPM é composta pelos recursos arrecadados pela União com esse tributo.
“Isso impacta, claro, diretamente os municípios. O que o governo espera é que, com a criação da alíquota de 10% para quem ganha mais de R$ 50 mil por mês, esses valores possam ser compensados, resultando em um equilíbrio. Contudo, temos observado que, nos últimos decêndios do FPM, houve queda — inclusive no mais recente, que registrou redução significativa de cerca de 11% em relação ao ano passado —, muito provavelmente já como reflexo da diminuição na arrecadação”, avalia.
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
–orange: #f0a500;
–orange-dark: #d48e00;
–orange-bg: rgba(240,165,0,0.08);
–orange-border:rgba(240,165,0,0.30);
–green: #007a54;
–green-solid: #009e6e;
–green-bg: rgba(0,122,84,0.07);
–green-border: rgba(0,122,84,0.22);
–blue: #006fad;
–blue-solid: #0090d8;
–blue-bg: rgba(0,111,173,0.07);
–blue-border: rgba(0,111,173,0.22);
–bg: #ffffff;
–surface: #eef0f3;
–border: #e2e5ea;
–text: #1a1d23;
–muted: #6b7280;
–muted-light: #9ca3af;
}
body {
font-family: ‘Barlow’, sans-serif;
background: var(–bg);
color: var(–text);
width: 100%;
overflow-x: hidden;
}
.infographic {
width: 100%;
padding: 24px 28px 32px;
background: var(–bg);
border-top: 3px solid var(–orange);
}
/* ─── HEADER ─── */
.header {
display: flex;
align-items: baseline;
gap: 12px;
margin-bottom: 16px;
flex-wrap: wrap;
}
.header .tag {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: 10px;
font-weight: 700;
letter-spacing: 2.5px;
text-transform: uppercase;
background: var(–orange);
color: #fff;
padding: 3px 8px;
border-radius: 3px;
white-space: nowrap;
}
.header h2 {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: clamp(14px, 2.2vw, 18px);
font-weight: 700;
color: var(–text);
letter-spacing: 0.2px;
line-height: 1.2;
}
.header .subtitle {
font-size: 12px;
color: var(–muted);
font-weight: 400;
margin-left: auto;
white-space: nowrap;
}
/* ─── LEGEND ─── */
.legend {
display: flex;
gap: 20px;
margin-bottom: 12px;
justify-content: flex-end;
}
.legend-item {
display: flex;
align-items: center;
gap: 6px;
font-family: ‘Barlow Condensed’, sans-serif;
font-size: 12px;
font-weight: 700;
letter-spacing: 1px;
text-transform: uppercase;
color: var(–muted);
}
.legend-dot { width: 10px; height: 10px; border-radius: 2px; }
.legend-dot.g { background: var(–green-solid); }
.legend-dot.b { background: var(–blue-solid); }
/* ─── BARS ─── */
.bars-section {
display: flex;
flex-direction: column;
gap: 5px;
margin-bottom: 20px;
}
.row-label {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: 12px;
font-weight: 800;
letter-spacing: 2px;
text-transform: uppercase;
color: var(–text);
margin-top: 12px;
margin-bottom: 3px;
display: flex;
align-items: center;
gap: 8px;
}
.row-label::after {
content: ”;
flex: 1;
height: 1.5px;
background: var(–border);
}
.row-label:first-child { margin-top: 0; }
.bar-row {
display: grid;
grid-template-columns: 1fr 88px 1fr;
align-items: center;
animation: fadeIn 0.45s ease both;
}
/* ── LEFT 2025 ── */
.bar-left {
display: flex;
align-items: center;
justify-content: flex-end;
padding-right: 5px;
}
.bar-left .track {
flex: 1;
height: 36px;
background: var(–surface);
border-radius: 4px 0 0 4px;
position: relative;
overflow: visible;
}
/* coloured fill — clip the colour only */
.bar-left .fill {
position: absolute;
top: 0; right: 0;
height: 100%;
background: var(–green-solid);
border-radius: 4px 0 0 4px;
width: 0%;
transition: width 1.2s cubic-bezier(0.4,0,0.2,1);
}
/* label always spans full track width */
.bar-left .bar-label {
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 10px;
pointer-events: none;
z-index: 3;
}
.bar-left .bar-label .bar-date {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: 10px;
font-weight: 700;
white-space: nowrap;
flex-shrink: 0;
}
.bar-left .bar-label .bar-val {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: clamp(11px, 1.5vw, 14px);
font-weight: 800;
white-space: nowrap;
flex-shrink: 0;
}
/* ON-BAR: white text */
.bar-left .bar-label.on-bar .bar-date { color: rgba(255,255,255,0.88); }
.bar-left .bar-label.on-bar .bar-val { color: #ffffff; }
/* OFF-BAR: dark text on grey background — always readable */
.bar-left .bar-label.off-bar .bar-date { color: var(–muted); }
.bar-left .bar-label.off-bar .bar-val { color: var(–text); }
/* ── CENTER ── */
.bar-center {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 5px 4px;
background: #fff;
border: 1.5px solid var(–border);
border-radius: 7px;
z-index: 2;
box-shadow: 0 1px 5px rgba(0,0,0,0.06);
gap: 1px;
position: relative;
}
.bar-center .dec-label {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: 8px;
font-weight: 700;
letter-spacing: 1px;
text-transform: uppercase;
color: var(–muted-light);
line-height: 1;
}
.bar-center .dec-num {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: 20px;
font-weight: 900;
color: var(–text);
line-height: 1;
}
.delta {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: 9px;
font-weight: 700;
padding: 1px 5px;
border-radius: 20px;
margin-top: 1px;
line-height: 1.4;
}
.delta.pos { background: rgba(0,122,84,0.10); color: var(–green); border: 1px solid rgba(0,122,84,0.25); }
.delta.neg { background: rgba(180,30,30,0.08); color: #b91c1c; border: 1px solid rgba(180,30,30,0.20); }
/* ── RIGHT 2026 ── */
.bar-right {
display: flex;
align-items: center;
padding-left: 5px;
}
.bar-right .track {
flex: 1;
height: 36px;
background: var(–surface);
border-radius: 0 4px 4px 0;
position: relative;
overflow: visible;
}
.bar-right .fill {
position: absolute;
top: 0; left: 0;
height: 100%;
background: var(–blue-solid);
border-radius: 0 4px 4px 0;
width: 0%;
transition: width 1.2s cubic-bezier(0.4,0,0.2,1);
}
.bar-right .bar-label {
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 10px;
pointer-events: none;
z-index: 3;
}
.bar-right .bar-label .bar-val {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: clamp(11px, 1.5vw, 14px);
font-weight: 800;
white-space: nowrap;
flex-shrink: 0;
}
.bar-right .bar-label .bar-date {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: 10px;
font-weight: 700;
white-space: nowrap;
flex-shrink: 0;
}
.bar-right .bar-label.on-bar .bar-val { color: #ffffff; }
.bar-right .bar-label.on-bar .bar-date { color: rgba(255,255,255,0.88); }
.bar-right .bar-label.off-bar .bar-val { color: var(–text); }
.bar-right .bar-label.off-bar .bar-date { color: var(–muted); }
/* ─── TOTALS ─── */
.totals-section {
display: grid;
grid-template-columns: 1fr auto 1fr;
gap: 10px;
align-items: stretch;
border-top: 1px solid var(–border);
padding-top: 16px;
animation: fadeIn 0.6s ease 0.4s both;
}
.total-card {
border-radius: 8px;
padding: 14px 16px;
display: flex;
flex-direction: column;
gap: 3px;
}
.total-card.green { background: var(–green-bg); border: 1px solid var(–green-border); }
.total-card.blue { background: var(–blue-bg); border: 1px solid var(–blue-border); text-align: right; }
.total-card .year-tag {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: 10px; font-weight: 700;
letter-spacing: 2.5px; text-transform: uppercase;
}
.total-card.green .year-tag { color: var(–green); }
.total-card.blue .year-tag { color: var(–blue); }
.total-card .total-label { font-size: 11px; color: var(–muted); }
.total-card .total-value {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: clamp(18px, 3vw, 26px);
font-weight: 900; line-height: 1.1; margin-top: 2px;
}
.total-card.green .total-value { color: var(–green); }
.total-card.blue .total-value { color: var(–blue); }
.total-card .sub-info { font-size: 10px; color: var(–muted-light); }
.diff-card {
background: var(–orange-bg);
border: 1px solid var(–orange-border);
border-radius: 8px;
padding: 14px 16px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2px;
min-width: 130px;
text-align: center;
}
.diff-card .diff-label {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: 9px; font-weight: 700;
letter-spacing: 2.5px; text-transform: uppercase;
color: var(–orange-dark);
}
.diff-card .diff-pct {
font-family: ‘Barlow Condensed’, sans-serif;
font-size: clamp(24px, 4vw, 36px);
font-weight: 900; color: var(–orange-dark); line-height: 1;
}
.diff-card .diff-abs { font-size: 11px; color: var(–orange-dark); font-weight: 600; opacity: 0.9; }
.diff-card .diff-dir { font-size: 10px; color: var(–muted); margin-top: 2px; }
@keyframes fadeIn {
from { opacity:0; transform:translateY(10px); }
to { opacity:1; transform:translateY(0); }
}
.bar-row:nth-child(1) { animation-delay:0.04s }
.bar-row:nth-child(2) { animation-delay:0.08s }
.bar-row:nth-child(3) { animation-delay:0.12s }
.bar-row:nth-child(4) { animation-delay:0.16s }
.bar-row:nth-child(5) { animation-delay:0.20s }
.bar-row:nth-child(6) { animation-delay:0.24s }
.bar-row:nth-child(7) { animation-delay:0.28s }
@media (max-width: 600px) {
.infographic { padding: 18px 14px 24px; }
.header .subtitle { display: none; }
.bar-center { min-width: 66px; }
.bar-center .dec-num { font-size: 16px; }
.bar-left .track, .bar-right .track { height: 30px; }
.totals-section { grid-template-columns: 1fr; }
.diff-card { min-width: unset; }
.total-card.blue { text-align: left; }
}
Comparativo Decendial 2025 × 2026
valores em R$ bilhões
2025
2026
const data2025 = [
{ dec:1, mes:’Janeiro’, dia:10, val:5641715714.55 },
{ dec:2, mes:’Janeiro’, dia:20, val:2084536016.01 },
{ dec:3, mes:’Janeiro’, dia:30, val:6504917952.74 },
{ dec:1, mes:’Fevereiro’, dia:10, val:13052570714.88 },
{ dec:2, mes:’Fevereiro’, dia:20, val:1305084513.40 },
{ dec:3, mes:’Fevereiro’, dia:28, val:4729664532.65 },
{ dec:1, mes:’Março’, dia:10, val:5726915287.09 },
];
const data2026 = [
{ dec:1, mes:’Janeiro’, dia:9, val:6071376336.20 },
{ dec:2, mes:’Janeiro’, dia:20, val:2635745726.73 },
{ dec:3, mes:’Janeiro’, dia:30, val:7326078045.67 },
{ dec:1, mes:’Fevereiro’, dia:10, val:13470680926.31 },
{ dec:2, mes:’Fevereiro’, dia:20, val:2029553200.00 },
{ dec:3, mes:’Fevereiro’, dia:27, val:4659988055.82 },
{ dec:1, mes:’Março’, dia:10, val:5145946242.01 },
];
function fmt(v) {
if (v >= 1e9) return ‘R$u00a0’ + (v/1e9).toLocaleString(‘pt-BR’,{minimumFractionDigits:2,maximumFractionDigits:2}) + ‘u00a0bi’;
return ‘R$u00a0’ + (v/1e6).toLocaleString(‘pt-BR’,{minimumFractionDigits:1,maximumFractionDigits:1}) + ‘u00a0mi’;
}
function fmtDiff(v) {
const s = v>=0?’+’:”;
if (Math.abs(v)>=1e9) return s+(v/1e9).toLocaleString(‘pt-BR’,{minimumFractionDigits:2,maximumFractionDigits:2})+’ bi’;
return s+(v/1e6).toLocaleString(‘pt-BR’,{minimumFractionDigits:1,maximumFractionDigits:1})+’ mi’;
}
function fmtBig(v) {
return ‘R$u00a0’+(v/1e9).toLocaleString(‘pt-BR’,{minimumFractionDigits:3,maximumFractionDigits:3})+’u00a0bi’;
}
function fmtDate(dia, mes) {
const a = {Janeiro:’Jan’,Fevereiro:’Fev’,’Março’:’Mar’};
return dia+’/’+(a[mes]||mes);
}
const maxVal = Math.max(…data2025.map(d=>d.val), …data2026.map(d=>d.val));
const barsEl = document.getElementById(‘bars’);
let lastMes = ”;
data2025.forEach((d25, i) => {
const d26 = data2026[i];
const pct25 = (d25.val/maxVal)*100;
const pct26 = (d26.val/maxVal)*100;
const diff = d26.val – d25.val;
const diffPct = ((diff/d25.val)*100).toFixed(1);
const isPos = diff >= 0;
if (d25.mes !== lastMes) {
lastMes = d25.mes;
const lbl = document.createElement(‘div’);
lbl.className = ‘row-label’;
lbl.textContent = d25.mes;
barsEl.appendChild(lbl);
}
const row = document.createElement(‘div’);
row.className = ‘bar-row’;
// Start with off-bar (dark text); JS will switch to on-bar after animation
row.innerHTML = `
`;
barsEl.appendChild(row);
});
// Animate fills
requestAnimationFrame(() => setTimeout(() => {
document.querySelectorAll(‘.fill[data-w]’).forEach(el => {
el.style.width = el.dataset.w + ‘%’;
});
}, 150));
// After animation, measure actual px widths and assign on-bar vs off-bar
function updateLabelColors() {
document.querySelectorAll(‘.bar-label’).forEach(label => {
const track = label.closest(‘.track’);
const fill = track.querySelector(‘.fill’);
const trackW = track.getBoundingClientRect().width;
const fillW = fill.getBoundingClientRect().width;
const labelW = label.getBoundingClientRect().width;
// Label fits comfortably inside fill?
// Add 20px padding buffer so text doesn’t sit edge-to-edge
const fits = fillW >= (labelW + 20);
if (fits) {
label.classList.remove(‘off-bar’);
label.classList.add(‘on-bar’);
} else {
label.classList.remove(‘on-bar’);
label.classList.add(‘off-bar’);
}
});
}
// Run after animation (1.4s) and also on resize
setTimeout(updateLabelColors, 1400);
window.addEventListener(‘resize’, () => setTimeout(updateLabelColors, 100));
// Totals
const total25 = data2025.reduce((s,d)=>s+d.val,0);
const total26 = data2026.reduce((s,d)=>s+d.val,0);
const totalDiff = total26 – total25;
const totalPct = ((totalDiff/total25)*100).toFixed(2);
const nDec = data2025.length;
document.getElementById(‘totals’).innerHTML = `
Total acumulado · ${nDec} decêndios
${fmtBig(total25)}
Janeiro a Março · 2025
${totalDiff>=0?’+’:”}${totalPct}%
${fmtDiff(totalDiff)}
2026 vs 2025
Total acumulado · ${nDec} decêndios
${fmtBig(total26)}
Janeiro a Março · 2026
`;
Fonte: Tesouro Nacional
Segundo o governo federal, para mitigar a perda de arrecadação, foi retomada em 2026 a tributação sobre a distribuição de lucros e dividendos. Para pessoas físicas residentes no Brasil, aplica-se uma alíquota de 10% sobre valores que ultrapassem R$ 50 mil mensais — ou R$ 600 mil anuais — por empresa. Para beneficiários domiciliados no exterior, a mesma alíquota incide sobre os dividendos pagos ou remetidos, independentemente do valor.
Lima, no entanto, afirma que, mesmo com essa previsão, ainda não há garantias de que a medida compensará integralmente as perdas municipais.
“Não existe, na legislação atual, um mecanismo que obrigue a União a fazer uma complementação direta ao FPM para cobrir perdas decorrentes de mudanças em alíquotas ou faixas de isenção. Também não há comprovação de que a tributação adicional de 10% sobre rendas acima de R$ 50 mil mensais será suficiente, especialmente considerando a possibilidade de planejamento tributário para reduzir essa incidência”, afirma.
Possível perda bilionária na arrecadação dos municípios
Um estudo divulgado pela Confederação Nacional de Municípios (CNM) estima que, caso as medidas compensatórias anunciadas não produzam os resultados esperados, o impacto nos cofres das prefeituras pode chegar a R$ 9,5 bilhões por ano.
VEJA MAIS:
- FPM: valor destinado aos municípios registra nova queda; repasse será feito nesta terça-feira (10)
- Receita Federal divulga regras do IR 2026 na próxima semana
De acordo com o levantamento, a medida produzirá dois efeitos distintos nas finanças municipais. O primeiro diz respeito aos recursos repassados por meio do FPM, cujo prejuízo pode alcançar R$ 4,6 bilhões. O segundo está relacionado à arrecadação própria das prefeituras proveniente do Imposto de Renda retido na fonte, com perdas projetadas de pelo menos R$ 4,9 bilhões.
Nova faixa de isenção do Imposto de Renda
A nova faixa de isenção do Imposto de Renda, em vigor desde janeiro deste ano, beneficia contribuintes com rendimentos mensais de até R$ 5 mil e prevê redução gradual do imposto para quem recebe até R$ 7.350.
Fonte: Brasil 61