Izhodni status programa, imenovan tudi povratna koda, je številka, ki jo program posreduje operacijskemu sistemu, skriptu ali drugemu procesu, ki ga je prvotno izvedel, ko se program konča. Ni pravih pravil za to, kaj pomenijo številke, uporabljene kot izhodni status, čeprav vrednost nič tradicionalno pomeni, da je program normalno zapustil, vsaka vrednost, ki ni nič, pa pomeni, da se je program nepričakovano končal. Z dodelitvijo številke izhodnemu statusu lahko izvirni program ali proces, ki je klical kodo, pove, ali je program uspešno izvedel potrebne naloge ali je treba izvesti druga dejanja.
Skoraj vsi računalniški jeziki in številni skriptni jeziki imajo določen mehanizem ali funkcijo, ki lahko vrne izhodno stanje. Obstajajo situacije, v katerih se program lahko namerno konča sredi izvajanja z uporabo posebne kode napake, ki označuje, da je nekaj narobe, na primer manjkajoča podatkovna datoteka ali pomanjkanje računalniškega pomnilnika. Programi, ki izrecno ne definirajo kode izhodnega stanja, bodo klicnemu programu vrnili nič, razen če operacijski sistem ali jezikovni tolmač prekine program zaradi napak.
Izhodni status se lahko uporablja tudi za komunikacijo s skriptom ali drugim procesom, tako da se vrnejo določene vrednosti, ki kažejo, katero dejanje je treba izvesti. En primer bi bil skript, ki je zasnovan tako, da program deluje kljub možnim trenutkom, ko bi se program lahko zapustil zaradi vzdrževanja. Ta shema bi delovala s skriptom, ki izvaja program in nato čaka na izhod. Programerji bi ga lahko uredili tako, da program vrne eno številko, kar pomeni, da trajno zapušča in se ne sme znova zagnati, druga številka pa bi lahko skriptu naročila, naj počaka nekaj časa in nato znova zažene program; še vedno bi lahko tretja vrednost označevala, da je program naletel na napako in potrebuje pozornost programerja.
Uporaba izhodne statusne kode za komunikacijo je v določenih situacijah priročna zaradi varnostnih in drugih omejitev, ki jih imajo nekateri programi pod različnimi operacijskimi sistemi. Obstaja veliko primerov, v katerih je nemogoče, da bi program komuniciral s svojim klicnim procesom ali drugim programom, ki se izvaja vzporedno v istem sistemu. V teh situacijah bi bile možnosti za komunikacijo med programi omejene na zapletene sheme, ki vključujejo skupni pomnilnik, omrežne vtičnice ali pisanje datotek. Z uporabo izhodnega statusa je mogoče preproste informacije posredovati na zelo preprost način, ki ne zahteva razvoja okvira po meri.