Menu Zavřít

Sleva na poplatníka v roce 2024: Jaká je její výše a kdo může uplatnit nárok?

9. 1. 2023
Doba čtení: 5 minut
Autor: Depositphotos

Základní slevu na poplatníka může podle zákona o daních z příjmu uplatnit každý daňový poplatník, který má alespoň po část roku zdanitelné příjmy. Využívají ji tedy zaměstnanci i osoby samostatně výdělečně činné. Jaká je stanovena výše slevy na poplatníka v roce 2024?

Co je sleva na poplatníka

Daňová sleva na poplatníka patří mezi slevy, které mohou daňoví poplatníci uplatnit v daňovém přiznání nebo při ročním zúčtování daně. Nárokem na základní slevu na poplatníka disponuje každý daňový poplatník, který má alespoň po část roku zdanitelné příjmy.

Nezáleží vůbec na tom, zda člověk pracoval v průběhu celého roku, nebo měl příjem jen po dobu několika měsíců. Výhodou je, že nárok obvykle není potřeba nijak zvlášť prokazovat a sleva je vždy uplatněna v plném rozsahu. Díky tomu se pak přímo snižuje daň z příjmů.

Sleva na poplatníka a další daňové slevy podléhají zákonu č. 586/1992 Sb., o daních z příjmů. Vyjma základní slevy na poplatníka patří mezi daňové slevy také:

U základní slevy na poplatníka nikdy nevznikne nárok na vyplacení daňového bonusu (na rozdíl třeba od daňového zvýhodnění na děti). Daň z příjmů lze tímto způsobem srazit maximálně na nulu, není tedy možné jít do ,mínusu. Zároveň jde ale o jedinou daňovou slevu, kterou uplatníte vždy v plném rozsahu bez ohledu na okolnosti.

Podmínky pro uplatnění slevy na poplatníka

Na základní slevu na poplatníka má nárok každý, kdo má nějaké zdanitelné příjmy. Týká se tedy jak zaměstnanců, tak i osob samostatně výdělečně činných (OSVČ).

Sleva na poplatníka u zaměstnance

V případě zaměstnanců je pro uplatnění základní slevy na poplatníka (i jiných daňových slev) nezbytné podepsání takzvaného růžového formuláře (Prohlášení poplatníka daně z příjmů fyzických osob ze závislé činnosti). Pokud ho zaměstnanec nepodepíše, nemůže uplatnit daňové slevy, i když na ně má nárok.

Zároveň platí, že pokud člověk pracuje pro více zaměstnavatelů naráz, může prohlášení poplatníka podepsat pouze u jednoho z nich. Z tohoto důvodu se růžový formulář nepodepisuje automaticky při příchodu do nové práce – zaměstnavatel se musí zaměstnance nejprve zeptat, jestli prohlášení již nepodepsal u jiného zaměstnavatele. Zaměstnanci se pak rozhodně vyplatí podepsat prohlášení u toho zaměstnavatele, kde má vyšší hrubou mzdu.

Je důležité zdůraznit, že slevu mohou uplatnit nejen zaměstnanci zaměstnaní na plný úvazek, ale i maminky přivydělávající si na mateřské dovolené, brigádníci z řad studentů nebo pracující důchodci (tedy osoby zaměstnané na dohody DPP nebo DPČ). Zaměstnanci obvykle uplatňují slevu na poplatníka měsíčně (pro rok 2024 to vychází na 2 570 korun měsíčně), díky čemuž jim pak může být vyplácena vyšší čistá měsíční mzda.

Sleva na poplatníka u OSVČ

OSVČ to mají s uplatněním základní slevy na poplatníka o něco jednodušší. Nemusí totiž prohlášení poplatníka vůbec podepisovat, daňovou slevu na poplatníka uplatní v rámci daňového přiznání automaticky. Sleva na poplatníka je tedy uplatněna jednorázově a snižuje se o ni vypočtená daň z příjmů.

Trochu jinak je to u živnostníků, kteří přešli na paušální režim. Ti totiž každý měsíc odvádí paušální daň a žádné daňové přiznání už podávat nemusí, čímž ztrácí možnost uplatnit daňové slevy.

Potvrzení o příjmech pro účely daňového přiznání vám vystaví zaměstnavatel. Co vše se v něm uvádí?
Přečtěte si také:

