跳轉到

租稅與補貼

租稅在買方支付的價格與賣方收到的價格之間形成楔差。無論向買方或賣方課徵,楔差、數量與兩個價格都相同 Mankiw (2021)。

情境

TaxScenario(
    tax_type,
    amount,
    tax_on=TaxOn.PRODUCER,
    anchor_mode=AnchorMode.NONE
)
tax_typeTaxType

FIXED_TAX 或 PER_UNIT_TAX:每單位課徵固定金額,曲線平移 amount;AD_VALOREM_TAX:依價格課徵比率,曲線旋轉。兩種從量形式的均衡相同。

amountfloat

每單位稅額,或從價稅的稅率(0.35 即 35%);稅率必須大於 \(-1\)。

tax_onTaxOn預設值: PRODUCER

法定納稅人:PRODUCER 使供給上移,CONSUMER 使需求下移。

anchor_modeAnchorMode預設值: NONE

繪製從價稅時,NONE 以截距為軸旋轉曲線,BASELINE_EQUILIBRIUM 以未課稅的均衡點為軸。

一項租稅,位於 principle_viz.policy.tax。

求解

solve_tax_equilibrium(
    demand,
    supply,
    scenario
)

課稅後的市場,回傳 TaxEquilibriumResult:q_star、consumer_price、producer_price、tax_wedge(兩價之差)與 tax_revenue(楔差乘以數量)。

from principle_viz import solve_tax_equilibrium
from principle_viz.policy.tax import TaxOn, TaxScenario, TaxType

tax = TaxScenario(TaxType.PER_UNIT_TAX, 3.0, TaxOn.PRODUCER)
print(solve_tax_equilibrium(demand, supply, tax))
# TaxEquilibriumResult(q_star=2.5, consumer_price=7.5,
#                      producer_price=4.5, tax_wedge=3.0,
#                      tax_revenue=7.5)

TaxOn.CONSUMER 的結果相同。稅率為 \(r\) 的從價稅使消費者價格等於生產者價格的 \((1 + r)\) 倍。

compare_tax_scenario(
    demand,
    supply,
    scenario
)

並列課稅前後的市場:baseline_equilibrium、post_tax、變動量 delta_q、delta_p_consumer、delta_p_producer,以及各自的方向("left"/"right"、"up"/"down")。

build_tax_visual_guide(
    demand,
    supply,
    scenario
)

課稅曲線的幾何資訊:base_curve、taxed_curve、curve_role("supply" 或 "demand")與 transform_kind("shift" 或 "rotation")。add_tax_transform() 依此繪圖。

圖形

MarketFigure.add_tax_transform(
    demand,
    supply,
    scenario,
    q_max
)

畫出課稅後的曲線並命名為 \(S + t\) 或 \(D - t\),以虛線箭頭表示平移或旋轉,並標出未課稅的均衡(參見向賣方課徵從量稅。、向買方課徵從價稅。)。

向賣方課徵從量稅。

向買方課徵從價稅。

MarketFigure.add_tax_comparison(
    result,
    *,
    brace_side="outside",
    notes=False
)
brace_sidestr預設值: "outside"

括號在座標軸外側("outside")或繪圖區內("inside")。

notesbool預設值: False

在座標軸旁說明每個標記。

標出 compare_tax_scenario() 結果的楔差:在價格軸上標 \(p_d\)(買方)、\(p_0\)(課稅前)與 \(p_s\)(賣方),並以 "Tax" 括號涵蓋 \(p_s\) 到 \(p_d\)。

搭配福利的福利區塊(參見課稅下的剩餘與無謂損失。):

from principle_viz import compare_tax_scenario
from principle_viz.welfare.surplus import (
    compare_surplus,
    outcome_from_equilibrium,
    outcome_from_tax,
)

eq = solve_equilibrium(demand, supply)
baseline = outcome_from_equilibrium(eq)
taxed = outcome_from_tax(
    solve_tax_equilibrium(demand, supply, tax)
)
delta = compare_surplus(demand, supply, baseline, taxed)
# 7.5 2.25
print(delta.policy.tax_revenue, delta.deadweight_loss)

fig = MarketFigure(
    x_max=12, y_max=12, title="Welfare Under a Tax"
)
fig.add_curves(demand, supply, q_max=10)
fig.add_welfare(delta.policy)
fig.add_tax_comparison(
    compare_tax_scenario(demand, supply, tax)
)
fig.finalize()

課稅下的剩餘與無謂損失。

補貼

SubsidyScenario(amount, subsidy_to=SubsidyTo.PRODUCER)

每單位 amount 的補貼(不得為負),發給賣方(SubsidyTo.PRODUCER)或買方(SubsidyTo.CONSUMER),位於 principle_viz.policy.subsidy。

solve_subsidy_equilibrium(
    demand,
    supply,
    scenario
)
compare_subsidy_scenario(
    demand,
    supply,
    scenario
)

補貼後的市場(q_star、consumer_price、producer_price、subsidy_wedge、government_expenditure),以及與自由市場的比較(baseline_equilibrium、post_subsidy、delta_q、delta_p_consumer、delta_p_producer)。在快速開始的市場中補貼 2:數量 5,買方支付 5,賣方收到 7,政府支出 10。

MarketFigure.add_subsidy_comparison(
    result,
    *,
    brace_side="outside",
    notes=False
)

以標示稅收楔差的方式標出補貼楔差,加上 "Subsidy" 括號,並標示補貼成本。從量補貼與無謂損失。以 regions=("dwl",) 只為無謂損失填色,並以 visibility 隱藏部分標籤(詳見標籤與圖層)。

from principle_viz import (
    SubsidyScenario,
    SubsidyTo,
    compare_subsidy_scenario,
)

demand = line_from_inverse(12.0, -1.0)
subsidy = SubsidyScenario(3.0, SubsidyTo.PRODUCER)
comparison = compare_subsidy_scenario(demand, supply, subsidy)
fig = MarketFigure(
    x_max=12,
    y_max=13,
    title="Per-Unit Subsidy",
    visibility={
        "market.subsidy.expenditure.label": False,
        "market.subsidy.wedge.label": False,
        "market.subsidy.wedge.mark.p_0": False,
        "market.subsidy.wedge.brace": False,
    },
)

從量補貼與無謂損失。

留言