Tax declarations are fun

I need a bit of help as I can’t figure out what some of the fields require even with google translate.

Assume holding 1000 shares of SCHD, in 15/12/2025 a $0.2782 dividend was paid, total of $278.2, and -30% was deducted ($83.46), corporate actions to send to the tax agency show -15% of US WHT and -15% of supplementary tax. Closing value of SCHD on 31/12/2025 was $27.43.

Questions:

  • Is the below correct?
  • what must I put in the Zugang and Abgang fields?
  • what to put in the “in % oder CHF pro Stk.” field?
  • do I need to convert all numbers to CHF despite the corporate actions and ETF values being in USD?

Thanks in advance

I’d go to ictax, iirc you can enter your numbers and it gives you what you should do.

(But usually tax software pulls data automatically, not the case for your Canton?)

2 Likes

No, this is not correct. If you’ve bought these shares on Sep 24, 2025 or later (and thus, you only got the December dividend), the correct entries would be (everything needs to be in CHF):

  • CHF pro Stk.: CHF 21.73
  • Total in CHF: CHF 21’731
  • Bruttoertrag: CHF 221
  • Betrag für pauschale Steueranrechnung: 15%; CHF 33 (based on the DTA and only applies to foreign WHT, not additional Swiss withholding)
  • Zusätzlicher Steuerrückbehalt USA: CHF 33

This assumes that you hold this at a Swiss broker, otherwise you wouldn’t have had the double 15% deduction.

You can find the official tax values on ICTax. That also has a dividend calculator.

Zugang and Abgang would be to enter the buy and sell transactions. Tax authorities often don’t insist on filling this out, however, you should attach the broker statement as documentation. If you’re using decent tax software and there aren’t too many trades, it’s usually more convenient to enter the transactions and let the tax software calculate all dividends automatically. I don’t know whether there is still tax software that doesn’t support this.

1 Like

Thank you both @jay and @nabalzbhf, I see now in ICTax, it’s super handy, so I plug in the real number of shares there and copy the results over to the form, with the deductions, right?

I am assuming there’s a way to enable showing foreign WHT (Q)?

Right, it’s PostFinance who told me they “don’t do W-8 BEN”, but I have the docs to attach.

There weren’t any trades, just one buy last year.

I don’t think ICTax has an option for that. However, for US stocks and stock ETFs, it will always be 15%. Just copy the gross numbers and enter 15% for the two withholding parts.

As the PostFinance documents separately declare 15% US WHT and 15% additional withholding, all is well. That’s as good as it gets with a Swiss broker. I.e., the equivalent of an W-8 BEN was internally recorded, they just didn’t require a separate form for that (this is common these days).

1 Like

Don’t you just have to put in your buys and sells? The tax software normally figures out all the dividends etc. for you.

1 Like

Yep, still learning, thanks - I’d never played around ICTax before. So if one trades or just buys, I didn’t but just as an example, they’d put something like this in to get their numbers for the year, right?

Assuming one bought in early June (I did), then added shares (I did), then sold all or some at some point before the last dividend (I didn’t, but just to know) this is all they need to do?

Kept buying scenario:

Sold all scenario:

Then the Nennwert Stuckzahl number is wrong: or you put the final number of shares for the year and then manually adjust the other numbers to what was the # of shares you held at each dividend date to calculate the right dividend?

This. For the “Steuerwert” row, you enter the number of shares you hold at the end of the year. And for each dividend date you enter the number of shares you held at the day before the ex-date.

But I agree with @PhilMongoose, the normal way would be to enter the transactions in the tax software and let the rest be calculated automatically without any need to manually consult ICTax (or declare a summary line for the whole portfolio). I would do the latter only if the tax software doesn’t support that (correctly), or if I had so many trades for a single position that the manual ICTax approach is more convenient.

3 Likes

Thank you, answer’s pretty simple: I pay an accountant to do my tax declarations online, however I need to learn how to do it too!

Hey! The topic is “Tax declarations are fun” you will do it yourself and have fun doing so! :stuck_out_tongue:

But seriously, you do not need to go through this pain. Normally in the tax software you just enter the dates when you buy and sell the shares and the software should work out how much you had at each dividend date and calculate it for you. But you can also double check that.

3 Likes

Yeah, I understand, I want to learn to do it myself, but as with adjusting my motorcycle’s chain where I am getting visions of the wheel going flying off, or being electrocuted if I install a ceiling light, I get visions of being dragged to a dungeon under Matterhorn if I make a mistake in the tax declaration.

2 Likes

Not in VD unless I totally missed something all those years. :frowning:

2 Likes

I can confirm that it is not the case in Vaud

It sounds like this thread name should be changed to “Tax declarations are fun, as long as you don’t live in Vaud”.

In saying this, I just finished our tax declaration for 2025, and despite initial enthusiasm, I can report that it was in hindsight not fun.

7 Likes

I made a web front-end for that tool so you don’t have to do the complex set-up. I would be glad if anyone who has IBKR can test this and give feedback. Esp. if you have already generated a Datalevels PDF and can do a comparison of the outputs.

Even feedback on the instructions for the Flex Report download would be welcome. I tried to make it clear, but it still has a lot of steps involved.

The system currently supports tax years 2024 and 2025, so if you have XML for both, this will be useful to increase the amount of test data.

1 Like

Great! I can’t test though.

Best would be to package that so it can be self-hosted.

Challenge to package it to make the install simple, maybe docker, but you would need two images I guess for back/front end and some compose deployment. So, quite touchy for non-geeks.

I find self hosting is the main advantage of the initial project, so you don’t have to share data with a third-party (data level) especially since you bear the entire responsibility of the setup with them.

More than saving the 50.-/yr…

Integration can be fun and efficient, long-term it can be a pain in the a**, where you’re on your own dealing with all other parties who don’t care at all about the global picture.

You can already install and run the software on your own machine, it is just that it is quite involved and probably beyond what most people will want to tolerate.

I want to ultimately find a way to package it so that people can install on their own system more easily. There’s a bit of development to be done before I get to that stage though. Most importantly making sure the numbers it generates are correct!

3 Likes

It is really nice to see the traction we are getting in this topic! This project lowers the barrier for many and thus we will get more feedback with real world data. Also very nice work on the IB export docs!

Some points to consider IMO:

  1. How do you make sure that data related feedback is getting to the OpenSteuerAuszug (OSA) GitHub issues tracker? I think such feedback would be very valuable.
  2. How does the data anonymization work? IMO this should be really done client side before transmitting to the server. Please document this in a transparent way. If not supported, we can also add an option to generate an eTax without user data included. I think that is supported by the eTax standard (but possibly not yet by OSA).
  3. Importing vtandchill_2025.xml fails:
    Tax report generation failed. Please check your XML file format.: Failed to initialize KurslisteExchangeRateProvider with directory data/kursliste: Kursliste data for tax year 2026 not found. Available years: 2024, 2025. Please ensure kursliste_2026.sqlite or kursliste_2026.xml exists in data/kursliste
  4. I think you should add a link to OSA GH repo (and possibly issue tracker) for transparency.

BTW, I have started a dedicate thread for OSA. Probably move all the discussion to that thread, and just leave your initial post here so that people are aware of this new tool? Also adding @j_from_b here.

1 Like

This is because the xml has an end date of 2026-01-01 instead of 2025-12-31.

22 posts were split to a new topic: Individual taxation [2026]