普通视图

发现新文章,点击刷新页面。
昨天以前一片瓜田

二手房增值税分析 - 首付与差额

作者 冬瓜
2020年9月23日 16:00

我给自己定了一个将近 700 天的计划,这就是在上海买房定居。于是开启了研究购房政策、研究小区和板块、研究购房注意事项等一系列的调研和研究。我将这些笔记归档成文章,发表在公众号与大家分享。

今天距离购房还有 665 天。

虽然说二手房的价格便宜,但其实除了购房款以外,还有大大小小的多个税款。当我们累加上这些价格后才是最终的支出价格。

这篇笔记仅适用于上海 2020 年购入二手房的相关政策,其他省份和城市都略有区别

二手房交易中,这篇我们只关注增值税。

首先,我们先要了解几个概念。

普通住宅认定标准

什么是普通住宅?

影响上海普通住宅认定标准的三个因素,一是总价,二是面积,三是圈层

首先,满足以下任意一行条件的即为普通住宅,反之则为非普通住宅:

圈层 面积 总价
内环内 < 140 平米 ≤ 450 万元
内外环之间 < 140 平米 ≤ 310 万元
外环外 < 140 平米 ≤ 230 万元

知道了普通住宅的认定标准后有什么用呢?接下来就是关于普通和非普通的相关征税内容。

增值税及其附加税

当所购房屋为普通住宅的时候,其增值税及其附加税按照下表为征收标准:

年限 征收标准
< 2 年 (税务核定价 ÷ 1.05) × (5% + 0.55%)
[2, 5) 年 免征
≥ 5 年 免征

对应的,非普通住宅有以下的标准:

年限 征收标准
< 2 年 (税务核定价 ÷ 1.05) × (5% + 0.55%)
[2, 5) 年 ((税务核定价- 买入价格) ÷ 1.05) × (5% + 0.55%)
≥ 5 年 ((税务核定价 - 买入价格) ÷ 1.05) × (5% + 0.55%)

这里的税务核定价是什么?又是如何确定的呢?

税务核定价

税务核定价,又被大家称之为二手房过户指导价。它是由当地税务部门确定的,核定价存在的意义主要是“兜底”,简单来说就是当买卖双方的网签价格低于核定价时,税务部门将不再根据网签价(也就是协商好的交易价格) 来确定税基,而是以核定价为标准来确定税基。

所以你应该明白了,核定价明显就是为了对付“阴阳合同”的。是的,它本质上是为了保证税收。

试想一下,如果买卖双方为了避税,网签价定为 1 元,那么这套房子就完全没有任何税费了。

那么税务核定价格一般是多少呢?

这个数据我在百度和谷歌也检索了很久,没有办法得到一组批量数据来做数据拟合。核定价格一般也不会对外公布,需要自己去税务机关咨询,也只能得到一个大概的数据。

因为在确定房屋的核定价时,要参考地段、面积等诸多因素,所以这个是很难作出表达式来加权表示的。

由于税务核定价一般是用来“兜底”的,所以我们在这篇文章里做计算的时候,假设税务核定价是网签价格的 85% 来计算。

核定价影响贷款额度

虽然在「公积金贷买房能省多少钱」一文中,我们假定了任意房子的总价格 35% 首付,65% 贷款。

但是贷款额度参考的基数其实是税务核定价格,这也就意味着 往往购买二手房,你的首付是要多交一笔的,是大于 35% 的 。这是为什么?我们简单做一下计算:

假设我们想购买的二手房网签总价为 $T_{网签}$ 元 ,且**假设税务核定价是网签价格的 85% **,此时税务核定价格 :

