[HN Gopher] A Canadian payroll dependency chart
       ___________________________________________________________________
        
       A Canadian payroll dependency chart
        
       Author : djha-skin
       Score  : 270 points
       Date   : 2024-01-02 16:26 UTC (6 hours ago)
        
 (HTM) web link (www.daemonology.net)
 (TXT) w3m dump (www.daemonology.net)
        
       | faustocarva wrote:
       | "except anyone resident in Quebec, Nova Scotia, Yukon, or
       | Ontario"...it is essentially 75% of Canada!
        
         | munk-a wrote:
         | Quebec is essentially a different country altogether - there
         | are a legion of strange HR rules and requirements that are
         | entirely specific to QC.
        
           | tharmas wrote:
           | Yes, and heavily subsidized by other parts of Canada via
           | transfer payments.
        
             | munk-a wrote:
             | Well transfer payments are a lot more complicated than some
             | folks would have you believe - Canada as a nation benefits
             | from all our parts being within a common business zone so
             | while some areas are mineral rich other areas have strong
             | service economies that have needed help through the
             | pandemic.
        
               | switchbak wrote:
               | "Needed help" because the powers of the day decided to
               | lock down the economy far past any reasonable length of
               | time. I suppose if I quit my job I "need help" feeding
               | myself too.
               | 
               | Another example is Quebec sitting on a gargantuan natural
               | gas reserve, but preferring to keep it in the ground
               | because it's more advantageous to simply receive payments
               | from other provinces (Alberta). Carbon/emission
               | considerations aside, this shows just how broken the
               | incentive structure is for equalization payments between
               | provinces.
               | 
               | But that's just the tip of the iceberg as far as Canadian
               | governmental issues go, and it's hard to know where to
               | start improving things.
        
               | p_j_w wrote:
               | >Carbon/emission considerations aside
               | 
               | This seems like a massive thing to just throw aside.
        
               | cmrdporcupine wrote:
               | He's also neglecting to mention what a mammoth
               | hydroelectric powerhouse Quebec is, because of that, they
               | have a giant surplus of electricity that makes their
               | utility bills extremely cheap relative to anywhere else
               | in North America, helps manufacturing businesses and
               | gives them the ability to export power, to boot.
               | 
               | Meanwhile Alberta burns (and leaks) natural gas and coal
               | and gripes because the rest of the country is punishing
               | them for it, and complains to high heaven that we're not
               | making new markets for them (or others) to burn and leak
               | more of it.
               | 
               | Quebec and Ontario have prioritized manufacturing over
               | resource extraction, and that benefits their population.
        
               | CarRamrod wrote:
               | Well, if Quebec is the economic powerhouse you claim it
               | is, then surely they will be just fine if the
               | equalization payments stop, right?
        
         | cperciva wrote:
         | To be fair, Nova Scotia, Yukon, and Ontario each only add a
         | handful of extra nodes. I just didn't want to bother with those
         | because I'm in BC.
         | 
         | Quebec is a different matter; far more complicated to calculate
         | payroll deductions for there.
        
           | cmrdporcupine wrote:
           | And if the crazy proposal from the UCP in Alberta to divorce
           | from the CPP and have their own pension system (like Quebec)
           | is successful, it will get even crazier.
           | 
           | Imagine the complications of moving back and forth between
           | provinces. Or seasonal work, etc.
        
             | cperciva wrote:
             | There's several pages of formulas for dealing with people
             | moving between CPP and QPP. So glad I don't have to deal
             | with those.
        
               | cmrdporcupine wrote:
               | I was born in Alberta and lived there for the first 24ish
               | years of my life, I didn't contribute _much_ when I was
               | there, but it would be something. I shudder to imagine
               | the complications of trying to claim the amounts from
               | that once I retire -- if that proposal happens. Pure
               | insanity.
        
       | bigdict wrote:
       | Would be nice to have an open source implementation of this.
        
         | jqpabc123 wrote:
         | Yes but unlikely because this is an example of the Open Source
         | "black hole" where nothing escapes because developers don't
         | find such specialized business applications very interesting.
         | 
         | This requires constant updating and maintenance because tax
         | laws are always changing.
        
           | busterarm wrote:
           | This kind of thing is the bread and butter of SaaS companies
           | though.
           | 
           | It's also exactly the kind of thing companies _wouldn't_ use
           | open source for because if the code gets the tax law wrong
           | they have nobody to transfer liability to. Once you have a
           | corporate entity backing a subscription service, insurance
           | underwriters can understand what's going on and you can
           | finally manage your risks.
        
       | mmastrac wrote:
       | It's a shame that we don't have open formulas in code form
       | published by the government. The only way that I know how to do
       | this reliably is using the web form provided by the CRA here:
       | https://www.canada.ca/en/revenue-agency/services/e-services/...
       | 
       | As you can imagine, doing this by hand is quite painful and
       | error-prone.
        
         | Topgamer7 wrote:
         | I want something similar for my mortgage calculation. For
         | example I cannot get my bank (TD Canada) to inform me of how
         | much each payment goes towards my principal. I'm pretty sure
         | I've calculated it properly, however the number is often in the
         | 10's of dollars off from what the bank reports my outstanding
         | balance is after a payment is made.
         | 
         | Also don't get me started that I can't use an api to get my
         | account details and statements in Canada.
        
           | MattGaiser wrote:
           | Anecdotally, the bank often cannot tell you how much. It has
           | come up multiple times on /r/personalfinancecanada that the
           | bank isn't really sure or generates a few different
           | calculations. I also worked for a mid sized Canadian bank
           | where the advisors couldn't consistently do it either.
        
             | bluefirebrand wrote:
             | If you're on a fixed rate mortgage it seems like this
             | should be trivial...?
             | 
             | Variable rate throws it out of whack of course.
        
               | ponector wrote:
               | Having a mortgage with 3-months variable rate bank sends
               | a new schedule everytime rate changes.
               | 
               | New schedule is calculated with new rate and consists of
               | payments till the end of the term, with additional info
               | about interest and principal amounts.
               | 
               | Same if you do additional payment into the principal -
               | they will give you a new schedule.
        
             | mikepurvis wrote:
             | That seems odd given that you can walk into your branch any
             | time and get a payout statement that will tell you a total
             | outstanding number. The statement is valid for the next 30
             | days or whatever, and any fees or penalties are itemized on
             | it-- anyone who has paid off their mortgage due to either
             | windfall or sale will have gone through this process.
        
           | ipaddr wrote:
           | What is your mortgage amount and what is rate?
           | 
           | Say your mortgage is 300,000 and rate 5%. You would pay
           | 15,000 in interest. Subtract from your total yearly payment
           | say 25,000. You pay back 10,000 a year divide by 12 for
           | months or payment period to get the amount.
        
             | prosaic-hacker wrote:
             | There is a twist in Canadian law regarding mortgages.
             | Quoting from the page linked below. --- Canada's Interest
             | Act states the following about amortizing mortgages: "...
             | the principal money and the rate of interest chargeable on
             | that money, calculated yearly or half-yearly, not in
             | advance." --- This page does go into the detail a little
             | more. https://wowa.ca/how-is-mortgage-interest-calculated
             | 
             | It may not be authoritative but you can start with
             | https://laws-lois.justice.gc.ca/eng/acts/i-15/page-1.html
             | which should be.
        
             | j45 wrote:
             | Canadian mortgages are a bit different than the US.
             | 
             | First, they renew their interest rates every 5 years over a
             | 20-30-40 mortgage. Think of it as mandatory refinancing.
             | 
             | Unlike the US where a homeowner can lock in a low interest
             | rate for a very long time.
        
               | guhidalg wrote:
               | That sounds terrifying. Do people just pay them off
               | within quickly if interest rates rise?
        
               | mikem170 wrote:
               | It would be terrifying for any bank to give people 30
               | thirty year loans at historically low interest rates
               | (because of the interest rate risk - rates have nowhere
               | to go but up, and the bank could easily be upside down
               | for most of the loan), so the U.S. government
               | subsidizes/backs most mortgages (fannie and freddie).
               | This tends to increase the cost of housing while
               | taxpayers are taking on the interest rate risk instead of
               | the banks.
               | 
               | The U.S. is an anomaly with these loans. Most countries
               | don't do this 30 year fixed low rate mortgages like the
               | U.S. It simply doesn't make sense for lenders to
               | underwrite long loans at low rates.
        
               | throw0101d wrote:
               | > _That sounds terrifying. Do people just pay them off
               | within quickly if interest rates rise?_
               | 
               | Variable rate mortgages were a better bet 88% of the time
               | between 1950 and 2000:
               | 
               | * https://wowa.ca/static/fixed-vs-variable-study.pdf
               | 
               | Post-2000 variable did fairly well as well.
               | 
               | It's the recency bias of the last 1-2 years that have
               | people really freaking out about it.
        
           | cperciva wrote:
           | FWIW, being off by 10s of dollars sounds to me like different
           | ideas of how to count days. Banks sometimes use calendar
           | days, sometimes business days, and sometimes a fictitious
           | calendar with 12 months of 30 days each.
        
             | fadesibert wrote:
             | BTW - the fictitious calendar is very often used in bond
             | repayments - e.g.
             | https://www.lawinsider.com/dictionary/bond-payment-dates
             | 
             | It has historically been used to allow for bonds to have
             | uniform repayments across maturities (when the principal of
             | a bond becomes due) - useful in the context of a bank
             | wanting to hedge risks such as interest rate risk,
             | repayment risk (if the bond is callable it can be paid back
             | early, which means the bondholders have cash yielding ~0%
             | instead of whatever the bond yield was)
             | 
             | Mortgages, though not traditional bonds (in that it's not a
             | sophisticated company borrowing) are, depending on the
             | jurisdiction, treated as bonds because they get packaged up
             | and sold as bonds - the underlying bit of financial
             | engineering that, after serious perversion, gave us the
             | 2008 credit crisis
        
               | throw0101d wrote:
               | > _BTW - the fictitious calendar is very often used in
               | bond repayments -
               | e.g.https://www.lawinsider.com/dictionary/bond-payment-
               | dates_
               | 
               | Some sample calculations at:
               | 
               | * https://www.bondsavvy.com/bonds/accrued-interest-
               | calculation
               | 
               | See also perhaps:
               | 
               | * https://www.investopedia.com/terms/d/daycount.asp
        
             | jbs769 wrote:
             | Having been through this exercise as a former employee of a
             | bank calculating this exact thing, this makes sense to me
             | so is hopefully helpful for the poster.
        
             | burnished wrote:
             | Yes, you'd call that the calendar convention if I remember
             | correctly. The one you are referencing is called 30/360 for
             | 30 days in a month, 360 days in a year.
        
               | MichaelZuo wrote:
               | Would different departments within a bank use different
               | calendar conventions?
        
               | cperciva wrote:
               | Absolutely. Even within one department, since accounts
               | often originated from different institutions.
        
           | humanlion87 wrote:
           | I was in the same boat. I ran into similar discrepancies
           | until I realized that I was not accounting for the number of
           | days in the month correctly.
           | 
           | One option is to call the mortgage department and ask them to
           | provide the split. When I asked the agent why I couldn't see
           | it online, she mentioned their system is not setup to show
           | this information. No idea why. Pretty frustrating.
        
           | cachvico wrote:
           | Also don't get me started that I can't use an api to get my
           | account details and statements in Canada.
           | 
           | Anyone know if there's any ongoing effort to this effect -
           | i.e. to force banks to implement a common API for querying
           | data held in their accounts?
           | 
           | A brief search reveals that Canada is of course missing from
           | https://en.wikipedia.org/wiki/Open_banking
        
             | itsoktocry wrote:
             | > _Anyone know if there 's any ongoing effort to this
             | effect - i.e. to force banks to implement a common API for
             | querying data held in their accounts?_
             | 
             | Literally in the news as we speak!
             | 
             | https://globalnews.ca/news/10195005/canada-banking-
             | changes-2...
             | 
             | What it ends up looking like, who knows.
        
             | j45 wrote:
             | Canada is working on Open Banking from what information is
             | out there - although it will be important to confirm that
             | the Canadian interpretation of Open Banking is the same or
             | compatible with other nations, which in no way is
             | guaranteed just because it's called the same thing.
        
             | ensemblehq wrote:
             | Consulted in the space about 3 years ago. Regulatory powers
             | lack tooth. Most large banks are not ready (i.e. poor
             | security, complex backend, no scalability, etc.) and are
             | scrambling to find solutions while begging for my time.
             | Also, lots of discussion and jostling and fear of what
             | might happen when it goes live. No one can truly agree on
             | the legal framework as well so feels like much work to be
             | done.
             | 
             | Was also part of the implementation phase in the UK and the
             | regulatory powers there definitely sped things up.
        
             | franga2000 wrote:
             | Don't be fooled by the "open banking" propaganda, we've had
             | it in the EU for years and we're still scraping web apps
             | like in the old days.
             | 
             | <Rant> I tried to get API access to my bank account and was
             | told by my bank that Open Banking is not for physical
             | persons. I tried to the same for my nonprofit and was told
             | that only licensed PSD2 TPPs ("third-party providers") can
             | use it. The national bank issues those licenses, but
             | provides no information on what the process for obtaining
             | one is. I called some friends and got in touch with someone
             | at a major payment services provider, who explained that to
             | get their license, the national bank insisted on them
             | having essentially unlimited-coverege insurance - something
             | no insusrer in the country was even willing to sell at any
             | price. They managed to get the insurance from elsewhere in
             | the EU and whole process cost them "six figures". Even
             | after that, you still don't get full access to their own
             | accounts, because the whole API is built on the idea of
             | connecting customers with fintech apps, so there are a
             | bunch of limitations intended for privacy and security that
             | don't make any sense in a "I want full access to my own
             | account" scenario. All the advice I got was "just keep
             | scraping". How the fuck do they dare call that "open"
             | banking?!? </Rant>
        
               | axus wrote:
               | Crypto-currency was a test-run for what happens when you
               | put a financial transaction API on the public Internet.
               | And those servers were written by smart people with no
               | regulatory compliance to worry about.
        
               | franga2000 wrote:
               | Cryptocurrency is so wildly different from normal money
               | in so many ways, that any attempt to look at just the
               | "open API" aspect of it is futile.
               | 
               | Or do you see any conclusions about "money APIs" that can
               | be reasonably made from crypto?
        
           | j45 wrote:
           | While open banking is on it's way in Canada it still might be
           | a few years until the API is available.
           | 
           | Mortgage Calculators are sadly something that appear to need
           | to be build by hand in Excel
        
           | rootusrootus wrote:
           | Is this something particular to how Canada does mortgages? In
           | the US, a bog standard mortgage is 12 payments a year, with
           | all interest for the month accruing on the 1st day of each
           | month. It's pretty trivial to put that into Excel and use the
           | IPMT function (and related ones like PMT) to spit out the
           | interest being paid in a given month. It's always been dead-
           | on accurate for me.
           | 
           | Maybe this is just one little upside of mortgage terms in the
           | US being dictated mostly by the gov't through fannie mae and
           | freddie mac.
        
           | franga2000 wrote:
           | > Also don't get me started that I can't use an api to get my
           | account details and statements in Canada.
           | 
           | Can you do that anywhere else? Even under the EU's "open
           | banking" system, this is basically impossible unless you use
           | an intermediate that charges absurdly high fees, because they
           | themselves had to pay hugr licensing and insurance fees to be
           | granted access to the "open" APIs. The only other way is
           | scraping, which I imagine is just as possible in Canada as
           | everywhere else.
        
           | ape4 wrote:
           | Apologies if you're already aware... In Canada you'll get an
           | annual statement showing how much principal is paid off. So
           | you can interpolate future payments from that. (Of course, it
           | could be better)
        
           | burnished wrote:
           | Are you using the correct date convention? That can cause
           | small differences in both the duration of the interest
           | accrual period as well as the daily interest rate for that
           | period
           | 
           | If they aren't providing you complete information there is
           | probably a Canadian authority you can reach out to, though
           | you may just need to go higher up the food chain at your bank
           | - accounting can be a little arcane and the people you are
           | speaking to may simply not know.
           | 
           | That being said being off by tens of dollars is absurd, the
           | error is likely in your calculations, and I feel it is their
           | duty to make how they calculate your interest owed plain to
           | you.
        
           | abe_m wrote:
           | First of all: I fully agree with you. The calculation should
           | be listed explicitly in the mortgage documents.
           | 
           | I've also struggled through figuring it out on my own, and
           | the two things that got me to less than a dollar of
           | difference were: 1) "Mortgage" in Canada is a specific legal
           | term used for fixed term mortgages that compounds every 6
           | months. Therefore, to get your effective annual you take you
           | have to convert it: ((1 + nom_rate/2)^2)-1 2) You then take
           | your effective rate, divide by the days in the year to get
           | your daily rate. You then take your daily rate, multiply it
           | by your outstanding principle, and multiply it by the number
           | of days since your last payment. That result is the amount of
           | interest you pay, and the rest of your payment goes to pay
           | down principle.
           | 
           | In practice, I have a monthly payment, and just divide my
           | annual effective rate by 12, and call it close enough. The
           | extra precision of daily vs monthly isn't worth the extra
           | complexity in the spreadsheet.
        
         | FpUser wrote:
         | Same here. I just take the form
        
         | j45 wrote:
         | It could be a github repo.
         | 
         | There are likely some digital government projects and software
         | providers who's software might be a good fit for this kind of
         | thing.
        
           | yard2010 wrote:
           | Why stop there, one monorepo could hold all the laws and
           | receive PRs from the ppl, cutting down the middle man
           | (politicians) leaving just the bureaucracy
        
           | brailsafe wrote:
           | It's worth noting that the Government of Canada and various
           | other gov orgs do have GitHub repos where they already host a
           | variety of algorithms, configs, the design system, and a few
           | others, so it would be good to add something like this.
           | 
           | https://github.com/canada-ca https://github.com/statcan
           | 
           | The Bank of Canada even has one where they host various
           | economic models
           | 
           | https://github.com/bankofcanada
        
         | Galanwe wrote:
         | The issue is too pervasive, having a formula published won't
         | solve it.
         | 
         | You will need the historical formulas, as well as all the
         | underlying data, not even accounting for the publication delays
         | and errors, missing informations, discretionary
         | classifications, etc.
         | 
         | What we need is all that data and code in an introspectable
         | flow of code and data:
         | 
         | <downvote>a blockchain, containing both your data and the smart
         | contract used to perform the computations</downvote>.
        
         | patrickmay wrote:
         | All laws should be expressed in code. It would quickly show how
         | many either conflict with each other or are incoherent.
        
           | penguin_booze wrote:
           | This exists, but I haven't dug deep enough to know better:
           | https://github.com/CatalaLang/catala.
        
           | kelseyfrog wrote:
           | It wouldn't even work if the universe was expressed as data.
           | 
           | Unfortunately there will be an input layer that requires
           | predicates or measurements that cannot avoid ambiguity.
           | 
           | Ignoring that, there's Godel's Incomplete Theorem to deliver
           | the final blow. If integer arithmetic cannot be complete and
           | consistent, a set of laws governing society has no hope. If
           | you disagree, you'd at least have to admit that such a set of
           | laws could not include integer arithmetic, and could
           | certainly be no more complex than integer arithmetic. I'd
           | posit that such a restriction renders such a project
           | impossible.
           | 
           | We've chosen completeness (every action can be rendered legal
           | or illegal) over consistency. The alternative - consistency -
           | would make some actions legally undecidable.
        
         | layer8 wrote:
         | Germany has been publishing standardized flowcharts with named
         | variables and formulas for payroll calculation for a long time
         | (at least since the 1970s -- hence the notation employed):
         | https://www.bundesfinanzministerium.de/Content/DE/Downloads/...
        
           | gorky1 wrote:
           | That's very cool, but that's taxes only.
           | 
           | For social security, you have to get certified by a
           | completely different set of bureaucrats with partially
           | incompatible requirements:
           | 
           | https://gkv-ag.de/
           | 
           | The simplifications, they are additional! (Usually.)
        
         | akira2501 wrote:
         | > It's a shame that we don't have open formulas in code form
         | published by the government.
         | 
         | I completely disagree. Then you're just handing them a
         | mechanism to make this as complicated as they possibly can.
         | Taxes should be simple enough to be fully understood by the
         | people paying them.
         | 
         | I'm not some algorithmic tool for the government to abuse when
         | it's failed to balance it's budgets and I should not _need_
         | software to figure out something so basic as a deduction in
         | wages.
         | 
         | > doing this by hand is quite painful and error-prone.
         | 
         | It's a shame there isn't a law forcing the government to make
         | this possible.
        
           | ibejoeb wrote:
           | I don't understand what you mean. You're beholden to the law
           | regardless of whether you understand it. The government ought
           | to be required to create a reference implementation if for no
           | purpose other than to prove that it is indeed possible to
           | implement.
        
             | phpisthebest wrote:
             | the government should be barred from implementing a law or
             | regulation that requires "reference implementation " to
             | prove it is "possible to implement"
             | 
             | If it needs such a thing it is too complex and should be
             | repealed
        
               | crote wrote:
               | Over in The Netherlands we're seeing the opposite happen.
               | Seemingly trivial laws are getting rejected because the
               | responsible Ministry considers it "too difficult". In
               | reality it's most likely just politically inconvenient.
               | 
               | For example, it was deemed "impossible" to adjust student
               | loan interest rates, because the software would take _two
               | years_ to modify. Either they are completely incompetent,
               | or they are deliberately lying for political reasons.
               | 
               | So yeah, refusing a law because it is "too complex" won't
               | work either.
        
               | ibejoeb wrote:
               | OK, well, in spirit I can see how that sentiment arises.
               | For practical purposes, though, no matter how simple a
               | calculation, if a government requires that I do it, I
               | want to see precisely what it's demanding. It is
               | unreasonable to be put in the position of guessing.
        
           | gorky1 wrote:
           | You're right, and it's extremely hard to undo.
           | 
           | Once you have that complexity, you'll always be taking away
           | something from somebody by simplifying.
           | 
           | So all simplifications end up as additional "if" clauses,
           | defeating the purpose.
        
           | lozenge wrote:
           | Ah yes, because the current system is incentivising them to
           | keep it simple... otherwise we'll vote for the simple taxes
           | party... which party is that again?
        
       | sdwvit wrote:
       | Props to the author. At this point, CRA should just post a
       | reference implementation of all the formulas, so that small
       | businesses can benefit from it.
        
         | betaby wrote:
         | They won't. They have no mandate to provide a clear answer.
        
           | j45 wrote:
           | Bureaucracies gotta bureaucracize.
        
           | cmrdporcupine wrote:
           | Honestly, I've always found CRA friendly, competent, and
           | responsive.
           | 
           | But, I also don't run a small business, and am just a tax
           | payer. Though when I _had_ a small consultancy and
           | corporation they were also actually fine to deal with.
        
         | cperciva wrote:
         | It would be very nice if they would publish a libreoffice
         | spreadsheet, yes.
         | 
         | Heck, it would be very nice if they would _create_ a
         | libreoffice spreadsheet, even if they don 't publish it. If
         | they had to read their own document, it would probably be far
         | better written.
        
           | derefr wrote:
           | > If they had to read their own document, it would probably
           | be far better written.
           | 
           | Perhaps not; I've always had a strong impression, whenever
           | reading documents derived from tax policy, that the
           | "architecture" of such documents is the way it is mainly for
           | _maintainability_.
           | 
           | Which is to say: the effective tax code at any given moment,
           | is the emergent result of the interactions of all the current
           | tax _laws_ on the books. And there are many such laws. And
           | those individual laws can be updated or repealed; and new
           | laws can also come in that, through a few simple statements,
           | make sweeping changes to the _meanings_ of other laws.
           | 
           | As such, the tax-filing instructions, ideally, have to be
           | constructed in such a way that they cope _efficiently_ with
           | someone being able to pull a single jenga-block out of the
           | tower that is tax law, that topples over a whole slew of
           | other instructions and definitions. The team of tax lawyers
           | and technical writers that maintain the instructions should
           | not have to sit down and rewrite every instruction on every
           | schedule /form, just because one of the core definitions
           | changes. Because that's gonna happen a lot! Every year, even!
           | 
           | If I was in charge of a team of (automation-minded) lawyers
           | and technical writers maintaining the tax-filing instruction
           | repository, I'd probably, ideally, want to factor out the
           | instructions into separate modular files _per law_ -- with
           | each file acting as a sort of Aspect-Oriented equivalent of
           | Javadoc. (Or, actually, something very much like Inform 7.
           | See e.g. https://i7-examples.github.io/Bronze/source_1.html)
           | 
           | So you'd see:
           | 
           | * Paragraphs that interpolate definitions as constants from
           | other laws' modules;
           | 
           | * paragraphs that have implicit AOP hooks for other laws'
           | modules to inject additional language into;
           | 
           | * the ability of a law to override specific sentences or
           | wording of the language of the laws so far;
           | 
           | ...and so forth.
           | 
           | This would be hell to _read_ , but it'd sure make the job of
           | dealing with changes in the law easy. (And it wouldn't be
           | something you'd really _read_ anyway -- more often, it 'd be
           | something you'd carefully poke at, while watching the
           | compiled result change live in a split pane. Like writing
           | LaTeX in LyX.)
           | 
           | ---
           | 
           | To be clear, I don't imagine that any _existing_ set of tax-
           | form language is actually maintained using some weird AOP
           | DSL.
           | 
           | Rather, I imagine that the maintainers are _manually_ doing
           | the same _business process_ that use of such an AOP DSL would
           | formalize.
           | 
           | They're maintaining a very non-intuitive "storage
           | architecture" for all the instructions that go into these
           | forms, to minimize re-working when the law changes; and then
           | -- _mostly_ manually, but maybe with a bit of Excel --
           | collating them together into new schedules and forms each
           | year.
           | 
           | And it's that "storage architecture" -- despite not being
           | something as rigid as source code -- that still nevertheless
           | forces the language of the instructions into the form you see
           | at tax-filing time, with the weird grammatical shapes, the
           | distant definitions, etc.
        
             | btilly wrote:
             | I have a simpler theory.
             | 
             | The law is the way it is because of the influence of
             | lobbyists. Those lobbyists include lobbyists for companies
             | that do things like payroll. They would like the system to
             | be complex to provide a regulatory moat that keeps other
             | businesses from competing with them. And by siding with
             | this or that special interest that cares about their piece
             | more than how sensible the whole is, the law is easy to
             | turn into a mess.
        
             | j45 wrote:
             | I hadn't considered maintainability as something to
             | consider in this area - appreciate the deep dive.
             | 
             | The saying bureaucracy can't help but beget bureaucracy is
             | another thing that comes to mind.
        
             | hoosieree wrote:
             | Real life is imperative, dynamically scoped, all global
             | variables, and every instruction contains an implicit
             | branch.
        
         | ska wrote:
         | Another comment pointed to this web form:
         | https://news.ycombinator.com/item?id=38843556
         | 
         | It's not a downloadable sheet , looks like, but it's something.
        
         | rozap wrote:
         | Why would they do that? If it's all out there in the open, then
         | everyone can find bugs/issues and then they'd have to deal with
         | them.
         | 
         | Also they'd probably lose a lot of revenue they collect from
         | fines.
         | 
         | Personal anecdote about how you don't fuck with the CRA. Back
         | in college in I got "free" room and board for year because I
         | was a resident advisor. When I, an idiot 20 year old, filed my
         | taxes, I did them wrong and under reported by around 1k. First
         | time doing Canadian taxes as a US citizen. A few years later I
         | got a fine for around $5500, which was a huge sum for a college
         | kid working part time. Turns out BC can match the fine levied
         | by the CRA. In hindsight, I would have been better off just not
         | having that job - I think I would have come out ahead. For the
         | rest of the time I lived in Canada I hired a CPA.
         | 
         | The IRS is warm and fuzzy by comparison. At least if you screw
         | up, the fine is proportional to the amount you under report.
         | (unless you're super rich...but that's a different thing)
        
       | nampas wrote:
       | That's funny, I made something similar a few years ago for the
       | IRS
       | 
       | https://nampas.github.io/tax-map/
        
         | tantalor wrote:
         | This is the worst version of Planarity I've ever seen,
         | congrats.
        
           | fragmede wrote:
           | For those that haven't played it, Planarity is a graph
           | untangling game.
           | 
           | https://www.jasondavies.com/planarity/
        
         | mp05 wrote:
         | Dear lord, that's frightening.
        
         | mmsc wrote:
         | Very very cool. Is there a word for a directional graph in this
         | circular form? Also, is every edge unidirectional, or are there
         | some bidirectional edges? I would hope (and assume) there's
         | nothing bidirectional, but...
        
           | chipaca wrote:
           | From the looks of it that's been generated by `circo`, which
           | is part of GraphViz and describes itself as a "filter for
           | circular layout of graphs" and                      circo
           | draws graphs using a circular layout (see Six and Tollis, GD
           | '99            and ALENEX '99, and Kaufmann and Wiese, GD
           | '02.)  The  tool  identifies            biconnected
           | components  and draws the nodes of the component on a cir-
           | cle. The block-cutpoint tree is then laid out using a
           | recursive  radial            algorithm.  Edge  crossings
           | within a circle are minimized by placing as            many
           | edges on the circle's perimeter as possible.   In
           | particular,  if            the  component is outerplanar, the
           | component will have a planar layout.            If a node
           | belongs to multiple non-trivial biconnected  components,  the
           | layout puts the node in one of them. By default, this is the
           | first non-            trivial component found in the search
           | from the root component.
        
             | mmsc wrote:
             | Doing a bit more digging, it's using cytoscape[0] which is
             | similar to graphviz. If you search your favorite search
             | engine with "Cytoscape Session Viewer", you'll find many
             | websites displaying the same type of graphs (select layout:
             | circle).
             | 
             | FYI, circo doesn't always output a circle. I recently
             | created https://github.com/MegaManSec/SSH-
             | Snake/blob/main/tools/SSH-... using circo.
             | 
             | [0] https://cytoscape.org/
        
           | Pathogen-David wrote:
           | You can generate them using Graphviz's circo layout engine.
           | https://graphviz.org/docs/layouts/circo/
           | 
           | According to them/Wikipedia, the layout's name is simply
           | "circular layout".
           | https://en.wikipedia.org/wiki/Circular_layout
        
       | maelito wrote:
       | In France, these rules are available as a website, an API, a NPM
       | package, and raw rules in the https://publi.codes language.
       | 
       | https://mon-entreprise.urssaf.fr/developpeur
        
         | spydum wrote:
         | thats pretty cool, I wonder though what the implication is if
         | there is a bug or package hijacking? Are you expected to cross
         | check the calculations and they are only offered as a
         | convenience, and not authoritative?
        
           | cbarrick wrote:
           | The formulas are published in a programming language called
           | M. There is an open source implementation [1].
           | 
           | > There is currently no legal guarantee of any kind about the
           | correctness of the code produced by the Mlang compiler, or by
           | the results produced by the interpreter of Mlang. However,
           | authors have been in contact with DGFiP to validate Mlang,
           | and the system passes all the private DGFiP tests as of Sept.
           | 2022 for the version of the source files responsible for
           | computing the tax on the 2018, 2019, 2020 and 2021 income.
           | 
           | [1] https://github.com/MLanguage/mlang
        
             | adolph wrote:
             | MLanguage in this context is not M, aka MUMPS.
             | 
             |  _MUMPS ( "Massachusetts General Hospital Utility Multi-
             | Programming System"), or M, is an imperative, high-level
             | programming language with an integrated transaction
             | processing key-value database. It was originally developed
             | at Massachusetts General Hospital for managing hospital
             | laboratory information systems._
             | 
             | https://en.wikipedia.org/wiki/MUMPS
        
               | mattgrice wrote:
               | Useful comment. Unfortunately M or MUMPS is still in
               | active use at EPIC, etc. Far too many good grads of
               | midwest schools get sucked into working for EPIC or the
               | insurance mines in Des Moines, Omaha, etc. UW Madison,
               | UIUC, and Michigan are way too good of schools to be
               | sending their grads to work on medical records or
               | insurance.
        
           | MrPatan wrote:
           | Do you also worry that rogue employees or literally anybody
           | with the keys to the office of a printer could have been
           | changing the texts of laws as printed in official
           | publications and books for the past few hundred years?
           | 
           | If not, why not?
        
             | spydum wrote:
             | Way? I thought the op was saying the French government
             | published the code. Totally different if not.
        
         | ingenika wrote:
         | There is also a canada version for simulation:
         | `https://www.canada.ca/en/revenue-
         | agency/services/e-services/...`
         | 
         | Or Quebec Version
         | 
         | `https://www.revenuquebec.ca/en/online-services/tools/webras/`
        
         | simonw wrote:
         | Here's that NPM package: https://www.npmjs.com/package/modele-
         | social and https://github.com/betagouv/mon-entreprise
         | 
         | This is incredible. I absolutely love the idea of official,
         | government-supported machine readable versions of these kinds
         | of rules.
        
         | woobar wrote:
         | Is this a toy? I get this warning on the English version of
         | that website:
         | 
         | "Calculations are indicative. They are not a substitute for
         | actual statements from Urssaf, the tax authorities or any other
         | organization."
         | 
         | [1]
         | https://mycompanyinfrance.urssaf.fr/developer/iframe?module=...
        
           | maelito wrote:
           | The code of this relatively recent project wasn't promoted
           | (yet ?) as the internal official closed-source calculator.
        
       | choeger wrote:
       | This demonstrates how _any_ algorithm, software or not, works:
       | Start with something desirable or necessary and add complications
       | until you end up with a mess that can be used to yield arbitrary
       | results, drive outsiders into madness, and summon some lesser
       | demons if read in a chanting manner.
       | 
       | Now what could be done about this? The obvious answer is
       | refactoring. That's what politicians promise in election
       | campaigns and junior software developers demand when encountering
       | a new code base. It's rarely ever done in practice because no one
       | can disambiguate unnecessary from desired features and
       | complexities. The second answer would be a clean implementation
       | in some more formal framework (a statically typed language, a
       | theorem prover, ...). That second solution often fails when
       | attempted because the system is already unsound. Fortunately, no
       | one cares about those "weird corner cases" and everything is left
       | as-is until someone runs away with a million dollars or so.
        
         | cmrdporcupine wrote:
         | In actuality the CRA and recent federal gov'ts have done a lot
         | to simplify taxes in Canada. It's way simpler these days.
         | Though obviously this payroll stuff is an exception.
         | 
         | 10-15 years ago there were piles of special exemptions carved
         | out for all sorts of things (mostly to buy votes.) These days,
         | if you don't have self-employment or foreign investments, etc
         | and are just the typical paycheque-receiving wage slave, filing
         | taxes is trivial and mostly automatic.
         | 
         | The bulk of the complication in the above graph seems to do
         | with the fact that Canada is a highly federal system, with
         | provinces having various relevant powers and oddities carved
         | out as a result of that. That, and the existence federal
         | employment insurance and pension plan systems.
        
           | switchbak wrote:
           | "trivial and mostly automatic" - but not so automatic that
           | it's done for you, as in some other countries. And that's by
           | design - Intuit still wants their cash cow providing that
           | sweet sweet revenue every tax season.
        
             | cmrdporcupine wrote:
             | I don't see how Intuit has any pull on Canadian tax law or
             | influence with the CRA. And there are plenty of
             | alternatives. I used ufile.ca for years, way cheaper. And
             | honestly, just picking up the form and doing it yourself is
             | all my parents did for years.
             | 
             | I'm pretty sure we'll see what you're asking for within the
             | next 5-10 years. With them already having the T4s, etc. I
             | don't see why they couldn't have you login to their site,
             | confirm everything, and submit.
        
       | rsaz wrote:
       | Are there any countries with good, reasonable tax systems? I'm
       | only familiar with Canada and the USA, both of which are a bit of
       | a mess, though seemingly in different ways. I'd be very
       | interested in hearing what the process is like in other places.
        
         | dkga wrote:
         | Switzerland tax law is pretty straightforward and the cantonal
         | (local government) tax authorities are known for being very
         | helpful in explaining things to taxpayers in doubt, an
         | experience I had more than once.
        
           | bradley13 wrote:
           | I dunno, the sheer size of our personal (Swiss) tax return is
           | daunting - and we are pretty ordinary. Maybe not as insane as
           | the US, but "simple" would be different.
        
         | jqpabc123 wrote:
         | The EU has VAT (value added tax) which is added to each
         | purchase.
         | 
         | At the end of the year, there is nothing to report and nothing
         | to pay.
         | 
         | It doesn't get much simpler than this.
        
           | koliber wrote:
           | The original post is about income tax. While VAT is a tax, it
           | is not an income tax.
        
             | jqpabc123 wrote:
             | The post I responded to asked:                    Are there
             | any countries with good, reasonable tax systems?
             | 
             | VAT is a reasonable alternative to income taxes but neither
             | the question nor my response ever specified "income".
        
           | Fidelix wrote:
           | Not even remotely correct.
           | 
           | Each country in the EU has different income tax systems and
           | other types of tax. VAT is just one aspect that generally
           | doesn't cover even half of the tax burden.
           | 
           | OP is talking about the overall tax system.
        
           | aftbit wrote:
           | The EU doesn't have income tax? I think that's false.
        
             | jqpabc123 wrote:
             | Neither the question nor my response ever specified
             | "income".
        
               | aftbit wrote:
               | >At the end of the year, there is nothing to report and
               | nothing to pay.
               | 
               | That is what I was reacting to. You still need to file
               | taxes in the EU right? I know they have streamlined it a
               | lot in most countries, but there is indeed something to
               | report, no?
        
         | swamp_donkey wrote:
         | I've filed a few returns in new zealand and it seemed pretty
         | simple, I was a simple case though
        
         | michael1999 wrote:
         | Not sure what good means. Nobody likes to pay tax.
         | 
         | If you mean legible, common-law taxation is going to be messy
         | by nature. Civil-law jurisdictions will be more legible. France
         | has published formulas for theirs.
         | 
         | If you mean simple, Estonia deliberately chose a simplified
         | foundation for their post-Soviet era -- a tripod of land-value
         | tax (not a property tax); flat income tax with some basic
         | deductions; and VAT. They are new enough that exceptions are
         | probably modest.
         | https://en.wikipedia.org/wiki/Taxation_in_Estonia
        
         | sira04 wrote:
         | The Faroe Islands have the best one according to this article I
         | read recently https://prospect.org/world/best-tax-system-on-
         | earth-faroe-is...
        
         | xnorswap wrote:
         | Depends on your circumstances. The UK seems reasonable for
         | most.
         | 
         | For the employed, you let your employer worry about it. You
         | might occasionally get given a "tax code" which essentially
         | equates to your tax free allowance. If that happens you just
         | let your employer know and they'll sort it, and you can confirm
         | by checking your payslip.
         | 
         | If you're determined to have over or underpaid tax (e.g. your
         | income went down unexpectedly), your tax code for the following
         | year will be adjusted so that you'll end up clawing back the
         | money over time.
         | 
         | Unless you are self employed or have special circumstances,
         | then you'll avoid having to file a "self assessment" form.
         | 
         | And to be clear, the "special circumstances" are nothing like
         | the US' system of hundreds of different "deductions".
         | 
         | Even if you do have to fill in a self assessment form, you can
         | do so with an online form, which actually takes into account
         | answers rather than making you manually have to do things such
         | as "Skip section 5 if you have put a number of in section 4b or
         | a number less than 3340 in section 2a" that the US forms love
         | to make you do.
         | 
         | Filing my US taxes is literally 99% of all paperwork I have to
         | do each year, and I don't even earn enough to actually have to
         | pay anything. Yet I still have to calculate everything, then
         | write down the right numbers in the "foreign earned income
         | exclusion" boxes, then tally it all up to make sure it's still
         | zero, then make sure I've copied the right numbers to the right
         | boxes and haven't mistakenly transposed any numbers, then copy
         | those zeroes down to the right boxes through the rest of the
         | 1040.
         | 
         | The UK has had this system for decades, it has had online tax
         | filing since 3 July 2000. It's had PAYE (pay as you earn tax,
         | i.e. tax deduction at source) since 1944.
         | 
         | The UK feels stagnant as heck, so I wouldn't recommend people
         | actually move here, but its tax system is trivial to the point
         | of ignorable if you're employed.
        
         | Tade0 wrote:
         | I can give you a primer on the system for independent
         | contractors in Poland:
         | 
         | -Flat minimal monthly pension contribution either filed as a
         | business expense or just deducted from gross income - subtly
         | different, but functionally the same as long as you have
         | income. Calculated as the pension contribution of someone
         | making 60% of the average wage - the exact number is published
         | on an annual basis.
         | 
         | -Income tax: every January you can select one of several
         | schemes:
         | 
         | 1. Two brackets - 17% and 32% with the first 30k PLN ($7k USD)
         | tax-free and ability to file taxes together as a married
         | couple, in which case you effectively average out your and your
         | spouse's incomes and pay taxes accordingly.
         | 
         | 2. 19% flat rate, no tax-free range, no rules like for
         | marriages.
         | 
         | 3. 12% flat rate, mostly same as 2., except on top of that you
         | can't file business expenses. There a few different rates in
         | this scheme, but IT generally falls under the group charged
         | 12%.
         | 
         | Healthcare contributions depend on tax scheme chosen above and
         | are calculated as a percentage of gross income from the
         | previous month minus deductions and expenses.
         | 
         | 1. - 9%, 2. - 4,9%, 3. - 3%.
         | 
         | That is mostly it. Regular employees have more complicated
         | rules with employer contributions on top of gross income and
         | small deductions like for living sufficiently far from the
         | workplace, having an internet connection and whatnot, but they
         | don't add up to much.
        
         | pzduniak wrote:
         | In Poland there are some complexities when you run a company /
         | employ, but as an employee it's relatively straightforward UX
         | where you click through a government-operated "income tax
         | fillings wizard" and either just OK a pre-filled declaration or
         | add a couple missing items. Paper filling is a bit more
         | complicated, but I think you can get help at the tax office to
         | get 1 or 2 forms sorted out.
         | 
         | For self-employment I send 2 documents per month regarding my
         | expenses (which is somewhat easy if you understand the rules),
         | plus one or two summaries per year. Hiring is a bit more
         | complicated, I only file simplified declarations for employing
         | private people as contractors. Otherwise I'm pretty much a
         | worst case scenario as I file 7 different yearly declarations
         | covering most possible sources of income defined in the law.
         | It's not that bad, but it could be better.
         | 
         | Running a company can be practically automated with an online
         | accounting SaaS, including payroll. Laws tend to be relatively
         | understandable and there isn't much complicated math. Most of
         | the recent confusion was around shitty laws poorly implemented
         | and then partially reverted by our previous government. I did
         | not enjoy that, but there were some decent online writeups
         | explaining how to proceed.
        
       | narrator wrote:
       | Being someone who has some experience with tax law, the cycle of
       | tax complexity goes like this:
       | 
       | 1. Tax law is passed.
       | 
       | 2. Really smart CPAs and Tax Lawyers figure out ways to legally
       | avoid paying taxes.
       | 
       | 3. Tax people issue regulations intended to close those
       | loopholes.
       | 
       | 4. Administrations change and they want to win votes and tweak
       | the economy so they lower some taxes and add tax breaks.
       | 
       | 5. New administration comes in and selectively reverses previous
       | administration's program because of politics.
       | 
       | 6. If the tax is international tax, then add really smart tax
       | lawyer doing multi-jurisdictional tricks to lower taxes (e.g
       | Double Irish With a Dutch Sandwich[1]) , governments trying to
       | encourage multi-nationals to do business there by adding
       | incentives to their tax code, the OECD coming in and trying to
       | standardize tax stuff across jurisdictions to prevent this,
       | individual pairs of countries doing tax treaties with each other,
       | etc.
       | 
       | [1] https://www.investopedia.com/terms/d/double-irish-with-a-
       | dut...
        
         | cperciva wrote:
         | None of this complexity is from trying to plug tax loopholes.
         | Most of it is from politicians wanting to name things.
         | 
         | For example, for decades Canada has had a "personal amount" tax
         | credit -- for arcane reasons, rather than saying "the first $X
         | of income isn't taxed", the lowest tax bracket starts at $0 but
         | there's a non-refundable credit equal to the lowest tax rate
         | times $X. Then a politician came along and said "we should
         | increase the personal amount so that people can earn more money
         | without paying taxes... but we don't want to decrease taxes on
         | the top 1%". So now we have a "personal amount" which depends
         | on your income. Similarly, in BC we have the "BC Tax Reduction"
         | which is an extra tax credit given to people with incomes
         | between (roughly) $22k and $36k.
         | 
         | Both of those examples could have simply been implemented as
         | tax brackets but voters get far more excited about a "Tax
         | Reduction" than they do about a new tax bracket.
        
           | p_j_w wrote:
           | >Both of those examples could have simply been implemented as
           | tax brackets but voters get far more excited about a "Tax
           | Reduction" than they do about a new tax bracket.
           | 
           | Doesn't sound like the problem is entirely on the politicians
           | here.
        
           | jessriedel wrote:
           | > None of this complexity is from trying to plug tax
           | loopholes. Most of it is from politicians wanting to name
           | things.
           | 
           | The effect you describe is very real, but "loop hole closure"
           | is certainly a source of complexity too, e.g., the US's
           | insane alternative minimum tax (AMT), which nearly duplicates
           | the amount of tax work to be done by insisting you compute
           | your taxes under a second set of assumptions. The idea was to
           | make sure people who were using "loopholes" (or just like,
           | reasonable features of the tax system) to pay at least above
           | a certain amount.
           | 
           | Of course, the sane solution would have been to choose tax
           | policies that combine together reasonably. As always,
           | loopholes (in the sense of "unjustly low" amounts of tax) are
           | much more likely to be created rather than fixed by
           | complexity.
        
             | TimPC wrote:
             | AMT is also completely insane when it interacts with
             | legitimate deductions and deferrals that aren't loopholes.
             | For instance stock options from start-ups for stock that
             | can't yet be sold.
        
         | phpisthebest wrote:
         | I have a problem with calling explicit exemptions, call outs,
         | and other things as "loop holes" as if they were no intended to
         | be used to avoid taxation.
         | 
         | This is simply incorrect, organizations, people, and groups all
         | lobby the government to include their pet line item as an
         | exemption, deduction, or credit.
         | 
         | These are not "loop holes" and a CPA or tax lawyer having the
         | knowledge to fully utilize all of them is not " legally avoid
         | paying taxes" as those taxes where not owed in the first place.
         | 
         | In order to get to the point where paying the correct amount of
         | taxes you owe by law is "using loophole to avoid taxes" one has
         | to assume 100% of all income is belongs to the government and
         | we are just figuring out how much the government is going to
         | allow us to keep. I reject that
        
       | bojangleslover wrote:
       | Biggest scam of the century that governments have outsourced tax
       | collection. Even my fairly financially literate coworkers have no
       | idea what "withholding", "W-2" and "FICA" are. They think the
       | employer "match" is "free money" and don't understand the
       | fundamentals of a 401k. No idea who manages the money, where it
       | goes, etc. And I work at a hedge fund.
       | 
       | They just check their bank account every other Friday. That's it.
       | 
       | Compare this with the self-employed who seem to "obsess" over
       | taxes, despite barely paying a higher rate.
       | 
       | The phrase "out of sight, out of mind" doesn't seem to do it
       | justice.
        
         | piperswe wrote:
         | A 401(k) match _is_ free money though. When you leave the
         | company, you can just cash out the account - the penalty will
         | still probably be less than the match gave you, so you come out
         | ahead.
         | 
         | Of course, it's best to just let it sit in retirement accounts
         | until you can take a qualified distribution.
        
           | jacobr1 wrote:
           | Only in the sense that you can optionally not accept it. But
           | it still is part of your compensation, as is in effect, even
           | the "employer-paid" portions of healthcare and other
           | benefits. From the perspective of the employer they are part
           | of your costs and the direct payments reflect that, likewise
           | you would need to pay those costs yourself if you were self-
           | employed.
        
             | Spivak wrote:
             | So it's a semantic thing, employees know it's not literally
             | free and comes from their employer but it's free in the
             | sense that it's in excess of their negotiated salary.
        
           | amluto wrote:
           | > When you leave the company, you can just cash out the
           | account
           | 
           | You can even get fancy and roll it over into an IRA and, if
           | you have excess cash, convert it to a Roth IRA.
        
         | soared wrote:
         | Im in the same boat - would you mind explaining to us every
         | other Friday folk why the employer match isn't free money?
        
           | irrational wrote:
           | I'm wondering the same thing. The money has been going into
           | my 401k for decades. When I start using it after retirement
           | when I am 70 or so years old, is there some gotcha I'm not
           | aware of?
        
             | astura wrote:
             | No, the only real "gotcha" is some employees have their
             | match on a vesting schedule and you lose the non-vested
             | portion of the money if your employment ends before the
             | vesting schedule. These are typically not that very long -
             | a few years.
        
           | astura wrote:
           | The above comment is just an incoherent, off topic rant.
           | Ignore it - it's verbal diarrhea.
           | 
           | Employer match is "free money" (there's no "gotcha" other
           | than vesting schedules) and 401k is a part of the American
           | tax code whereas this is an article about Canadian payroll.
           | 
           | I presume they are complaining about the fact that employers
           | actually budget their match it as part of total compensation
           | or whatever. So it's "really just a part of your salary." Or
           | perhaps they are just mad they have to put the match into the
           | 401k and can't opt to redirect that part of their salary to a
           | non-tax advantaged account. Who knows?
        
             | ska wrote:
             | The basic 401(k)/403(b) rough equivalent in Canada is an
             | RRSP. They also commonly have employer match sometimes.
             | There are differences of course.
        
         | dghlsakjg wrote:
         | I'm always surprised at the lack of financial literacy in the
         | general population.
         | 
         | It is genuinely shocking to me that there are hedge fund
         | employees who don't understand FICA and what a W2 means.
         | 
         | OTOH, having been self employed: I obsessed over taxes not
         | because I wanted to, but because it is a tremendous and
         | continuous pain in the ass.
        
         | pavel_lishin wrote:
         | > _Compare this with the self-employed who seem to "obsess"
         | over taxes, despite barely paying a higher rate._
         | 
         | I'd wager that it's because it's hard for me, as an employed
         | person, to fuck up my taxes so badly that the tax authorities
         | would come gunning for me; _most_ of that is handled by my
         | employer 's other employees. I just fill out a pretty basic
         | form, and count myself done.
         | 
         | Where as if I were self employed, I'd have to worry about
         | quarterly filings (I think?), and the knowledge that there's
         | absolutely nobody but me who's checking up on things.
        
           | freeone3000 wrote:
           | You are required to have quarterly filings. This happens so
           | infrequently with self-employed persons that the IRS has a
           | special section for if you were supposed to file quarterly,
           | but didn't.
        
           | mixdup wrote:
           | it's not super hard as a self-employed person, if you don't
           | want it to be. Just setup your business as a real company and
           | pay yourself via payroll instead of pass-through
           | 
           | There may be other tradeoffs, but there may also be other
           | advantages. the original point of just being aware of both
           | sides of the coin is a big part of it, most people don't look
           | at the deductions on their paycheck. hell, a significant
           | number of people think their entire tax bill is just what
           | they have to pay in April
        
         | throw0101d wrote:
         | > _The phrase "out of sight, out of mind" doesn't seem to do it
         | justice._
         | 
         | Which works the opposite way as well: people not setting aside
         | enough, which would probably happen if it was not pre-deducted.
         | Just ask then-musician / now-actor Will Smith:
         | 
         | * https://www.youtube.com/watch?v=y_WoOYybCro
         | 
         | * https://www.youtube.com/watch?v=6qCZfS_I-zM
         | 
         | * https://www.thethings.com/will-smith-28-million-irs-tax-
         | debt...
        
         | lopkeny12ko wrote:
         | If your coworkers don't know what withholding, a W2, and FICA
         | are, they are not "financially literate"...
        
         | alfl wrote:
         | > Biggest scam of the century that governments have outsourced
         | tax collection.
         | 
         | Last century, but yes :)
        
         | lotsofpulp wrote:
         | >Even my fairly financially literate coworkers have no idea
         | what "withholding", "W-2" and "FICA" are. They think the
         | employer "match" is "free money" and don't understand the
         | fundamentals of a 401k. No idea who manages the money, where it
         | goes, etc. And I work at a hedge fund.
         | 
         | Considering spending 5 minutes on Wikipedia looking up those
         | terms would give a pretty good understanding, your coworkers
         | only do not know because the do not want to know.
        
         | fasthands9 wrote:
         | What part of that is bad? Don't we want a system where
         | everything is clear to the taxpayer how much they owe and they
         | can be certain how much they receive each pay check?
         | 
         | For those who care about finance and want to know - it is easy
         | to figure out where your money is. With a 401k you do have
         | basic choices and can monitor things pretty well. Other
         | alternatives seem to be pensions (where the employee really can
         | see nothing) or leaving it to each person to decide completely
         | (which the government doesn't like because a certain amount
         | will blow it all and then they will have to pay for them when
         | they are old anyways)
        
         | madamelic wrote:
         | > Biggest scam of the century that governments have outsourced
         | tax collection.
         | 
         | Not sure if this is what you were getting at but in
         | Pennsylvania, US, the school and local taxes are collected by a
         | variety of law firms / tax firms with no relation to the
         | government because they are entirely private firms that have
         | been given full reins.
         | 
         | So the municipal tax firm for county A may not be the same for
         | county B. What makes this even more terrifying is you only
         | learn this when you get your first "pay us or else" letter from
         | a law firm that essentially is just "we are your municipal tax
         | authority, pay us $600 because we have calculated you are
         | wrong".
         | 
         | And apparently they are frequently wrong and assume best case
         | scenarios in their favor. There's a huge collection of "Is this
         | a scam?" questions about it online. For an example of how
         | terrible they are, if you move to PA in May, there is a very
         | good chance they'll demand taxes for the year previous to when
         | you lived there. That's what happened to me and apparently many
         | others.
        
       | concordDance wrote:
       | I once made one of these for HMRC's self assessment tax
       | calculation[1], it had about a thousand nodes.
       | 
       | [1]
       | https://assets.publishing.service.gov.uk/media/5dfa35f4e5274...
        
       | CaliforniaKarl wrote:
       | It's charts like this why payroll providers exist. See the
       | relevant _Bits About Money_ post at
       | https://www.bitsaboutmoney.com/archive/payroll-providers-pow...
        
         | j45 wrote:
         | It's still math and the standardizing to ensure what payroll
         | providers submit is correct is still checked by the government,
         | who could provide said standard.
        
           | worik wrote:
           | When things get complex even the payroll providers get it
           | wrong
           | 
           | Where I live (New Zealand) holiday pay got complex, and quite
           | a few civil service payrolls got it wrong (IIRC by a few
           | different providors). It tooke years for anyone to notice,
           | and has taken years, and billions, to put right.
           | 
           | Keep it simple. Please
        
       | juujian wrote:
       | Very nice chart. Since the bubbles are wider than they are high,
       | I would have probably changes the direction from left to right.
       | Which in graphviz in theory (but only in theory!) takes just one
       | line.
        
       | transcriptase wrote:
       | The fun part about being Canadian is that you get to compete with
       | the entire world for remote jobs with Canadian companies, but no
       | company based outside of Canada wants to deal with hoops required
       | to hire a remote employee based in Canada if they don't already
       | have a presence here.
        
         | busterarm wrote:
         | I know one L.A.-based company that hires tons of remote
         | Canadians, especially in engineering, because they're
         | cheaper...but they're essentially a payroll/business accounting
         | company.
        
         | funksta wrote:
         | Try finding work as a sole proprietor contractor, remotely for
         | a US company. It's cheaper for them vs hiring an in-office
         | employee, and with higher US tech salaries and currency
         | conversion, you'll generally come out ahead too
        
           | j45 wrote:
           | A foreign company doesn't need to make it easy to hire an
           | employee who is a Canadian.
           | 
           | If there is an advantage to a Canadian to be employed from a
           | foreign company, it's maybe a bit more up to them if they
           | want to do a bit to stand out a lot.
           | 
           | A single person corporation in Canada akin to a professional
           | corporation like a doctor or lawyer may have is not out of
           | the question, especially with the advantages it can provide.
        
         | ska wrote:
         | This is pretty true most places, hiring non contract (e.g. full
         | time) employees in a different country is a pain in the ass.
         | Europe is trickier than Canada, fwiw, on average at least.
         | 
         | These days there are a number of companies that specialize in
         | simplifying this, including liability shields, but of course
         | for a fee.
         | 
         | Honestly it's easier to do it as consulting or freelance
         | contracts, but that puts the employee in exactly the same
         | position as OP. Still, for e.g. typical tech jobs an account to
         | sort it all out for you will be maybe 3k or so, many will opt
         | for that.
        
         | 1letterunixname wrote:
         | This sounds like an under-exploited business opportunity for
         | Canadian staffing and consulting companies. Where there is
         | difficulty for some, there is defensibility for others.
        
       | dangerboysteve wrote:
       | Last time I looked at Canadian payroll services, many were very
       | affordable. Why bother spending the time on this ?
        
         | robertlagrant wrote:
         | Why should calculating how much money to give the government
         | cost money?
        
           | dangerboysteve wrote:
           | Because of the time it takes to record and distribute
           | everything and pay the government.
        
         | gus_massa wrote:
         | He likes solving almost imposible math problems.
        
         | chrisfosterelli wrote:
         | Paying for something helps but doesn't entirely free you from a
         | responsibility to understand this flow. Because an employee is
         | going to ask you why they have X on their payroll and not Y
         | like they calculated on their end and then you have to spend an
         | afternoon reverse engineering everything the tool did because
         | "our payroll tool just did it like that" isn't a very
         | professional answer.
        
       | jerf wrote:
       | Are there any loops?
       | 
       | I extend this question to all the people who have posted their
       | own graphs of other similar things.
        
       | robertlagrant wrote:
       | I think what's clear is that regardless of how complex this
       | appears, we should never blame mistakes or loopholes arising from
       | this complexity on the law makers. Only on tax payers.
        
         | j45 wrote:
         | And the cost.
        
       | from-nibly wrote:
       | The solution is not to automate or codify any of this, it's to
       | remove it. This is utter nonsense. What problem could this
       | possibly solve other than widening the equality gap?
        
       | Evidlo wrote:
       | Devil's advocate: I have never seen a GraphViz plot that didn't
       | look like spaghetti, so the fact that this plot looks like a mess
       | doesn't mean much to me.
        
       | orzig wrote:
       | I'm in the US but I'll say for sure that things like this are
       | about half the reason I haven't hired any employees for my LLC. I
       | wish I could, but I'd be de facto hiring an accountant as well!
        
         | jweir wrote:
         | If you are considering hiring and the hire is a developer or at
         | all involved in research and experimentation make sure you are
         | well versed in Section 174.
         | 
         | You could be on the hook for a large tax bill since you have to
         | write off developer expenses over 5 years - this is true
         | whether an employee or contractor.
         | 
         | Hopefully it will be repealed* - but if not it is one of those
         | things that no one would expect to exist since it is in the
         | words of Senator Wyden "stupid."
         | 
         | https://www.law.cornell.edu/uscode/text/26/174
         | 
         | * edit It won't be repealed but a law can be created to ignored
         | it until a future date. Once on the books, because of
         | accounting, it is very hard to remove a tax law.
        
           | shutupnerd0000 wrote:
           | My guy, you're replying to someone that said theyre not
           | considering hiring
        
             | orzig wrote:
             | That's fine, I appreciate it! We're all conversing in
             | public, and I'm sure it will be useful to someone.
             | 
             | And besides, this information makes me even more happy with
             | an opinion I already have - isn't that what the internet is
             | for?
        
         | IG_Semmelweiss wrote:
         | If you ever consider to, *given the remote work trends*,
         | consider this:
         | 
         | I'd place high importance on the employee state to the state
         | you are hiring them out of.
         | 
         | Some states are a nightmare to deal with. For example, NJ, CA,
         | NY and OH. Once you are registered in X state, your company is
         | fair game to be pursued for any kind of perceived (lack of)
         | compliance by that state, long after that employee has left you
         | for another job. For example, you could earn a large fine for
         | not filing to report you have no staff in the state.
         | 
         | States that I found were lovely to deal with were ID, TN, and
         | TX.
         | 
         | Generally speaking, its highly recommendable to hire employees
         | from your state only for this reason. I would not hire unless
         | you are absolutely needing to.
        
           | pnw wrote:
           | I got a notice for unpaid back taxes from some state agency
           | in California for a company that had been sold over a decade
           | earlier, merely because we had one part-time employee in
           | California for a few months.
        
           | newZWhoDis wrote:
           | This. I never hire anyone from NY or CA out of principle.
        
         | jjeaff wrote:
         | As far as calculating payroll and remitting payments to the
         | proper agencies federally and in their respective states, that
         | shouldn't be a hindrance at all. There are countless payroll
         | service companies that will do all the calculations and
         | remittances for $30-$50 a month per employee. You definitely
         | don't need an accountant for regular payroll.
        
         | danjc wrote:
         | Doesn't a PEO like ADP make this a lot easier?
        
         | hn_throwaway_99 wrote:
         | Like another comment said, there are reasons payroll companies
         | exist, and these days there are tons of services that make this
         | easy to do, compliantly. E.g. there is a good reason like the
         | majority of small/medium-ish sized business I know use Gusto
         | because they make it really easy to add contractors or
         | employees (and I'm not specifically pitching Gusto, there are a
         | lot of competitors you can search for). While these products
         | aren't free, the benefit of their SaaS model is that it's a
         | per-employee cost that can grow with you.
        
         | pnw wrote:
         | This is why PEO's like Justworks are great IMHO. You can offer
         | the big company benefits experience without getting ground to
         | dust by federal/state/local regulations. I can't imagine going
         | back to the old way at any small company.
        
         | pcthrowaway wrote:
         | If the issue is figuring out payroll (rather than accounting
         | complexities that arise from having additional expenses), you
         | can also hire via remote.com or deel.com, even if hiring
         | domestically, as long as your employee is either salaried or
         | operating as an independent contractor (not actually an
         | employee in that situation though)
         | 
         | Employers of record ensure compliance with all local laws and
         | basically just bill you the employee's fully loaded cost, plus
         | their service fee
        
       | neilv wrote:
       | Several years ago, I worked through my US IRS tax return forms by
       | coding the data and calculations in Scheme. The representation
       | ended up being that each form line value was a Scheme procedure
       | that called other such procedures, which was one way to enforce
       | dependencies. (Fortunately, there were no cycles in the
       | dependencies, like the article author found in their CRA payroll
       | deductions work.)
       | 
       | I don't have the code handy, but the procedures typically looked
       | like this:                   (define (form-1234-line-22--foo-
       | income-dollars) 234.00)                  (define
       | (form-1234-line-23--taxable-bar-income-dollars)           (max (+
       | (form-1234-line-22--foo-income-dollars)
       | (form-1234-line-21--baz-income-dollars)
       | (form-1234-schedule-x-line-10--total-blort-dollars))
       | 0.00))
       | 
       | It was a lot of work, but (since I used error placeholders for
       | many code paths my own data wouldn't exercise) not that much more
       | work than I had to do anyway, for doing my returns with just the
       | PDF forms and instructions. (The extra work came when I had to
       | enter and double-check the form data manually in the official
       | format, for this one-off exercise.)
       | 
       | I did this exercise to see what it would look like, would it save
       | me time/headache, and did it suggest anything about DSLs for this
       | kind of work (say, for domain experts to codify and maintain
       | something more formal and checkable than the form instructions or
       | tax code).
        
         | cdcarter wrote:
         | Did you take advantage of the homoiconicity of scheme to make
         | this happen?
        
           | neilv wrote:
           | In this case, I was first seeing what could be done with
           | basic Scheme algorithmic programming language mechanisms
           | (e.g., using procedures and the magic of toplevel
           | definitions).
           | 
           | Then, after seeing how tax form logic ended up that way, one
           | direction would be to define a DSL that makes that easier to
           | work with. For example, if we find everything can be
           | implemented as these procedures, or with maybe with an
           | additional concept (such as to handle cycles like in the
           | article), a simple first step DSL might be another
           | s-expression language that has magic variables that are more
           | akin to spreadsheet cell references, in that the dependencies
           | are evaluated in order. And it might also do things like
           | populate a hashtable with the cached values for application
           | use (e.g., PDF form-filling). That DSL might be implemented
           | as a simple `syntax-case` or `syntax-parse` transformer. If
           | that works and could, we could optimally make it more
           | palatable/marketable/politic by defining a keywords-and-
           | whitespace grammar that parses by transforming those syntax
           | objects to syntax objects in our intermediate s-expression
           | DSL (which transforms to the basic Scheme code approach we
           | worked out originally).
           | 
           | There are other valid ways (say, you want tax law logic to be
           | definable dynamically at run time). Though some involve
           | `eval`, which I discourage. https://lists.racket-
           | lang.org/users/archive/2014-July/063597...
        
         | jdmichal wrote:
         | I used to do the same with just Excel. First sheet called 1040,
         | one row per line. Schedules and worksheets got additional
         | sheets, so I could easily pull in the values from and to other
         | sheets.
        
       | sidcool wrote:
       | How does one even begin Designing a software system for such a
       | complex process! The impact of a bug in such system would be
       | huge!!
        
         | jeffrallen wrote:
         | I once spent an hour removing a few cents' error in a salary-
         | computation and then 2 weeks implementing the correct one-time
         | payment to 200 staff in order to make them whole from a couple
         | years of incorrect salaries. The whole thing cost about $2000,
         | so each individual adjustment was small, but we had to do it
         | with transparency and humility to maintain worker happiness.
        
         | j45 wrote:
         | It would need to be flexible, auditable, historical (each year
         | ran it's version).
         | 
         | So, basically, no software devs really at the business analysis
         | layer. The process mapping has to be the code. Decision making
         | in the process mapping has to be editable.
         | 
         | It's quite doable and present with some of the current software
         | packages that operate in the finance / insurance / banking /
         | government / enterprise space.
         | 
         | Imho, how software has historically been created for business
         | is now broken. Software used to aim for a fixed, or slowly
         | changing operating model, and the pandemic kind of introduced a
         | bunch of ongoing change.
         | 
         | Software will become more malleable as a result.
        
       | jeffrallen wrote:
       | Would be interesting to have a constitutional requirement on
       | government to be able to explain taxes to citizens in a
       | declarative language with a max complexity of N bits of
       | information.
       | 
       | Railroad unions: you want an exemption for your members? Write a
       | diff and go to war with hedge fund managers to get the bits you
       | need to implement your boondoggle. :)
       | 
       | I'm reminded of the "delta this build causes in bytes of
       | flashrom" reports you see at the bottom of a compile job on
       | embedded platforms.
        
       | phailhaus wrote:
       | Graphs are terrible for visualizing dependencies. Even a
       | reasonable system can "look messy" when rendered this way. I'd be
       | more interested in seeing what this would look like as a tangled
       | tree. [1]
       | 
       | [1] https://observablehq.com/@nitaku/tangled-tree-
       | visualization-...
        
       | nb_key wrote:
       | Canadian Federation of Independent Businesses (CFIB) has a more
       | simpler template for small business. https://www.cfib-
       | fcei.ca/en/tools-resources/payroll-deductio...
        
       | mrloba wrote:
       | It's a running joke in our org that we should always vote for a
       | new government. Keep making the dependency graph messy and we'll
       | keep having a job
        
       | 1letterunixname wrote:
       | Complexity is a signal of attempted fairness, selective
       | corruption, or bureaucratic survival, stochastically mixed to
       | conceal the latter 2.
       | 
       | Canadian and US governments have enough information to calculate
       | taxes for you, but choose instead to impose all manner of
       | additional complexity, cost, and time sink on taxpayers of
       | varying degrees of sophistication because it's tradition. Norway
       | has prepared statements automatically for taxpayers for 20+
       | years.
        
       | Joel_Mckay wrote:
       | Doing your own taxes is like doing your own dental work.
       | 
       | You will never be able to keep up with the legal, bureaucratic,
       | and financial changes. Whatever a local competent accounting firm
       | charges, they will almost always recover their cost in a
       | commercial return.
       | 
       | If you have under 12 employees, than ADP payroll can work in some
       | situation.
        
       | SurgeArrest wrote:
       | Tax laws as well as other laws, need to have a requirement to be
       | rewritten from scratch and re-approved every 10 years or so, such
       | that no law or regulation is complex enough that an elected
       | official can't describe it in full before voting on it.
        
       ___________________________________________________________________
       (page generated 2024-01-02 23:01 UTC)