A practical guide to trade licences, self-employment and business in Czechia
Student and trade licence
Self-employment while studying
As long as you are studying and are under 26, your trade licence counts as a secondary activity — with no minimum social insurance advance payments, and with health insurance paid for you by the state.
Why a trade licence pays off for students
If you are studying at a secondary school or university in a full-time, in-person or otherwise recognised form of systematic preparation for a future career, and you are under 26, you count as a dependent child for insurance purposes. If you also set up a trade licence, it counts as a secondary self-employed activity — the same as for employees or parents on parental leave. This is covered in detail in the article Main vs. secondary activity for the self-employed (OSVČ).
A student's secondary activity has two main advantages:
You pay no social (pension) insurance at all, until your annual profit from the trade exceeds the decisive amount of 117 521 Kč (2026). Below this threshold, no advance payments are due and nothing needs to be settled afterwards either — you simply state this in the income and expenses statement (přehled) for ČSSZ (Czech Social Security Administration).
Health insurance is paid for you by the state, as for a dependent child. As long as you remain a state-insured person, there is no compulsory minimum for health insurance and you effectively pay no advance payments — you settle the premium on your actual profit (13.5 % of 50 % of profit) with your health insurance company according to your OSVČ income and expenses statement.
You must still notify the start of your secondary activity — ČSSZ by the 8th day of the month following the month you started, and your health insurance company within 8 days of starting, and prove the reason for your secondary activity with a confirmation of study. You can find the full process for setting up a trade licence in the guide How to set up a trade licence.
Calculate your advance payments for a secondary activity
The calculator works out both the minimum and the actual monthly advance payments according to the type of activity. As a student, choose secondary activity — up to an annual profit of 117 521 Kč your social insurance advance payment comes out at zero, and health insurance is covered by the state. At a higher profit you will also see the actual advance payment of 1 574 Kč (minimum assessment base of 5 387 Kč).
Orientační výpočet podle sazeb roku 2026. Nenahrazuje výpočet daňového poradce. Ověřeno 2026.
Watch out for the age 26 limit and the end of your studies
Your entitlement to secondary activity as a student lasts only until the day you stop being a dependent child — that is, at the latest until your 26th birthday, or earlier if you finish your studies (final state examination, school-leaving exam, expulsion, interruption of studies). As soon as this status ends, the trade licence changes to a main activity and you must pay the minimum advance payments — social insurance 5 005 Kč (from 7/2026; until 30 June 2026 it was 5 720 Kč) and health insurance 3 306 Kč, 8 311 Kč in total per month. Notify both ČSSZ and your health insurance company of the change within 8 days. For a university, the decisive date for the end of studies is the day of the state final examination or its last part, not the day of the graduation ceremony (§ 55 of Act No. 111/1998 Coll.); the dependent-child status, however, continues for the whole calendar month in which you finished your studies and usually also for the following calendar month, provided that throughout that entire month you do not carry out gainful activity (§ 14 of Act No. 117/1995 Coll.). Source: ČSSZ, VZP ČR, Act No. 111/1998 Coll. and Act No. 117/1995 Coll. — verified 2026.
Frequently asked questions about self-employment while studying
Does the state pay my health insurance even though I have a trade licence?
Yes, if you are a dependent child up to 26 years of age in systematic preparation for a career, you remain a state-insured person even with a trade licence set up as a secondary activity. As a result, you effectively pay no health insurance advance payments — you settle the premium on your actual profit only after submitting the OSVČ income and expenses statement (přehled) to your health insurance company.
Will setting up a trade licence make me lose my student status?
No, a trade licence on its own does not cancel your student status or your dependent-child status. What matters is only whether you are actually studying in systematic preparation for a career and are under 26 — you must prove both to ČSSZ and to your health insurance company. Details can be found in the article [Main vs. secondary activity for the self-employed (OSVČ)](/pojisteni-osvc/hlavni-vs-vedlejsi-cinnost).
Do I have to file a tax return if I have both a part-time job and self-employment?
If your part-time job (DPP or DPČ agreement) is taxed by withholding tax, you do not need to include it in your tax return and you only declare income from your trade. If you signed the taxpayer's declaration for your part-time job, or withholding tax does not apply, you combine your employment income and self-employment income into a single tax return. You can find the deadlines in the article [OSVČ deadlines](/dane-osvc/terminy-osvc).
Is the student tax credit still available?
No. The student tax credit (4 020 Kč per year) was abolished from 2024 by the consolidation package (Act No. 349/2023 Coll.) and could last be claimed for 2023. Its return is planned at the earliest for the 2027 tax period, i.e. in the return filed in 2028 — you cannot claim it for 2025 or 2026.
What do I need to sort out once I finish studying?
On the day your studies end or on your 26th birthday, your secondary activity ends and the trade licence changes to a main activity. You must start paying the minimum advance payments — social insurance 5 005 Kč (from 7/2026) and health insurance 3 306 Kč — and notify both ČSSZ and your health insurance company of the change within 8 days. What to do next if you also find a job alongside your trade licence is described in the article [Self-employment alongside a job](/jak-zalozit-zivnost/pri-zamestnani).
We use necessary cookies to run the site and — with your consent — cookies for traffic measurement and advertising. You can change your consent at any time. More in
Cookie Policy.
breakoutu (config je jen čísla, ale držíme konvenci).
var C = {"rok":2026,"pausal":{"1":9162,"2":16745,"3":27139},"pausalDo0107":{"1":9984},"danSazba1":0.15,"danSazba2":0.23,"progrese":1762812,"slevaPoplatnik":30840,"bonus":[15204,22320,27840],"vydaj":{"80":0.8,"60":0.6,"40":0.4,"30":0.3},"strop":{"80":1600000,"60":1200000,"40":800000,"30":600000},"socSazba":0.292,"socZaklad":0.55,"socMinHlavni":5005,"socMinHlavniDo0107":5720,"socMinZacinajici":3575,"socMinVedlejsi":1574,"rozhodnaVedlejsi":117521,"zdravSazba":0.135,"zdravZaklad":0.5,"zdravMin":3306,"danPO":0.21,"srazkova":0.15,"dphLimitRok":2000000,"dphLimitOkamzity":2536500,"dphLhutaDny":10,"dphIdentZbozi":326000};
function pasmo(prijem) { return prijem <= 1000000 ? 1 : (prijem <= 1500000 ? 2 : 3); }
function calcPausalniDan() {
var prijem = num('prijem'), p = parseInt(val('pausal'), 10) || 60, deti = Math.max(0, num('deti'));
if (prijem <= 0) { return '
Zadejte roční příjem.
'; }
if (prijem > 2000000) { return '
Nad 2 000 000 Kč ročně nelze do paušálního režimu vstoupit ani uplatnit výdajový paušál bez omezení. Výpočet je jen orientační.
'; }
// Paušální daň (vše v jednom)
var pas = C.pausal[pasmo(prijem)] * 12;
// Běžný režim: výdajový paušál
var vydaje = Math.min(prijem * C.vydaj[p], C.strop[p]);
var zaklad = Math.max(0, prijem - vydaje);
var dan = zaklad <= C.progrese ? zaklad * C.danSazba1 : C.progrese * C.danSazba1 + (zaklad - C.progrese) * C.danSazba2;
var danPoSleve = Math.max(0, dan - C.slevaPoplatnik);
var bonus = 0; for (var i = 0; i < deti; i++) { bonus += C.bonus[Math.min(i, 2)]; }
var danNet = danPoSleve - bonus; // může být záporná = daňový bonus se vrací
var soc = Math.max(C.socMinHlavni * 12, zaklad * C.socZaklad * C.socSazba);
var zdrav = Math.max(C.zdravMin * 12, zaklad * C.zdravZaklad * C.zdravSazba);
var bezny = danNet + soc + zdrav;
var pausalWins = pas < bezny;
var rozdil = Math.abs(bezny - pas);
var rows = ''
+ '
Paušální daň (' + pasmo(prijem) + '. pásmo)
' + kc(pas) + '
'
+ '
Běžný režim: daň po slevě' + (deti ? ' a bonusu na děti' : '') + '
' + kc(danNet) + '
'
+ '
Běžný režim: sociální pojistné
' + kc(soc) + '
'
+ '
Běžný režim: zdravotní pojistné
' + kc(zdrav) + '
'
+ '
Běžný režim celkem
' + kc(bezny) + '
';
var verdict = '
'
+ (pausalWins ? 'Vyplatí se paušální daň' : 'Vyplatí se běžný režim (výdajový paušál)')
+ ' — ušetříte zhruba ' + kc(rozdil) + ' ročně.'
+ (deti && !pausalWins ? ' Díky dětem získáte v běžném režimu daňový bonus, který paušální daň neumožňuje.' : '')
+ '
';
return '
' + rows + '
' + verdict;
}
function calcZalohy() {
var c = val('cinnost'), zisk = num('zisk');
var socMin = c === 'zacinajici' ? C.socMinZacinajici : (c === 'vedlejsi' ? C.socMinVedlejsi : C.socMinHlavni);
var soc = socMin, zdrav = C.zdravMin, note = '';
if (zisk > 0) {
var s = Math.round(zisk * C.socZaklad * C.socSazba / 12);
soc = Math.max(socMin, s);
if (c !== 'vedlejsi') { zdrav = Math.max(C.zdravMin, Math.round(zisk * C.zdravZaklad * C.zdravSazba / 12)); }
else { zdrav = Math.round(zisk * C.zdravZaklad * C.zdravSazba / 12); }
}
if (c === 'vedlejsi') {
note = '
U vedlejší činnosti se sociální pojištění platí jen při ročním zisku nad rozhodnou částku ' + kc(C.rozhodnaVedlejsi) + '; do té doby zálohy platit nemusíte. Zdravotní nemá minimum a doplácí se podle zisku.
';
}
var rows = ''
+ '
Sociální pojištění (měsíčně)
' + kc(soc) + '
'
+ '
Zdravotní pojištění (měsíčně)
' + kc(zdrav) + '
'
+ '
Celkem měsíčně
' + kc(soc + zdrav) + '
';
var hint = c === 'hlavni' ? '
Minimální sociální záloha hlavní činnosti se v roce 2026 snížila ze 40 % na 35 % vyměřovacího základu — od července 2026 činí minimum 5 005 Kč (do června 5 720 Kč), přeplatek se vrací.
' : '';
return '
' + rows + '
' + hint + note;
}
function calcOsvcSro() {
var zisk = num('zisk'), vyber = (parseInt(val('vyber'), 10) || 100) / 100;
if (zisk <= 0) { return '
Zadejte roční zisk.
'; }
// OSVČ: daň 15/23 % po slevě na poplatníka + pojistné z vyměřovacího základu (55 % / 50 %).
var danO = zisk <= C.progrese ? zisk * C.danSazba1 : C.progrese * C.danSazba1 + (zisk - C.progrese) * C.danSazba2;
danO = Math.max(0, danO - C.slevaPoplatnik);
var socO = Math.max(C.socMinHlavni * 12, zisk * C.socZaklad * C.socSazba);
var zdravO = Math.max(C.zdravMin * 12, zisk * C.zdravZaklad * C.zdravSazba);
var netO = zisk - danO - socO - zdravO;
// s.r.o.: daň PO 21 %; z vyplacené části srážková 15 %. Nevyplacená část zůstává zdaněná jen 21 %.
var danPO = zisk * C.danPO;
var poDani = zisk - danPO;
var vyplaceno = poDani * vyber;
var srazka = vyplaceno * C.srazkova;
var netS = vyplaceno - srazka + (poDani - vyplaceno); // na ruku z výplaty + ponecháno ve firmě
var rows = ''
+ '
OSVČ – čistý příjem
' + kc(netO) + '
'
+ '
daň ' + kc(danO) + ' · sociální ' + kc(socO) + ' · zdravotní ' + kc(zdravO) + '
'
+ '
s.r.o. – v kapse + ponecháno ve firmě
' + kc(netS) + '
'
+ '
daň PO 21 % ' + kc(danPO) + ' · srážková 15 % z výplaty ' + kc(srazka) + '
';
var sroWins = netS > netO;
var verdict = '
'
+ (sroWins ? 'Při tomto zisku a výplatě vychází lépe s.r.o.' : 'Při tomto zisku a výplatě vychází lépe OSVČ')
+ ' — rozdíl zhruba ' + kc(Math.abs(netS - netO)) + ' ročně. Čím víc zisku ponecháte ve firmě, tím víc s.r.o. získává (nevyplacená část se daní jen 21 %). U OSVČ jsou ale peníze hned vaše a bez administrativy.
';
return '
' + rows + '
' + verdict;
}
function calcDphLimit() {
var obrat = num('obrat'), mesicni = num('mesicni');
if (obrat <= 0) { return '
Zadejte dosavadní obrat za kalendářní rok.
'; }
var limit = C.dphLimitRok, limitVyssi = C.dphLimitOkamzity;
var doLimitu = Math.max(0, limit - obrat), doVyssiho = Math.max(0, limitVyssi - obrat);
var rows = ''
+ '
';
if (mesicni > 0 && obrat < limit) {
var mes = Math.ceil(doLimitu / mesicni);
rows += '
při obratu ' + kc(mesicni) + ' měsíčně překročíte limit zhruba za ' + mes + ' měs.
';
}
var verdict;
if (obrat > limitVyssi) {
verdict = '
Překročili jste ' + kc(limitVyssi) + '. Plátcem DPH se stáváte již dnem následujícím po dni překročení tohoto obratu. Přihlášku k registraci podejte do ' + C.dphLhutaDny + ' pracovních dnů od překročení.
';
} else if (obrat >= limit) {
verdict = '
Překročili jste ' + kc(limit) + '. Plátcem DPH se stanete od 1. ledna následujícího kalendářního roku — nebo dříve, pokud to uvedete v přihlášce (pak dnem následujícím po překročení). Přihlášku podejte do ' + C.dphLhutaDny + ' pracovních dnů od překročení. Do vyššího limitu ' + kc(limitVyssi) + ' zbývá ' + kc(doVyssiho) + '.
';
} else {
verdict = '
Zatím nejste povinni se k DPH registrovat. Do limitu ' + kc(limit) + ' zbývá ' + kc(doLimitu) + '. Od 1. 1. 2025 se obrat sleduje za kalendářní rok (ne za posledních 12 měsíců).
';
}
var ident = '
Pozor na identifikovanou osobu: i bez překročení obratu se jí stanete, když přijmete službu od firmy z EU nebo ji do EU poskytnete (např. reklama na Google či Meta), nebo pořídíte zboží z EU nad ' + kc(C.dphIdentZbozi) + ' za rok. Identifikovaná osoba odvádí DPH jen z těchto přeshraničních plnění — tuzemský prodej zůstává bez DPH.
' + verdict + ident + disc;
}
function calcCistyPrijem() {
var prijem = num('prijem'), vydajeSel = val('vydaje');
if (prijem <= 0) { return '
Zadejte roční příjem.
'; }
var vydaje, vydajePlatba, vydajeLabel;
if (vydajeSel === 'skutecne') {
vydaje = Math.max(0, num('vydajeCastka'));
vydajePlatba = vydaje; // skutečné výdaje reálně odcházejí z peněz
vydajeLabel = 'Skutečné výdaje';
} else {
var p = parseInt(vydajeSel, 10) || 60;
vydaje = Math.min(prijem * C.vydaj[p], C.strop[p]);
vydajePlatba = 0; // paušál je nákladová fikce — peníze reálně neodcházejí
vydajeLabel = 'Výdajový paušál ' + p + ' %';
}
var zaklad = Math.max(0, prijem - vydaje);
var dan = zaklad <= C.progrese ? zaklad * C.danSazba1 : C.progrese * C.danSazba1 + (zaklad - C.progrese) * C.danSazba2;
var danPoSleve = Math.max(0, dan - C.slevaPoplatnik);
var soc = Math.max(C.socMinHlavni * 12, zaklad * C.socZaklad * C.socSazba);
var zdrav = Math.max(C.zdravMin * 12, zaklad * C.zdravZaklad * C.zdravSazba);
var cistyRok = prijem - vydajePlatba - danPoSleve - soc - zdrav;
var rows = ''
+ '
Roční příjem
' + kc(prijem) + '
'
+ '
' + vydajeLabel + '
− ' + kc(vydaje) + '
'
+ '
Základ daně
' + kc(zaklad) + '
'
+ '
Daň z příjmu (po slevě na poplatníka)
− ' + kc(danPoSleve) + '
'
+ '
Sociální pojištění
− ' + kc(soc) + '
'
+ '
Zdravotní pojištění
− ' + kc(zdrav) + '
'
+ '
Čistý roční příjem
' + kc(cistyRok) + '
'
+ '
Čistý měsíční příjem
' + kc(cistyRok / 12) + '
';
var note = (vydajeSel !== 'skutecne'
? 'U výdajového paušálu jsou výdaje nákladovou fikcí — reálně je neutrácíte, proto se do čistého příjmu nezapočítávají. '
: '')
+ 'Sleva na poplatníka činí ' + kc(C.slevaPoplatnik) + ' ročně. Počítáno pro hlavní činnost sazbami roku ' + C.rok + '.';
return '
' + rows + '
'
+ '
' + note + '
';
}
function run() {
var html;
if (kind === 'zalohy') { html = calcZalohy(); }
else if (kind === 'osvc-sro') { html = calcOsvcSro(); }
else if (kind === 'dph-limit') { html = calcDphLimit(); }
else if (kind === 'cisty-prijem') { html = calcCistyPrijem(); }
else { html = calcPausalniDan(); }
out.innerHTML = html;
out.hidden = false;
}
root.querySelectorAll('[data-f]').forEach(function (el) {
el.addEventListener('input', run);
el.addEventListener('change', run);
});
run();
})();