【薪资计算】SS Is All You Need

Abstract & Intorduction

对于校招和社招,待遇是不可不关注的一大部分。

由于各个公司各方面待遇不统一,市场上出现了不同的薪酬表示方法,如到手,年包,月薪,时薪等方式

即不同行业存在一定的待遇鸿沟(Pay Gap)

为了解决这个问题,本文提出了一种新颖的待遇计算方法:赛文年包(SevenPackage, SP)和赛文薪(SevenSalary, SS),并在常见的领域进行了两者的对比计算

Related Work

先看一个网上广泛流传的段子:

公务员的的20万指的是到手现金20万,此外还有2万的年终奖,2万的精神文明奖,发的米面粮油牙膏姨妈巾折2万,免费宿舍食堂一年折合2万,公积金年金一年4万,养老保险医疗保险等2万,加起来12万。公务员因为还有隐形福利,实际上远不止20万。公务员这个收入可以赚一辈子,活到80可以赚到530万。根据1公币=3国企币,1国企币=3私企币的较为客观的换算来看,楼主的这个530万相当千华为的4800万。另外华为996,楼主1055,工作时长华为是楼主的3倍,所以楼主的4800万要相当于华为的1.4亿。更不用说楼主退休保守副部级

上述说法应该是挺多非互联网行业的算法,包括不限于一些国企银行

来看看互联网公司的待遇,以字节跳动的硕士测开白菜25k来说吧,

HR会给到一种说法:25*16+50k签字费+1.5*12房补

定义这种说法的HR包为:46.8w

Method & Experiment

这里定义赛文年包(SP)为:

SevenPackage = (Salary + Provident + Welfare) / ( Hour * Day)

赛文年包(SP) = HR包 - 个税 + 公积金 + 各类福利收入

SevenSalary

赛文待遇(SS) = SP / ((日工作时间 * 年工作天数))

先上代码:


class TaxRatio:
    def __init__(self, lower_bound, upper_bound, ratio, coupon):
        self.min = lower_bound
        self.max = upper_bound
        self.ratio = ratio
        self.coupon = coupon


class Tax:
    MAX_SALARY = 1000 * 1000 * 1000
    TAX_RATIO = [TaxRatio(0, 36000, 0.03, 0),
                 TaxRatio(36000 + 1, 144000, 0.1, 2520),
                 TaxRatio(144000 + 1, 300000, 0.2, 16920),
                 TaxRatio(300000 + 1, 420000, .25, 31920),
                 TaxRatio(420000 + 1, 660000, .3, 52920),
                 TaxRatio(660000 + 1, 960000, .35, 85920),
                 TaxRatio(960000 + 1, MAX_SALARY, .45, 181920)]
    TAX_THRESHOLD = 5000

    TAX_RATIO_BEFORE_2019 = [
        TaxRatio(0, 1500, 0.03, 0),
        TaxRatio(1500 + 1, 4500, .1, 105),
        TaxRatio(4500 + 1, 9000, .2, 555),
        TaxRatio(9000 + 1, 35000, .25, 1005),
        TaxRatio(35000 + 1, 55000, .3, 2755),
        TaxRatio(55000 + 1, 80000, .35, 5505), 
        TaxRatio(80000 + 1, MAX_SALARY, .45, 13505)
    ]
    
    def __init__(self, old_ratio=.08, medical_ratio=.02, 
                 unemployment_ratio=.005, 
                 house_funding_ratio=.07, 
                 insurance_upper_bound=31014,
                 house_found_upper_bound=31014):
        self.three_insurance_ratio = old_ratio + medical_ratio + unemployment_ratio
        self.house_funding_ratio = house_funding_ratio
        self.insurance_upper_bound = insurance_upper_bound
        self.house_found_upper_bound = house_found_upper_bound
        
    @classmethod
    def get_tax_ratio(cls, should_tax, new=True):
        ratios = cls.TAX_RATIO if new else cls.TAX_RATIO_BEFORE_2019
        for tax_ratio in ratios:
            if tax_ratio.min <= should_tax <= tax_ratio.max:
                return tax_ratio
        raise ValueError('Fail to find tax ratio for {}'.format(should_tax))

    def get_social_money(self, salary):
        insurance_base = self.insurance_upper_bound if salary > self.insurance_upper_bound else salary
        house_funding_base = self.house_found_upper_bound if salary > self.house_found_upper_bound else salary
        return insurance_base * self.three_insurance_ratio + house_funding_base * self.house_funding_ratio
        
    def get_new_tax(self, salary, taxfree):
        social_money = self.get_social_money(salary)
        total_tax_free = social_money + self.TAX_THRESHOLD + taxfree

        if salary <= total_tax_free:
            return [0 for _ in range(12)]
        
        res = list()
        for i in range(1, 13):
            already_taxed = sum(res)
            should_tax = (salary - total_tax_free) * i
            tax_ratio = self.get_tax_ratio(should_tax)
            tax = should_tax * tax_ratio.ratio - already_taxed - tax_ratio.coupon
            tax = round(tax)
            res.append(tax)
        return res