Potvrzení o příjmech pro účely daňového přiznání vám vystaví zaměstnavatel. Co vše se v něm uvádí?

Sleva na poplatníka v roce 2024 a srovnání s těmi předchozími

Základní sleva na poplatníka delší dobu stagnovala. Výraznější změny přinesl až rok 2020, kdy byla uvedena v platnost novela zvyšující slevu na poplatníka. V roce 2021 se zvýšila roční sleva na poplatníka z původních 24 840 na 27 840 korun, šlo tedy o rozdíl ve výši tří tisíc. Pro zaměstnance to znamenalo měsíční polepšení si o 250 korun.

Ve stejném duchu se nesl rok 2022, kdy se roční sleva na poplatníka zvýšila o další tři tisíce korun, šlo tedy o zvýšení z 27 840 na 30 840 korun. Měsíční navýšení bylo opět o 250 korun.

V roce 2023 se tato sleva ale už nezvýšila a stejná zůstává i v roce 2024. Ročně můžete tedy v rámci daňového přiznání uplatnit slevu ve výši 30 840 korun, což se týká hlavně OSVČ. Zaměstnanci dosáhnou na měsíční slevu na dani ve výši 2 570 korun.

bitcoin_smenarna

Tabulka vývoje slevy na poplatníka
Rok Měsíční sleva Roční sleva
Sleva na poplatníka 2024 2 570 Kč 30 840 Kč
Sleva na poplatníka 2023 2 570 Kč 30 840 Kč
Sleva na poplatníka 2022 2 570 Kč 30 840 Kč
Sleva na poplatníka 2021 2 320 Kč 27 840 Kč
Sleva na poplatníka 2020 2 070 Kč 24 840 Kč

Zdroj: Financnisprava.cz

Daňový nerezident a sleva na poplatníka

Za daňového nerezidenta je považován cizinec, který pracuje na území České republiky, ale nemá zde trvalý pobyt a nezdržuje se zde déle než 183 dní v roce. Pro všechny nerezidenty pak platí pravidlo, že všechny své příjmy, které získají na území České republiky, musejí zdanit a zahrnout do daňového přiznání. Výhodu mají v tom, že mohou čerpat základní slevu na poplatníka. Ostatní daňové slevy, jako jsou sleva na manželku nebo daňové zvýhodnění na děti, se jich ovšem netýkají.

Co je daňová sleva na poplatníka?
Sleva na dani na poplatníka je jednou ze základních daňových slev, na které má nárok každý daňový poplatník, který má alespoň po část roku zdanitelné příjmy. Mohou ji uplatnit i cizinci pracující na území České republiky, a to jako jedinou z daňových slev.
Týká se sleva na poplatníka OSVČ?
Základní podmínku pro nárok na slevu na poplatníka splňují jak zaměstnanci, tak samozřejmě i osoby samostatně výdělečně činné. Pouze se u nich liší způsob, jakým slevu uplatňují. OSVČ uplatňuje roční slevu 30 840 korun při podání daňového přiznání, zatímco u zaměstnanců to znamená polepšení o 2 570 korun v každé výplatě.
Zvýší se v roce 2024 základní sleva na poplatníka?
Základní sleva na poplatníka zůstává pro rok 2024 bohužel stejná. Roční sleva na poplatníka tedy bude činit 30 840 korun, měsíční sleva na poplatníka 2 570 korun.
Jak na uplatnění slevy na poplatníka?
Pokud chcete daňovou slevu na poplatníka uplatnit jako zaměstnanec, musíte podepsat prohlášení poplatníka u vašeho zaměstnavatele. Osoby samostatně výdělečně činné nic podepisovat nemusí, protože uplatňují slevu na poplatníka automaticky v daňovém přiznání.
  • Našli jste v článku chybu?
