{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# afterthe_tax_price.py\n",
    "\n",
    "세후 출고가 = 세전공급가 + 주세 + 교육세 + 부가세  (전체주류 + 주종별, 2018~2024)\n",
    " 세전공급가 = 식약처 판매액 ÷ 국세 출고량\n",
    " 주세 = 국세 납부세액 ÷ 출고량 (실제 납부 → 기준판매비율·종량세 자동반영)\n",
    " 교육세 = 주세×30% (근사; 탁주 등 일부 면제 주종은 과대) / 부가세 = (세전+주세+교육세)×10%\n",
    " 분류: 식약처 '소주' = 국세 '희석식소주+증류식소주'. 주정은 음용 아님→전체서 제외.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# -*- coding: utf-8 -*-\n",
    "\"\"\"세후 출고가 = 세전공급가 + 주세 + 교육세 + 부가세  (전체주류 + 주종별, 2018~2024)\n",
    " 세전공급가 = 식약처 판매액 ÷ 국세 출고량\n",
    " 주세 = 국세 납부세액 ÷ 출고량 (실제 납부 → 기준판매비율·종량세 자동반영)\n",
    " 교육세 = 주세×30% (근사; 탁주 등 일부 면제 주종은 과대) / 부가세 = (세전+주세+교육세)×10%\n",
    " 분류: 식약처 '소주' = 국세 '희석식소주+증류식소주'. 주정은 음용 아님→전체서 제외.\n",
    "\"\"\"\n",
    "import sys,io; sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')\n",
    "import numpy as np, pandas as pd\n",
    "B='C:/Temp/주류세/공개데이터'\n",
    "st=pd.read_csv(B+'/서버백업/shipment_tax.csv')      # year,주종,지표(세액백만원/출고량kl),값\n",
    "mf=pd.read_csv(B+'/식약처/mfds_sales.csv')          # year,주종,판매액_천원\n",
    "Q=st[st.지표=='출고량'].pivot_table(index='year',columns='주종',values='값')   # kl\n",
    "T=st[st.지표=='세액'].pivot_table(index='year',columns='주종',values='값')     # 백만원\n",
    "MAP={'소주':['희석식소주','증류식소주'],'맥주':['맥주'],'탁주':['탁주'],'약주':['약주'],\n",
    "     '청주':['청주'],'과실주':['과실주'],'위스키':['위스키'],'브랜디':['브랜디'],\n",
    "     '일반증류주':['일반증류주'],'리큐르':['리큐르'],'기타주류':['기타주류']}\n",
    "rows=[]\n",
    "for y in range(2018,2025):\n",
    "    agg_val=agg_q=0.0\n",
    "    for jong,kuk in MAP.items():\n",
    "        sub=mf[(mf.주종==jong)&(mf.year==y)]\n",
    "        if sub.empty or y not in Q.index: continue\n",
    "        q=sum(Q.loc[y,k] for k in kuk if k in Q.columns and not pd.isna(Q.loc[y,k]))   # kl\n",
    "        tax=sum(T.loc[y,k] for k in kuk if k in T.columns and not pd.isna(T.loc[y,k])) # 백만원\n",
    "        sales=sub.판매액_천원.iloc[0]   # 천원\n",
    "        if q<=0: continue\n",
    "        세전=sales*1000/(q*1000)         # 원/L\n",
    "        주세=tax*1e6/(q*1000)            # 원/L\n",
    "        교육세=0.3*주세; 부가세=0.1*(세전+주세+교육세)\n",
    "        세후=세전+주세+교육세+부가세\n",
    "        rows.append(dict(연도=y,주종=jong,세전=round(세전),세후=round(세후),세금비중=round((주세+교육세+부가세)/세후,3)))\n",
    "        # 전체 집계(판매액 기반 세후 총액)\n",
    "        agg_val += (세후)*(q*1000); agg_q += q*1000   # 원, L\n",
    "    if agg_q>0:\n",
    "        rows.append(dict(연도=y,주종='전체주류',세전=np.nan,세후=round(agg_val/agg_q),세금비중=np.nan))\n",
    "df=pd.DataFrame(rows)\n",
    "df.to_csv(B+'/세후출고가_전체주종_2018_2024.csv',index=False,encoding='utf-8-sig')\n",
    "\n",
    "piv=df.pivot_table(index='연도',columns='주종',values='세후')\n",
    "order=['전체주류','소주','맥주','탁주','청주','과실주','위스키']\n",
    "order=[c for c in order if c in piv.columns]\n",
    "print('===== 세후 출고가 (원/L) =====')\n",
    "print(piv[order].round(0).to_string())\n",
    "print('\\n저장: 세후출고가_전체주종_2018_2024.csv  (전 주종 포함)')\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}