def calSevenSalary(infos, monthSalary, yearAwardCnt, providentRatio, otherIncome, workHourPerDay, annualHoliday, remarks=''):
    tax = Tax()

    income = monthSalary * (12+yearAwardCnt)
    pFund = providentRatio*monthSalary
    tax_per_month = tax.get_new_tax(income, 3000+pFund)
    total_tax = sum(tax_per_month)
    wage = income - total_tax
    #print(f"收入: {income}")
    #print(f"每月税: {tax_per_month}")
    #print(f"年税: {total_tax}")
    SevenPKG = wage + pFund + otherIncome
    SevenSalary = 1000 * SevenPKG / (60*workHourPerDay*(250-annualHoliday)) 
    print(infos, f"\t{SevenPKG/10:.2f}w", f"\t{SevenSalary:.2f}", '\t' ,remarks)
    return SevenSalary

if __name__ == '__main__':
    
    calSevenSalary('体制', 12, 2, 0.48, 50, 5, 5, '一线城市公务员')
    calSevenSalary('字节', 25, 3, 0.12, 1.5*12+2*12+10, 8, 8, '测开,房补包三餐')
    calSevenSalary('字节', 28, 3, 0.12, 1.5*12+2*12+10, 8.5, 8, '开发,房补包三餐,开发比测开累一点')
    calSevenSalary('腾讯', 23, 2.5, 0.12, 4*12+2*12+10, 7.5, 8, '开发,养老部门版,4k房补')
    calSevenSalary('华为', 25, 4, 0.04, 25*200/1000, 9, 0, '公积金按照20而不是25,换算公积金比例为4%,年终可能也是基本工资,不过考虑到加班费,这里多给点')
    calSevenSalary('中兴', 18, 3, 0.05, 10, 9, 5, '一般是996,这里时间都算少了')
    calSevenSalary('银行', 10, 6, 0.48, 30, 6, 5, '一般银行hr说总包都是15w左右,年终占比大')
    calSevenSalary('国企', 15, 2, 0.12, 10, 7, 5, '国企hr总包一般为25w')



Result

根据上述段子:

公务员年收入:20w现金+12w福利 = 32w,这里定义为:

公务员的赛文包为32w,根据现金推测应该是一线城市收入

那么如果用公务员算法:

上面这位大厂测开硕士的赛文包是:

到手31w+7.2w公积金+餐补2*12k+房补1*12k+商业保险1w

这里对比常见的工作的SP与SS:

职位 赛文包 赛文待遇 备注

----------------------------

体制 22.38w 3.04 一线城市公务员

字节 43.00w 3.70 测开,房补包三餐

字节 47.54w 3.85 开发,房补包三餐,开发比测开累一点

腾讯 41.83w 3.84 开发,养老部门版,4k房补

华为 40.60w 3.01 公积金按照20而不是25,换算公积金比例为4%,年终可能也是基本工资,不过考虑到加班费,这里多给点

中兴 28.09w 2.12 一般是996,这里时间都算少了

银行 21.48w 2.44 一般银行hr说总包都是15w左右,年终占比大