'; document.getElementById('outstream-iframe').onload = function () { setupIframe(); } replayScreen = document.getElementById('iinfoOutstreamReplay'); iinfoOutstreamPosition = document.getElementById('iinfoOutstreamPosition'); outstreamContainer = document.getElementsByClassName('outstream-container')[0]; setupReplayScreen(); } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); outstreamDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if ( location.href.indexOf('rejstriky.finance.cz') !== -1 || location.href.indexOf('finance-rejstrik') !== -1 || location.href.indexOf('firmy.euro.cz') !== -1 || location.href.indexOf('euro-rejstrik') !== -1 || location.href.indexOf('/rejstrik/') !== -1 || location.href.indexOf('/rejstrik-firem/') !== -1) { outstreamDirectPlayed = true; soundAllowed = true; iinfoVastUrlIndex = 0; } if (!outstreamDirectPlayed) { console.log('OUTSTREAM direct'); setUpIMA(true); } else { if (soundAllowed) { const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { console.log('OUTSTREAM sound forbidden'); renderBanner(); }); } } else { renderBanner(); } } } function getWrapper() { let articleWrapper = document.querySelector('.rs-outstream-placeholder'); // Outstream Placeholder from RedSys manipulation if (articleWrapper && articleWrapper.style.display !== 'block') { articleWrapper.innerHTML = ""; articleWrapper.style.display = 'block'; } // Don't render OutStream on homepages if (articleWrapper === null) { if (document.querySelector('body.p-index')) { return null; } } if (articleWrapper === null) { articleWrapper = document.getElementById('iinfo-outstream'); } if (articleWrapper === null) { articleWrapper = document.querySelector('.layout-main__content .detail__article p:nth-of-type(6)'); } if (articleWrapper === null) { // Euro, Autobible, Zdravi articleWrapper = document.querySelector('.o-article .o-article__text p:nth-of-type(6)'); } if (articleWrapper === null) { articleWrapper = document.getElementById('sidebar'); } if (!articleWrapper) { console.error("Outstream wrapper of article was not found."); } return articleWrapper; } function setupDimensions() { outstreamWidth = Math.min(iinfoOutstreamPosition.offsetWidth, 480); outstreamHeight = Math.min(iinfoOutstreamPosition.offsetHeight, 320); } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (direct) { adsRequest.adTagUrl = directVast; console.log('Outstream DIRECT CAMPAING advert: ' + directVast); videoContent.muted = true; videoContent.volume = 0; outstreamDirectPlayed = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = outstreamWidth; // adsRequest.linearAdSlotHeight = outstreamHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function setupReplayScreen() { replayScreen.addEventListener('click', function () { iinfoOutstreamPosition.remove(); iinfoVastUrlIndex = 0; outstreamInit(); }); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } } /** * Loads the video content and initializes IMA ad playback. */ function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(outstreamWidth, outstreamHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } /** * Handles the ad manager loading and sets ad event listeners. * @param { !google.ima.AdsManagerLoadedEvent } adsManagerLoadedEvent */ function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } /** * Handles actions taken in response to ad events. * @param { !google.ima.AdEvent } adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstreamLastError === 303) { if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } break; } } /** * Handles ad errors. * @param { !google.ima.AdErrorEvent } adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstreamLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { renderBanner(); } } function renderBanner() { if (isBanner) { console.log('Outstream: Render Banner'); iinfoOutstreamPosition.innerHTML = ""; iinfoOutstreamPosition.style.height = "330px"; iinfoOutstreamPosition.appendChild(bannerDiv); } else { console.log('Outstream: Banner is not set'); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoOutstreamPosition.remove(); outstreamInit(); } else { return false; } adVolume = 1; return true; } /** * Pauses video content and sets up ad UI. */ function onContentPauseRequested() { videoContent.pause(); // This function is where you should setup UI for showing ads (for example, // display ad timer countdown, disable seeking and more.) // setupUIForAds(); } /** * Resumes video content and removes ad UI. */ function onContentResumeRequested() { videoContent.play(); // This function is where you should ensure that your UI is ready // to play content. It is the responsibility of the Publisher to // implement this function when necessary. // setupUIForContent(); } function onActiveView() { if (outstreamContainer) { const containerOffset = outstreamContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstreamPaused) { adsManager.resume(); outstreamPaused = false; } return true; } else { if (!outstreamPaused) { adsManager.pause(); outstreamPaused = true; } } } return false; } let outstreamInitInterval; if (typeof cpexPackage !== "undefined") { outstreamInitInterval = setInterval(tryToInitializeOutstream, 100); } else { const wrapper = getWrapper(); if (wrapper) { let outstreamInitialized = false; window.addEventListener('scroll', () => { if (!outstreamInitialized) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { outstreamInit(); outstreamInitialized = true; } } }); } } function tryToInitializeOutstream() { const wrapper = getWrapper(); if (wrapper) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstreamInitInterval); outstreamInit(); } } } else { clearInterval(outstreamInitInterval); } } }
OSZAR »