\[\begin{equation} \left\{ \begin{array}{lr} T_{贷款额度} = T_{核定} \times 65\% \notag \\ T_{核定} = T_{网签} \times 85\% \notag \\ \end{array} \\ \right. \end{equation}\]

带入后我们可以推导出:

\[\begin{equation} \left\{ \begin{array}{lr} T_{贷款额度} = T_{网签} \times 55.25\% \notag \\ T_{首付} = 1-55.25\% = 44.75\% \notag \\ \end{array} \right. \end{equation}\]

根据我们的假设条件,我们发现首付我们必须要凑够 44.75% 价格的首付,而贷款额度只有 55.25%

所以很多人都说,因为买了二手房,所以首付要高一些,将近 50%。其实就是上面这个原因。

增值税影响下的购房决策分析

同样的,我们假设网签总价为 $T_{网签}$ 元,且 假设税务核定价是网签价格的 85%。 另外,我从知乎上检索到这么一组数据 「2015-2019 年上海各区房价涨跌情况」。其中我需要用到各个区的二手房年化平均增长率,如下表总结:

区域 二手房价年化平均涨幅 区域 二手房价年化平均涨幅
长宁 13.30% 静安(包含老闸北) 16.04%
虹口 15.79% 闵行 14.02%
黄浦 15.99% 浦东(包含老南汇) 12.55%
普陀 15.81% 徐汇 13.55%

由上述数据我们可以计算出,上海二手房平均年化涨幅为 14.63%。有了涨幅数据之后,我们就可以求出差额的表达式,即 $T_{差额} = (税务核定价- 买入价格)$。当然,这里我们还要假设房屋年限为 $y$ 年

\[\begin{align} T_{差额} &= T_{核定价} - T_{买入价格} \notag \\ \ &= 0.85T_{网签} - T_{网签} \div (1 + 0.1463)^y \notag \\ \end{align}\]

接下来我们来计算增值税的表达式:

当房屋是普通住宅时:

\[\begin{equation} T_{增值税} = \left\{ \begin{aligned} & \frac{T_{核定价}}{1.05} \times 5.55\% = 0.04497 · T_{网签} && (y < 2)\\ & 0 && (y \geq 2) \end{aligned} \\ \right. \notag \\ \end{equation}\]

当房屋是非普通住宅时:

\[\begin{equation} T_{增值税} = \left\{ \begin{aligned} & 0.04497 · T_{网签} && (y < 2) \notag \\ \\ & (0.85T_{网签} - \frac{T_{网签}}{(1 + 0.1463)^y}) \times 0.0529 && (y \geq 2) \notag \\ \end{aligned} \right. \notag \\ \end{equation}\]

我们可以看到,当年限小于 2 年的时候,无论是普通住宅还是非普通住宅,其增值税都要支付将近 4.5% 的增值税。且是否是普通住宅对增值税毫无影响。

当年限大于等于 5 年的时候,普通住宅是免征增值税的,而非普通住宅是与年限和网签总价有一定关系的。我们来分析一下。

非普通住宅的年限影响

由于年份 $y$ 是离散的,所以我们将其投影在每一条折线上。以网签价格为横轴变量,来观察增值税与网签价的关系图:

我们可以得到以下结论:

  1. 房龄越高,其所得税缴纳越多。这也是可以理解的,因为随着房价的上涨,其差额会逐渐变大。
  2. 所得税的增长幅度与年限呈现下降趋势。随着年限增高,增长差值逐渐降低。

增值税占比

有没有什么方法来评估增值税最低的选择策略呢?我个人的想法是使用所占比例来考量。以下是我想的一个方法:

\[P_{增值税所占比例} \approx \frac{T_{增值税}}{T_{网签价} + T_{增值税}}\]

为什么这里是约等于呢?因为最后你需要支出的价格除了网签价格外,不仅只有增值税,还有其他的各种税款。 这里仅仅使用增值税来当作基数,可以放大增值税的比重,更能体现问题。

作出图像我们可以发现,当我们购买“低龄”的房子,其所得税所占比例是更底的,5 年的二手房其所得税所占比例均值是 1.79%

于是乎我们可以大致的计算出房龄与所得税所占比例的大致关系:

那么我们最好的策略是要选择最新的房子吗?其实并不是这样的,因为随着年限的增长,其单价也在逐渐升高。

换句话说,当我总价固定后,随着房龄的降低,其面积是越来越小的。房屋面积是和我们的需求息息相关的。

所以当我们做买房策略的时候,我们需要先确定需求面积和我们所支出的总价,然后尽可能的去购买新房就好了。

由于所得税在这里只能说明部分问题,具体的问题我将在后续的文中来具体分析。

总结

  1. 购买二手房时,首付高一些,将近 50%。 其原因是因为税务核算价往往偏低,从而拉低了贷款比重,进而使得首付提高;
  2. 当购买非普通住宅时,房龄越高,其所得税缴纳越多。因为随着房价的上涨,其差额会逐渐变大。
  3. 所得税的增长幅度与年限呈现下降趋势。随着年限增高,增长差值逐渐降低。
  4. 确定需求面积所支出的总价,尽可能的去购买新房。这与我们的正常认知也是相同的。

相关数据分析代码

以下代码由我个人编写,可在 Jupyter Notebook 环境下直接运行。

"""
网签价与增值税
"""
# encoding=utf-8
import numpy as np
import math
from matplotlib import pyplot
import matplotlib.pyplot as plt
from IPython.core.pylabtools import figsize # import figsize
#figsize(12.5, 4) # 设置 figsize
plt.rcParams['savefig.dpi'] = 300 #图片像素
plt.rcParams['figure.dpi'] = 300 #分辨率

# 总价
ths = [i * 125000 for i in range(1, 100)]

# 年限
ys = [i for i in range(5, 21)]

for y in ys:
    # 增值税计算
    trs = []
    for th in ths:
        tr = (0.85 * th - th / ((1 + 0.1463) ** y)) * 0.0529
        trs.append(tr)
        
    plt.plot(ths, trs, label=f'{y}年')

plt.legend()
plt.margins(0)
plt.subplots_adjust(bottom=0.10)
plt.xlabel('网签价/千万元') #X轴标签
plt.ylabel("增值税/元") #Y轴标签


"""
网签价与增值税占比
"""
# 年限
ys = [i for i in range(5, 21)]

for y in ys:
    # 增值税计算
    trs = []
    for th in ths:
        tr = (0.85 * th - th / ((1 + 0.1463) ** y)) * 0.0529
        trs.append(tr / (th + tr))
    print(sum(trs) / len(trs))
    if y >= 10:
        plt.plot(ths, trs, label=f'{y}年')
    else:
        plt.plot(ths, trs, marker='*', label=f'{y}年')

plt.legend()
plt.margins(0)
plt.subplots_adjust(bottom=0.10)
plt.xlabel('网签价/千万元') #X轴标签
plt.ylabel("所得税占总支出比例") #Y轴标签

"""
房龄与增值税占比
"""
p = [
    0.017910502320842965,
    0.021189641628359904,
    0.024032438906425032,
    0.026498963556469416,
    0.028640531033586977,
    0.030501094013867885,
    0.032118385667131544,
    0.03352486519307519,
    0.034748504347376426,
    0.035813445129716175,
    0.03674055234381547,
    0.03754787981470654,
    0.038251065262737784,
    0.03886366589974932,
    0.03939744452077101,
    0.039862614060287876,
]

plt.plot(p, y, marker='o')
plt.legend()
plt.margins(0)
plt.xlabel('增值税占总支出比例') #X轴标签
plt.ylabel("房子年限/年") #Y轴标签

公积金贷买房能省多少钱

作者 冬瓜
2020年9月14日 16:00

我给自己定了一个将近 700 天的计划,这就是在上海买房定居。于是开启了研究购房政策、研究小区和板块、研究购房注意事项等一系列的调研和研究。我将这些笔记归档成文章,发表在公众号与大家分享。

今天距离购房还有 675 天。

这篇文章来讨论使用公积金贷款买房的最大化省钱空间。以下讨论均针对于上海市。因为公积金贷款比商业贷款利率低了近两个点,所以公积金贷款也是购房者的首选。下面我来较为全面的记录一下公积金贷款的所有细节问题。

使用公积金贷款的条件

  1. 购买上海市具有所有权的自住住房;
  2. 申请贷款前 6 个月连续正常缴存住房公积金;
  3. 借款人家庭没有尚未还清的公积金债务;

利率数据

首先先给出公积金贷款的贷款利率(以下表内加粗为一般大家所需要关注的数据):

贷款年限 首套房、二套房普通住宅(基准利率 - 2015.4.8 起开始执行) 二套房非普通住宅(1.1 倍利率)
五年以下(包含五年) 2.75% 3.025%
五年以上 3.25% 3.575%

最高贷款额度

这里不讨论非普通住宅。

  • 普通住宅:按所在地一般民用住宅建筑标准来建造的作为居住用途的房屋,目前多为多层住宅与高层住宅。
  • 非普通住宅:非普通住宅一般指宅建筑面积较大或用作商业用途的房子。
所购住房 首套房 首套房 二套房普通 二套房普通
贷款家庭 1 人贷款 ≥ 2 人贷款 1 人贷款 ≥ 2 人贷款
缴纳住房公积金最高可贷金额 50 万 100 万 50 万 100 万
缴纳补充公积金最高可贷金额 10 万 20 万 10 万 20 万
可贷金额总计 60 万 120 万 60 万 120 万
首付比列 ≤ 90 平米,不低于 20%; > 90 平米不低于 30% 同左 不低于 30\% 同左

这里面我们可以发现住房公积金和补充公积金是有个上限值,但是如何出自己的可贷公积金的数值呢?其实是有如下计算公式:假如我们另当前住房公积金账户余额是,补充公积金账户余额是,则最高可贷金额有如下关系:

\[\begin{cases} f(x, y)=40x+20y \\ 40x \leq 50 \times 10^{4} \\ 20y \leq 10 \times 10^{4} \end{cases}\]

通俗的翻译过来就是,公积金最高可贷金额 = 住房公积金余额 × 40 + 补充公积金余额 × 20。所以通过不等式反解我们可得,如果我们想最大的利用公积金,那么我们住房公积金最少需要有 12500 元的余额、补充公积金需要有 5000 块钱的余额,就满足了最高可贷金额的条件。

贷款年限和贷款人年龄限制

首先,如果是新建商品房,也就是房龄为 0 年的房子,最长贷款年限是 30 年。然后我们说二手房,它有以下规则:

房龄 最长贷款年限
≤ 5 年 30 年
6 - 19 年 35 年 - 房龄(假如是 10 年房龄,则最高可贷 25 年)
≥ 20 年 15 年

贷款算法

同商业贷款的算法相同,公积金贷款也分成等额本金和等额本息两种算法。考虑到更多的人愿意均摊风险以及银行希望获取到更高的利息收入,所以这里我均采用等额本息来计算还款总额

每月月供

\[月供额 = \frac{月利率 \times (1+月利率)^{还款月数}}{(1+月利率)^{还款月数} - 1} \times 贷款本金\]

其中月利率的计算方法:

\[月利率 = \frac{年利率}{12}\]

其他约束

除了我们上文提到的公积金余额对于贷款的约束,我们还要考虑房龄所带来的影响:

\[还款月数 = (35 - 房龄) \times 12\]

举例计算

以上就是我们要考虑的所有月数条件,那么我们来举一个例子来进行计算。假如我们现在要买一个 2010 年(房龄 10 年的二手房),总价是 400 万。使用了 35\% 的首付比例之后,我们需要贷款 260 万,最长贷款时间 25 年,也就是还款月数 300 个月

情况一:全部使用商业贷款

先要确定一下商业贷款的利息,我这里查阅了一下资料,由于上海的商贷金额往往较高,银行会对利息进行 95 折的优惠,从 4.9\% 的基准利率下调到 4.655\%。但今年国家出了 LPR 的利息策略,我们用当前 8 月份的 LPR 利息 4.65\% 来计算。首先来算月利率:

\[月利率 = \frac{4.65\%}{12} = 0.003875\]

然后我们来带入计算月供:

\[\begin{split} 月供额 &= \frac {0.003875 \times (1 + 0.003875)^{300}}{(1 + 0.003875)^{300} - 1} \times 2.6 \times 10^6 \\ &\approx 14673.899\ 元 \end{split}\] \[\begin{equation} \begin{split} 月供额 &= \frac {0.003875 \times (1 + 0.003875)^{300}}{(1 + 0.003875)^{300} - 1} \times 2.6 \times 10^6 \\ &\approx 14673.899\ 元 \end{split} \end{equation}\]

使用月供额来乘以 30 个月算出总还款:

\[总还款 = 30 * 14673.899 = 4402169.7\ 元\]

情况二:使用最大组合贷

由于公积金贷款只能贷 120 万,所以采用 120 万是公积金贷,利息是五年以上的 3.75\%。我们用当前 8 月份的 LPR 利息 4.65\% 当做商业贷款的利息,商业贷款 140 万

同上述计算法相同,带入公式。

① 公积金贷款

公积金贷款的月供:

\[公积金月供 \approx 6169.57 元\]

300 个月公积金总还款:

\[公积金总还款 = 1850871 \ 元\]

② 商业贷款

商业贷款月供:

\[商业贷款月供 \approx 7901.33\ 元\]

300 个月商贷总还款:

\[商贷总还款 = 2370399元\]

我们得到总还款数:

\[总还款 = 1850871 + 2370399 = 4221270 元\]

结果分析

从上面的计算结果来看,我们购买房龄为 10 年的二手房,加入总价为 400 万元,则选择组合贷可以节省 180900 元

数据分析

上面已经给出了等额本息的计算方法。所以接下来进行控制变量,我们让贷款年限映射到正实数区间,让其投影在 5 年与 30 年之间。保证贷款金额为 400 万。然后我们来计算纯商贷和使用组合贷的数据。蓝色线代表使用纯商贷模式,红色线代表使用组合贷模式。

由图一可以看出,还款年份数越多,其所需还款金额越多,也就意味着利息越高。而红(组合贷)与蓝(纯商贷)的差距也越来越大。并且由右图可知,当还款年份数越多,组合贷的优势愈加明显

总结

接下来我们来总结一下买房贷款的最大化利益策略:

  1. 所以贷款买房尽量可以使用公积金贷款。可贷最大公积金额度需要我们以及我们的配偶具有住房公积金余额 12500 元、补充公积金余额 5000 元。
  2. 根据最大贷款额原则(之后会讲到,结论是“首套房付最少的首付,用最大的杠杆贷最多的款,选择 30 年等额本息法,拒不提前还款”策略可达最大收益),当我们将还款时间设置为 30 年的上限阈值,在公积金贷款中也可以获得最大化的成本节约。当然,这就要求我们购买新房和房龄小的二手房。

如果你有任何问题以及更好的建议,可以在下方评论区留言

相关数据分析代码

以下代码由我个人编写,可在 Jupyter Notebook 环境下直接运行。

"""等额本息算法描述"""

import numpy as np
import math

# 等额本息算法
def averageCapitalPlusInterest(principal, anualInterestRate, month):
    """
    principal 表示贷款总额, anualInterestRate 表示年利率, month 表示房贷月份
    """
    # 计算每月应还款金额
    monthlyPayment = np.around(principal * averageCapitalPlusInterestRate(month, monthlyInterestRate(anualInterestRate)), 2)
    # 还款总额
    totalPayment = np.around(monthlyPayment * month, 2)
    return totalPayment

# 计算每月利率
def monthlyInterestRate(anualInterestRate):
    s = anualInterestRate / 12
    return s

# 计算比例系数
def averageCapitalPlusInterestRate(month, monthlyInterestRate):
    R = monthlyInterestRate
    N = month
    I = R * math.pow(1 + R, N) / (math.pow(1 + R, N) - 1)
    return I

"""贷款数据模拟"""
# 全商贷
r = 0.0465
ms = [12 * mi for mi in range(6, 31)]
t = 4000000
res = []

for m in ms:
    res.append(averageCapitalPlusInterest(t, r, m))
res = [np.around(x / 10000, 2) for x in res]

# 组合贷

r1 = 0.0465
r2 = 0.0375
t2 = 1200000
t1 = t - t2

rest = []

for m in ms:
    rest.append(averageCapitalPlusInterest(t1, r1, m) + averageCapitalPlusInterest(t2, r2, m))
rest = [np.around(x / 10000, 2) for x in rest]

"""做图"""

import matplotlib.pyplot as plt

year = [m // 12 for m in ms]

plt.subplot(221)
plt.plot(year, res)
plt.plot(year, rest, 'r')
plt.xlabel("Loan Time - Year")
plt.ylabel("Repayment Amount - RMB")

plt.subplot(222)
detal = []
for i in range(len(res)):
    detal.append(res[i] - rest[i])

rects = plt.bar(year, detal)
plt.xlabel("Loan Time - Year")
plt.ylabel("Savings - RMB")

for rect in rects:
    height = np.around(rect.get_height(), 1)
    plt.text(rect.get_x() + rect.get_width() / 2, height+1, str(height), ha="center", va="bottom")
❌
❌