国企 22.18w 2.16 国企hr总包一般为25w

Conclusion

先跪求盲审老师放过毕设

娱乐向文章

点赞关注收藏 超50 持续完善本篇Thesis

#校招过来人的经验分享#
赛文の后花园 文章被收录于专栏

赛文X让你重拾信心!

全部评论
好活 祝盲审顺利
4
送花
回复
分享
发布于 04-29 21:34 河南
催更😸
3
送花
回复
分享
发布于 04-29 22:07 广东
滴滴
校招火热招聘中
官网直投
我保佑你盲审,你保佑我工作
3
送花
回复
分享
发布于 04-29 23:00 湖北
题目正确,文章大火
3
送花
回复
分享
发布于 04-30 00:28 安徽
大佬太强了 收藏一下
3
送花
回复
分享
发布于 04-30 20:53 广东
还需要乘以城市系数,不同城市的消费、房价等等不一样
3
送花
回复
分享
发布于 05-05 22:13 上海
催更
2
送花
回复
分享
发布于 04-30 18:18 北京
哥,我保佑你盲审,你保佑我个对象,
2
送花
回复
分享
发布于 05-08 12:56 陕西
有种误入 Transformer 的错觉
1
送花
回复
分享
发布于 04-29 21:42 广东
说的啥玩意,看不懂,重写重写!
1
送花
回复
分享
发布于 05-01 22:49 四川
可以加一点幸福感的实验测试
1
送花
回复
分享
发布于 05-06 09:43 江苏
你去teg也去写py吗,不是的话以后是不是该用c++写这个了
1
送花
回复
分享
发布于 05-06 10:56 北京
赛文直接开源了,底牌都亮了,贵在真实
1
送花
回复
分享
发布于 05-06 11:58 北京
有点难蚌
1
送花
回复
分享
发布于 05-08 21:36 北京
佬,鹅的年终只算2.5个月吗,我看都写的n*16。
1
送花
回复
分享
发布于 05-09 23:06 重庆

相关推荐

很久没更新了,其实一面结束第二天就打电话约二面了,只不过我没把握住,并且自己不想做测试开发,后面忙着其他面试没来得及更新!!一共&nbsp;1h9min自我介绍大模型评估展开介绍自动化评估如何做的,你们拿了很多大模型看他的分析语义能力更强嘛?训练出来的目的是什么?是优化这个模型的能力,还是让基座模型能力提升大模型训练的过程是怎么做的?这个过程是需要写代码还是怎么做?评估结果怎么看是好是坏?最后的训练结果是怎样的?大模型是如何做到语义分析的?对大模型的底层理解有哪些?一点一点的分析如何做的?OK,上面是我的简历内容,具体不太懂的友友可以看我一面的面经,下面这个是测开的同学可以看一下!测试的应用有了解嘛?程序语言的了解?java面向对象和多态的概念?怎么实现多态呢装置器和迭代器的概念是什么呢?python中的元组和list取list的最后一个元素如何做?python中的多线程和多进程分别适用于什么场景吗?根据python的语言特性说多线程和多进程适用于什么不同场景线程池为了解决什么问题?操作系统中的内存泄漏和内存溢出?什么情况下会出现内存泄漏和内存溢出溢出是划分的堆栈不够还是怎么?什么情况下会导致溢出?你有注意过吗?计算机网络中的cookie和session这两个有什么区别?在我们浏览器是如何管理的?有什么不同?一般的是基于哪一种实现的?比如淘宝账号?为什么用session比较多数据库会吗?一张表店铺id和商品id,我们要查店铺id&nbsp;=&nbsp;a的所有表记录如何做的?如果要提高sql的查询速度有哪些方法?经常使用的linux命令有哪些?如何判断一个二叉树是一个平衡二叉树?如何实现一个深度的查找?如果这个树的深度特别长会导致什么问题啊?编程代码(数组旋转)三个一旋转,M个一旋转忘记问反问环节了(时间太紧,因为要面下一家了)二面挂了,还是自己太菜了,也本来没准备这个方向
点赞 评论 收藏
转发
72 67 评论
分享
牛客网
牛客企业服务