[태그:] 투자 복기

  • 해외주식 양도세, 매도 전에 미리 계산하는 법

    해외주식 양도세, 매도 전에 미리 계산하는 법

    매도 버튼 앞에서 망설이는 이유, 세금이 얼마인지 모르니까

    익절했는데 손해 본 기분, 세후 금액을 몰라서

    양도세 미리 계산하는 방법을 검색하는 순간은 대부분 매도 직전이다. 나도 작년에 똑같았다. 평단에 걸어둔 종목이 목표가에 닿았는데 손가락이 안 움직였다. 세금을 얼마 떼일지 모르니까.

    익절인데도 찜찜한 이유가 이거다. 매도 금액은 화면에 있는데 내 통장에 들어올 돈은 안 보인다.

    결정이 늦어지면 기회가 지나간다

    세금 몰라서 하루 미루고 이틀 미루다 가격이 되돌아간 적이 있다. 그때 배운 게, 매도 결정은 세후 숫자를 알아야만 제대로 된 결정이라는 거다. 세전으로 고민하는 건 반쪽짜리 고민이다.

    양도세 계산 공식, 기준가부터 차근차근

    핵심 공식: 양도차익 = 매도가액 − 취득가액 − 필요경비

    양도세란 주식 등을 매도해 실현한 양도차익에 대해 부과되는 소득세다. 계산식 자체는 단순하다. 매도가액에서 취득가액과 필요경비(거래 수수료, 세금 따위)를 빼면 양도차익이 나오고, 여기에 세율을 곱한다.

    예를 들어 취득가액 800만 원짜리 지분을 1,000만 원에 팔고 수수료 등 필요경비가 2만 원이었다면 양도차익은 198만 원이다. 해외주식은 여기서 연 250만 원 기본공제를 뺀 금액이 과세표준이 된다. 이 예시는 198만 원이라 공제 안에서 끝나 세금이 없다.

    국내주식 vs 해외주식, 기준가가 다르다

    국내 상장주식은 대주주가 아니면 장내 매도 차익에 양도세가 붙지 않는다. 그래서 이 글의 계산은 해외주식 기준이다. 해외주식은 달러 매수 금액을 취득일의 기준환율로 원화환산한 게 취득가액이고, 매도금액도 매도일의 기준환율로 환산한다. 여기서 한 번 걸렸다. 내가 처음 해외주식 손익을 정리할 때 매수 당시 환율이 아니라 매도 시점 환율을 취득가액에도 적용했다. 세후 금액이 실제보다 크게 잡혀서 매도를 미룰 뻔했다. 환산 시점이 취득과 매도 각각 다르다는 걸 뒤늦게 확인하고 계산식을 고쳤다.

    20% 세율에 지방소득세를 더한 실제 부담률 22%

    해외주식 양도세율은 양도소득세 20%에 지방소득세 2%(양도소득세의 10%)를 더해 총 22%다. 시뮬레이션 도구를 만들 때 지방소득세를 빼먹으면 세후 금액이 실제보다 크게 나온다. 처음 버전을 만들 때 20%만 넣었다가 지방소득세를 별도 과세분으로 붙이는 걸 놓쳐서 계산을 다시 한 적이 있다.

    250만 원 공제, 실현손익 기준으로 어떻게 소진되나

    당해 연도 실현손익 합산이 먼저다

    250만 원 기본공제는 연간 실현손익 합산에서 뺀다. 여기가 제일 헷갈리는 지점이다. 이 공제는 “한 건 매도당 250만 원”이 아니라 1년 동안 모든 매도손익을 합친 뒤 딱 한 번 적용된다. 다른 종목에서 200만 원 양도차익을 이미 실현했다면 남은 공제는 50만 원뿐이다. 같은 해 손실 난 종목이 있으면 이익과 합산(손익통산)해서 계산한다.

    공제 잔여분 추적법

    그래서 매도 전에 봐야 할 건 “이 종목의 양도차익”이 아니라 “올해 내 누적 실현손익”이다. 미니 예제로 정리한다. 1월에 A종목 양도차익 180만 원을 실현했다. 지금 B종목을 팔면 양도차익 120만 원이 예상된다. 합산 300만 원에서 250만 원을 빼면 과세표준 50만 원, 세금은 22%를 곱해 11만 원이다. 만약 B를 내년 1월에 팔면? 올해 실현손익은 180만 원이라 공제 안에서 끝나 세금 0원이고, 내년에는 공제 250만 원이 새로 주어진다. 연도는 체결일이 아니라 결제일 기준으로 갈리니 연말 매도는 결제일까지 확인한다.

    연중 분할매도가 공제를 갉아먹는다

    나는 원래 익절 목표에 도달하면 몇 번에 나눠 파는 습관이 있었다. 그런데 연중에 여러 종목을 조금씩 깎아내다 보니 공제 잔여분이 0원이 된 해가 있었다. 12월에 잡은 큰 익절이 공제 없이 그대로 과세됐다. 이후로는 매도 전에 올해 누적 실현손익을 먼저 세고, 공제가 얼마 남았는지 본 다음 매도 시점을 정한다.

    해외주식은 환율이 두 번 들어간다

    취득일 기준환율 vs 매도일 기준환율

    해외주식 양도세 계산에서 환율은 취득일과 매도일, 각각 해당 날짜의 기준환율로 두 번 적용된다. 같은 종목, 같은 수량이라도 환율 시점에 따라 양도차익이 달라진다.

    환차익은 세금 계산에 어떻게 녹아드나

    달러로는 본전인 매도라도 원화로는 차익이 날 수 있다. 취득할 때 환율이 낮고 매도할 때 높으면, 주식 자체는 제자리였어도 원화 환산 양도차익이 생긴다. 이 환차익 부분에도 양도세가 붙는다. 달러 강세일 매도하면 세금이 커지는 건 이 구조 때문이다.

    환율 데이터 매칭에서 내가 겪은 실수

    환율을 자동으로 붙이는 파이프라인을 만들 때 매도일 기준환율 매칭에서 실패했다. 주말에 해외주식 매도가 체결된 거래내역이 있었는데, 주말엔 기준환율이 발행되지 않으니 매칭이 비어 있었다. 처음엔 데이터 소스 오류인 줄 알고 API를 갈아끼웠다. 원인은 단순했다. 주말·공휴일 매도는 직전 영업일 환율 처리가 필요했다. 이런 예외 케이스를 직접 겪고 나서야 거래일 캘린더 체크를 앞단에 넣었다.

    해외주식 환율과 거래내역 정리

    매도 전에 내 계좌 기준 세후 금액 확인하는 법

    증권사 거래내역 내려받아 한 번에 모으기

    이제 실전 흐름이다. 내가 매도 전에 돌리는 순서를 그대로 적는다.

    1. 증권사 홈페이지에서 연간 거래내역(매수·매도·해외주식 환율 포함)을 엑셀로 내려받는다.
    2. 올해 실현손익을 합산해 250만 원 공제 잔여분을 계산한다.
    3. 매도 예정 종목의 예상 양도차익에 잔여 공제와 22% 세율을 적용해 세후 금액을 본다.
    4. 오늘 매도와 내년 1월 매도 중 어느 쪽이 세후로 나은지 비교한다.

    세후 시뮬레이션 예시

    손으로 한 번 해보면 감이 온다. 올해 실현손익이 아직 0원인 계좌에서 양도차익 1,900만 원짜리 매도를 앞뒀다면 공제 250만 원을 빼고 과세표준 1,650만 원, 세금 363만 원이다. 이미 누적 차익 200만 원이 쌓인 계좌라면 잔여 공제 50만 원, 과세표준 1,850만 원, 세금 407만 원. 같은 1,900만 원 차익이 세후로는 1,537만 원과 1,493만 원으로 갈린다. 이 숫자를 매도 버튼 누르기 전에 봐야 한다.

    오늘 매도 vs 내년 1월 매도 비교

    구분 오늘 매도 내년 1월 매도
    양도차익 1,200만 원 1,200만 원 (가격 동일 가정)
    공제 잔여 50만 원 250만 원 (갱신)
    과세표준 1,150만 원 950만 원
    세금(22%) 253만 원 209만 원

    주의할 건 이 표가 예상치라는 거다. 실제 세금은 다음해 5월 확정 신고 때 환율·경비 반영 후 확정된다. 시뮬레이션은 매도 결정 지원용이지 신고 대용이 아니다.

    거래내역 매번 손으로 정리하지 않는 방법

    증권사별 파일 형식이 제각각인 현실

    문제는 위 흐름을 매번 손으로 하려면 은근 시간이 든다는 거다. 증권사마다 엑셀 컬럼명이 다르고, 해외주식 환율 컬럼은 아예 없는 곳도 있다. 한 번 정리해두고 매도 때마다 재확인하는 구조가 필요했다.

    자동 수집 + 자동 정리 파이프라인

    나는 지금 여러 개의 cron 을 무인으로 돌리는데, 그중 하나가 거래내역 정리다. 내려받은 엑셀을 지정 폴더에 던져 넣으면 종목별 취득가액 환산, 실현손익 누적, 공제 잔여 계산까지 돌려주는 흐름이다. 초반에 이 파이프라인이 만든 결과를 며칠 믿었다가, 다른 증권사 파일이 들어왔을 때 컬럼 매핑이 밀려서 손익이 이상하게 집계된 걸 나중에 발견했다. 그 뒤로는 자동 계산 결과를 사람이 눈으로 스캔하는 확인 단계를 그대로 두고 있다. 자동화를 믿되 검산 지점은 남겨두는 게 내 기준이다.

    손으로 정리할 때 나오는 실수

    손으로 정리하는 게 나쁜 건 아닌데, 같은 실수가 반복된다. 취득가액을 매수 금액 원화 표시값으로 쓰는 경우(환율 환산을 빼먹는다), 매도 수수료를 필요경비에서 빼먹는 경우, 올해 누적 실현손익을 안 세고 종목 단위로만 계산하는 경우. 셋 다 공제 잔여를 잘못 잡게 만들어서 세후 예상 자체가 틀어진다.

    요약: 매도 결정 전 3분 체크리스트

    공제 잔여 → 환율 → 분할매도 순서로 확인

    매도 전 확인 순서를 정해두면 3분이면 된다. 먼저 올해 누적 실현손익으로 공제 잔여를 세고, 해외주식이면 취득·매도 각각의 기준환율로 환산했는지 보고, 분할매도라면 몇 번째 매도가 공제를 넘어서는지 본다. 순서가 뒤바뀌면 종목 하나만 보고 “세금 없네” 하고 넘기기 쉽다.

    계산은 예상치, 신고는 확정값

    아무리 정확히 시뮬레이션해도 다음해 5월 신고 전까지는 예상치다. 계산 결과를 근거로 매도 시점을 정하는 건 좋은데, 세금 숫자를 확정처럼 여기고 자금 계획을 짜면 곤란해진다. 여유분을 남겨두는 편이 마음이 편하다.

    지금 바로 해볼 수 있는 첫 액션

    오늘 할 일은 하나면 된다. 증권사에서 올해 거래내역 엑셀을 내려받아 실현손익 합계 하나만 세보는 것. 그 숫자만 있으면 250만 원에서 얼마가 남았는지 바로 나온다. 그다음 매도 결정은 훨씬 빨라진다. 세후 숫자를 아는 순간, 매도 버튼은 그저 실행일 뿐이다.

    참고한 공식 문서


    글쓴이 정보

    초안을 쓰는 건 제가 만든 AI 파이프라인이고, 문체·사실성 자동 검사에 걸린 문장은 제가 직접 고친 뒤 공개합니다. 세금 계산은 예상치이며 실제 신고는 국세청 홈택스 기준을 따르세요. 만드는 과정