무역 업무의 구조 · 거래 흐름과 서류 · 실습
인코텀즈별 견적과 서류 대사
목표
한 건의 수출 주문을 인코텀즈 여섯 조건으로 견적 내어 비용과 위험이 어디서 갈리는지 숫자로 보고, 매수인의 총비용을 조건별로 비교한 뒤, 인보이스를 만들고 선적 서류 초안의 불일치를 찾습니다.
왜 중요한가
무역 회사의 시스템 요구사항에는 "조건별 견적 자동 계산", "B/L 과 패킹리스트 대사", "인코텀즈 필드 필수" 같은 항목이 있습니다. 인코텀즈는 국제상업회의소(ICC)가 정한 거래 조건의 약어 체계로, 매도인과 매수인 사이에서 비용을 어디까지 누가 내는가와 위험이 어디서 넘어가는가를 세 글자로 약속합니다. EXW 는 매도인 창고에서 끝나고, FOB 는 선적항에서 배에 실을 때, CIF 는 운임과 보험까지 매도인이 내지만 위험은 여전히 배에 실을 때 넘어가며, DAP·DDP 는 도착지까지 매도인이 책임집니다.
가장 많이 헷갈리는 것이 C 조건입니다. CFR·CIF 에서 매도인은 도착항까지의 운임을 내지만, 배에 실린 뒤 화물이 손상되면 그것은 매수인의 위험입니다. 비용의 끝과 위험의 끝이 다릅니다. 이걸 모르면 보험을 누가 들어야 하는지, 사고가 났을 때 누가 청구하는지 요구사항을 잘못 적습니다.
서류도 같은 주문에서 나옵니다. 상업송장(인보이스)은 금액, 패킹리스트는 포장과 중량, 선하증권(B/L)은 운송인이 화물을 받았다는 증거이자 화물을 찾을 권리입니다. 이 셋의 수량·포장 수·중량이 서로 다르면 뒤에 오는 신용장 심사와 통관에서 전부 걸립니다. 그래서 무역 시스템은 서류 간 대사를 자동으로 합니다.
이 실습의 규칙
- 인코텀즈 원문 대신 이 실습이 정한 배분표를 씁니다. 수출포장은 모든 조건에서 매도인.
EXW는 그 외 전부 매수인.FOB는 내륙운송·수출통관·선적항 비용까지 매도인.CFR은 거기에 해상운임,CIF는 거기에 적하보험까지 매도인.DAP는CIF에 양륙항 하역과 도착지 내륙운송까지 매도인(보험은 매도인이 자기 위험을 위해 드는 것으로 보고 매도인 비용으로 계산).DDP는DAP에 수입통관과 관세까지 매도인. - 매도인 견적 = 물품가(단가 × 수량) + 매도인이 부담하는 항목의
seller_rate_usd합. 매수인 총비용 = 매도인 견적 + 매수인이 부담하는 항목의buyer_rate_usd합. - 위험 이전 지점 어휘:
seller_premises(매도인 구내),on_board(선적항에서 본선 적재 시),named_place(지정 목적지). 비용 부담 종점 어휘:seller_premises,port_of_loading,port_of_destination,named_place. - 인코텀즈는 반드시 조건 + 지정 장소 + 판본으로 씁니다. 이 실습에서는
CIF Rotterdam Incoterms 2020.
단계
1. 오른쪽 예시의 생성기를 /root/trade/make_trade.py 로 저장하고 python3 make_trade.py 로 실행하세요. order.json, costs.csv(비용 항목 10개), fx.csv, draft_docs.json 이 만들어집니다.
2. 비용 배분표를 /root/trade/allocation.csv 에 item,EXW,FOB,CFR,CIF,DAP,DDP 머리글로 costs.csv 순서대로 10줄 적으세요. 값은 매도인 S 또는 매수인 B 입니다.
3. 조건별 매도인 견적을 /root/trade/quotes.csv 에 term,seller_costs,price_usd 머리글로 EXW·FOB·CFR·CIF·DAP·DDP 순으로 적으세요.
4. 조건별 위험 이전 지점과 비용 종점을 /root/trade/risk.csv 에 term,risk_transfer,cost_end 머리글로 같은 순서로 적으세요.
5. 조건별 매수인 총비용을 /root/trade/landed.csv 에 term,price_usd,buyer_costs,landed_usd 머리글로 적고, /root/trade/landed.txt 에 cheapest_term=, most_expensive_term=, spread_usd= 세 줄을 적으세요.
6. CIF 조건의 상업송장을 /root/trade/invoice.json 에 쓰세요. 키는 invoice_no, seller, buyer, incoterm, currency, quantity, unit_price, total, packages, gross_kg 이고, total 은 3단계의 CIF 견적과 같아야 하며 unit_price 는 total ÷ quantity 입니다.
7. 세 서류 초안을 대조해 /root/trade/doc_check.txt 에 packages_invoice=, packages_packing=, packages_bl=, gross_kg_packing=, gross_kg_bl=, quantity_bl=, mismatch_fields= 일곱 줄을 적으세요. mismatch_fields 는 세 서류가 일치하지 않는 항목 이름을 쉼표로 이은 것입니다.
8. /root/trade/quote_memo.md 에 ## 조건별 견적, ## 비용과 위험의 분기점, ## 추천 조건과 근거, ## 서류 확인 결과 네 절로 메모를 쓰세요.
참고
- 2단계 표를 파이썬 딕셔너리로 들고 있으면 3·5단계는 합계 두 줄입니다.
json.dump(..., indent=2)로 쓰면 사람이 읽을 수 있고 채점기도 읽습니다.- 흔한 실수 1: CFR·CIF 의 위험 이전을
port_of_destination으로 적는 것. 비용은 도착항까지지만 위험은 본선 적재 시 넘어갑니다. - 흔한 실수 2: 매수인 총비용을 매도인 단가로 계산하는 것. 매수인이 직접 계약하는 구간은 매수인 단가입니다.
- 흔한 실수 3: 인보이스의
incoterm을CIF세 글자만 적는 것. 지정 장소와 판본이 없으면 조건이 아닙니다.
단계 8개
- 주문·비용·서류 초안 만들기
- 조건별 비용 배분표 만들기
- 조건별 매도인 견적 내기
- 위험과 비용의 분기점 적기
- 매수인 총비용 비교하기
- 상업송장 만들기
- 서류 초안 대사하기
- 견적 메모 쓰기