【薪资计算】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让你重拾信心!