Генератор налоговой декларации из отчетов IB

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

Добавил возможность вручную создавать некоторые события в портфеле, такие как продажи активов или получение дивидендов. В принципе, того же результата можно добиться, подредактировав выписку и отключив проверку ошибок, но это не так удобно. Такая возможность нужна для налогового планирования, чтобы в конце текущего года проверить, какие налоги породит продажа тех или иных активов и увидеть будущий суммарный налог для той или иной стратегии. Оценка налога будет естественно примерной, из-за колебания рыночных цен и курса валютной переоценки. Реализация пока сырая, в первую очередь ориентирована на простые отчеты IB, нет практически никакой обработки ошибок, результат надо контролировать вручную.

Чтобы рассчитать портфель в режиме симуляции, нужно использовать те же отчеты и настройки, что и для создания обычной декларации, дополнительно нужно заполнить план продаж и иных событий в Симуляция→План продаж. План это простой текстовый файл, который можно заполнить вручную, а лучше скопировать из блокнота, в файле каждая строка описывает одно событие, также можно писать комментарии, поставив в начале строки #. Строка состоит из параметров, разделенных запятыми.

Первый параметр - тип события: sale, buy, dividend или interest. Второй параметр опциональный - дата события; чтобы расчет не сломался, на эту дату уже должен быть установлен официальный курс переоценки, то есть дата не может быть в будущем. По умолчанию используется сегодняшняя дата, если она попадает в отчетный год (если делаем симуляцию 1 декабря 2022 года для 2022 отчетного года). Если симуляция делается для устаревшего портфеля, то по умолчанию берется последний день отчетного года (если делаем симуляцию 1 марта 2022 года для 2021 отчетного года).

Остальные параметры различаются для разных событий. Для продажи акций параметры: тикер, количество, цена, комиссия. Все параметры, кроме тикера, опциональные. В числовых параметрах можно использовать арифметические выражения и переменные POSITION (размер позиции на конец отчета) и LAST (цена актива на конец отчета). По умолчанию продается вся позиция по последней цене без комиссии. Валюта берется из отчета по тикеру. Примеры:
sale,TQQQ
sale,SQQQ,POSITION/2
sale,2022-12-01,QQQ,300,260,1.5
Также для акций есть отдельная команда buy, которая позволяет добавить в портфель позицию, про которую в отчетах нет информации. Параметры для нее: тикер, количество, цена, комиссия, валюта. Все параметры обязательные, переменные POSITION и LAST не определены (в том числе при последующей симуляции продажи этой позиции). Примеры:
buy,2019-06-01,SPY,1000,400,2.5,USD
buy,2019-06-03,SPY,1000,410,3.5
sale,2019-12-31,SPY,2000,500,3
Для продажи облигаций параметры: тикер, количество, цена, НКД, комиссия. Количество - объем номинальной стоимости, цена - процент от номинальной цены (так это отображается в отчетах, если куплены облигации номинально на 2000 USD и рыночная оценка позиции 1900 USD, то количество 2000, цена 95). В остальном совпадает с продажей акций. Примеры:
sale,BOND 7 1/2 12/15/20,10000,LAST-1,700,3
Для продажи опционов параметры: тикер, количество, цена, комиссия. Количество - количество контрактов, цена - цена опциона для единицы базового актива (так это отображается в отчетах). В остальном совпадает с продажей акций. Примеры:
sale,INTC  200918C00047500,1,4.5,3
Для выплаты дивиденда параметры: тикер, полный размер выплаты, валюта, удержанный налог. Если тикер есть в отчете (обычно он есть), то валюту и удержанный налог можно не указывать. Примеры:
dividend,SPY,100,USD,10
dividend,TLT,100
Для выплаты процентов параметры: полный размер выплаты, валюта, описание. Последний параметр опциональный. Примеры:
interest,100,USD,Broker interest
interest,2022-12-06,100,USD

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

Для желающих работать из командной строки (или интегрировать в свое приложение) можно использовать curl или что-то подобное по следующей схеме:
curl https://tax.ribclub.org/ -b /tmp/ribclub.cookie -c /tmp/ribclub.cookie -X POST \
-F 'command=process' -F 'year=2021' -F 'logLevel=3' \
-F 'includeOtherIncomes=1' \
-F 'includeCommissionsInRevaluatedPL=1' \
-F 'includeMonthlyFeeInRevaluatedPL=1' \
-F 'includeSnapshotFeeInRevaluatedPL=1' \
-F 'includeADRFeeInRevaluatedPL=1' \
-F 'includePaidInterestInRevaluatedPL=1' \
-F 'includeAdvisorFeeInRevaluatedPL=1' \
-F 'includeOtherFeeInRevaluatedPL=1' \
-F 'checkIfIncomeExists=1' \
-F 'stopOnFailedIncome=1' \
-F 'report[]=@/home/user/report_2021.csv' \
-F 'report[]=@/home/user/report_2022.csv' \
-o result.zip
Другие опции при необходимости можно посмотреть отладчиком в браузере. Все интерфейсы и имена могут быть изменены в любой момент без предупреждения.

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

К этому сообщению приложена почти пустая выписка за 2019 год EmptyActivity2019.csv брокера IB и результат работы генератора result.zip, созданный в режиме симуляции по выписке и следующему плану (в Симуляция→План продаж):
buy,2019-06-01,SPY,1000,400,2.5,USD
buy,2019-06-03,SPY,1000,410,3.5
sale,SPY,2000,500,3
interest,100,USD,Broker Interest
dividend,2019-06-25,SPY,2000
dividend,2019-09-25,SPY,2000
dividend,2019-12-25,SPY,2100
Можно использовать, чтобы оценить/проверить и работу самого генератора, и механизма симуляции.
Вложения
result.zip
(8.21 КБ) 103 скачивания
EmptyActivity2019.csv
(2.36 КБ) 138 скачиваний

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

ElectrostaticMister писал(а): 24 мар 2021, 18:33 Добавил поддержку валют, официальные курсы которых не устанавливаются Банком России, например израильский шекель ISL. Для таких валют ЦБ с 2010 года публикует курсы валют к USD от Reuters...
После 4 марта 2022 года Банк России перестал публиковать курсы Reuters для второстепенных валют. Заменил их для 2022 года и далее на исторические курсы валют от apilayer.com. Методику расчета новых курсов я не знаю, они похожи на прежние, но немного отличаются в третьей цифре. Скорее всего, эта разница никому не будет важна.


vanderalex
Сообщения: 4
Зарегистрирован: 14 дек 2022, 18:42

Генератор налоговой декларации из отчетов IB

Сообщение vanderalex »

Подскажите, такой нюанс. Делаю отчет для Казахстана, и для определенных периодов (например с середины 2021 до конца 2021 или с середины 2022 до конца 2022) делает нормально, а для начала 2022 выдает такую ошибку:
[2022-12-14 18:30:21.312565] ERROR: No currency rate found {"source":"NBRK","currency":"USD","date":"2022-01-07"}
[2022-12-14 18:30:21.312740] ERROR: Can't calculate tax {"date":"2022-01-07","description":"URA(US37954Y8710) CASH DIVIDEND USD 1.308965 PER SHARE (Ordinary Dividend)","revaluationCurrency":"KZT"}
Получается в вашем источнике курса валют нет курса KZT на какие-то дни. Что делать? курс валют на любой день/год можно получить на сайте нацбанка https://www.nationalbank.kz/ru/exchangerates/ezhednevnye-oficialnye-rynochnye-kursy-valyut

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

vanderalex писал(а): 14 дек 2022, 18:46 Делаю отчет для Казахстана, и для определенных периодов (например с середины 2021 до конца 2021 или с середины 2022 до конца 2022) делает нормально, а для начала 2022 выдает такую ошибку... Получается в вашем источнике курса валют нет курса KZT на какие-то дни.
Да, в тот день почему-то курсы для Казахстана не скачались, я их восстановил, должно работать.
Налоговое право Казахстана я совершенно не знаю, делал по обзорам, советую все расчеты так или иначе проверить, лучше со специалистом.


vanderalex
Сообщения: 4
Зарегистрирован: 14 дек 2022, 18:42

Генератор налоговой декларации из отчетов IB

Сообщение vanderalex »

Для Казахстана алгоритм такой:
сделки считаются в долларах. То есть купили акцию за 10 долларов, продали за 20 долларов, прибыль 10 долларов.
Вот уже полученную прибыль в 10 долларов и переводим по курсу в тенге на момент продажи. То есть курс на момент покупки не имеет значения.
По коротким позициям ситуация такая же:
шортанули на 20 долларов, закрыли позицию на 10 долларов, прибыль 10 долларов, и уже полученную прибыль считаем по курсу на момент закрытия позиции в тенге.
И второй очень важный нюанс - в Казахстане убыточные сделки в зачет не идут. То есть совершили 10 сделок с убытком и одну сделку с прибылью, убыточные сделки никого не волнуют, а с прибыльной одной! сделки платится налог. Такое вот у нас законодательство. Насколько возможно в вашем алгоритме это учесть?
Еще в Казахстане никакие комиссии в зачет не идут, но у вас уже есть такая опция.
И еще заметил одну странность. Достаточно часто алгоритм считает некорректно продажи. Например по выписке были +20акций -20акций (длинная позиция и закрытие) -20акций + 20акций (короткая позиция и закрытие) в течение дня одного тикета. Однако в вашем отчете это выглядит как + 20акций + 20акций -40акций (то есть он их как то объединяет, хотя цена продажи разная). Могу более подробно скинуть, у меня очень сложные отчеты с дробными позициями, с тысячей сделок, возможно вам будет интересно отшлифовать алгоритм расчета?

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

vanderalex писал(а): 15 дек 2022, 08:19 Для Казахстана алгоритм такой:
сделки считаются в долларах. То есть купили акцию за 10 долларов, продали за 20 долларов, прибыль 10 долларов.
Вот уже полученную прибыль в 10 долларов и переводим по курсу в тенге на момент продажи. То есть курс на момент покупки не имеет значения.
Поправил это для акций/облигаций/опционов, для фьючерсов надо самостоятельно выбрать пункт Без валютной переоценки в настройках Параметры→Налогообложение фьючерсов. Для комиссий сделал то же самое, хотя они вам и не важны.
В эксельке это выглядит громоздко и не очень естественно, но зато универсально.
vanderalex писал(а): 15 дек 2022, 08:19 По коротким позициям ситуация такая же:
шортанули на 20 долларов, закрыли позицию на 10 долларов, прибыль 10 долларов, и уже полученную прибыль считаем по курсу на момент закрытия позиции в тенге.
Там изначально так и было.
vanderalex писал(а): 15 дек 2022, 08:19 И второй очень важный нюанс - в Казахстане убыточные сделки в зачет не идут. То есть совершили 10 сделок с убытком и одну сделку с прибылью, убыточные сделки никого не волнуют, а с прибыльной одной! сделки платится налог. Такое вот у нас законодательство. Насколько возможно в вашем алгоритме это учесть?
И еще заметил одну странность. Достаточно часто алгоритм считает некорректно продажи. Например по выписке были +20акций -20акций (длинная позиция и закрытие) -20акций + 20акций (короткая позиция и закрытие) в течение дня одного тикета. Однако в вашем отчете это выглядит как + 20акций + 20акций -40акций (то есть он их как то объединяет, хотя цена продажи разная).
В генераторе несколько лотов одной позиции, которые закрываются в один день, соединяются вместе. Когда убытки можно вычитать, это очень естественно происходит, курс переоценки одинаковый; и количество, и выручка просто суммируется (количество и цена вообще не важны после того, как сделки соединены в лоты, только выручка имеет значение).
Для Казахстана придется разъединять лоты обратно и как-то обнулять те, которые убыточные. Я подумаю, как это сделать, не сломав все вокруг.
vanderalex писал(а): 15 дек 2022, 08:19 Могу более подробно скинуть, у меня очень сложные отчеты с дробными позициями, с тысячей сделок, возможно вам будет интересно отшлифовать алгоритм расчета?
Да, присылайте в личные сообщения.

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

vanderalex писал(а): 15 дек 2022, 08:19 в Казахстане убыточные сделки в зачет не идут.
Сделал это следующим образом - в текстовом отчете остаются все сделки, и убыточные, и прибыльные, а в xls попадают только прибыльные, и соответственно налоги считаются только по прибыльным. Чтобы это работало, надо в настройках убрать галку Результат→Объединять продажи инструмента внутри дня в одну запись. В идеале было бы иметь в xls все сделки, но рассчитывать только правильные, но пока этого нет. Полную эксельку можно посмотреть, например, выбрав страну Россия и также убрать галку, при этом даты валютной переоценки, курс рубля и т.п. надо игнорировать. Еще непонятно, что будет если деривативная позиция переносится на следующий год, скорее всего чушь посчитается. В общем, тестируйте, насколько правильно все теперь считается.


vanderalex
Сообщения: 4
Зарегистрирован: 14 дек 2022, 18:42

Генератор налоговой декларации из отчетов IB

Сообщение vanderalex »

Огромное спасибо! На первый взгляд все корректно, то есть сумма расчитанная вручную на 500 сделок (пара недель моего труда за экселем) идентична вашей. Невероятная экономия времени. Буду более точно проверять построчно, и обязательно отпишусь, так же с КЗ попрошу еще пару человек потестить, чтобы ваш труд не прошел даром и появилось больше благодарных пользователей. Еще раз спасибо, обязательно отпишусь по итоговому результату.
Единственно что, для расчетов конечно отрицательные сделки в экселе бы держать тоже, просто для удобства, чтобы ВСЕ было в одном документе. Но это уже больше неудобство нежели необходимость.


SergeyB
Сообщения: 3
Зарегистрирован: 12 апр 2021, 20:47

Генератор налоговой декларации из отчетов IB

Сообщение SergeyB »

ElectrostaticMister писал(а): 06 дек 2022, 22:38 Добавил возможность вручную создавать некоторые события в портфеле, такие как продажи активов или получение дивидендов.
Очень крутая фича, спасибо!

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

vanderalex писал(а): 21 дек 2022, 16:55 Единственно что, для расчетов конечно отрицательные сделки в экселе бы держать тоже, просто для удобства, чтобы ВСЕ было в одном документе.
Добавил в эксель убытки, они отображаются, но не суммируются для налогообложения.


vanderalex
Сообщения: 4
Зарегистрирован: 14 дек 2022, 18:42

Генератор налоговой декларации из отчетов IB

Сообщение vanderalex »

Супер, посмотрел, все в порядке, спасибо вам еще раз огромное от всех казахстанских инвесторов! Надеюсь, ко времени сдачи налоговой отчетности у вас много больше благодарных пользователей из Казахстана!

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

ElectrostaticMister писал(а): 20 дек 2022, 05:14 Еще непонятно, что будет если деривативная позиция переносится на следующий год, скорее всего чушь посчитается.
Кое-как исправил этот кейс, добавил галку Параметры→Расcчитывать налоги на деривативы в момент выплаты премии/маржи, она включена по умолчанию и это означает расчет деривативов так как это делается в РФ. Если ее отключить, деривативы будут рассчитываться по FIFO как акции (так в Казахстане). Если деривативы не выходят за пределы календарного года, то галка значения не имеет.


Vasily7222127
Сообщения: 11
Зарегистрирован: 26 дек 2021, 12:15
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение Vasily7222127 »

Здравствуйте!
Прежде всего хочу поблагодарить за Вашу работу по автоматизации налогового отчета IB!
Вопрос:
Я работаю с 2021 г. с IB и сдал успешно декларацию за 2021 г.
Для генерации отчета за 22 год программа просит загрузить отчеты активности за 21 и 22, надо ли это делать? Или можно загрузить отчет активности только за 22 г.?

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

Vasily7222127 писал(а): 17 янв 2023, 15:32 Я работаю с 2021 г. с IB и сдал успешно декларацию за 2021 г.
Для генерации отчета за 22 год программа просит загрузить отчеты активности за 21 и 22, надо ли это делать? Или можно загрузить отчет активности только за 22 г.?
Я рекомендую использовать отчеты за все прошлые годы и даже отчет за первые два месяца текущего (2023) года, то есть составлять окончательную версию декларации не раньше марта. Отчеты за прошлые годы нужны, если вы например продали в 2022 году акции, купленные в 2021 и без отчета за 2021 год невозможно правильно посчитать издрежки. Кроме того, портфель в любом случае рассчитывается целиком, и расчет получается надежнее, когда есть отчеты за все время существования портфеля. Если отчетов по каким-то причинам нет, то программа подскажет какие галки поставить, чтобы все-таки получить декларацию, но возможно ее придется исправлять вручную в отдельных местах.

Начало текущего года нужно, потому что в это время приходят корректировки удержанного у источника налога и другие корректировки для закончившегося года. Эти корректировки тоже должны быть отражены в декларации. Если свежий отчет отсутствует, программа предупреждать не будет, будет считать то что есть.


Vasily7222127
Сообщения: 11
Зарегистрирован: 26 дек 2021, 12:15
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение Vasily7222127 »

ElectrostaticMister писал(а): 17 янв 2023, 21:10
Vasily7222127 писал(а): 17 янв 2023, 15:32 Я работаю с 2021 г. с IB и сдал успешно декларацию за 2021 г.
Для генерации отчета за 22 год программа просит загрузить отчеты активности за 21 и 22, надо ли это делать? Или можно загрузить отчет активности только за 22 г.?
Я рекомендую использовать отчеты за все прошлые годы и даже отчет за первые два месяца текущего (2023) года, то есть составлять окончательную версию декларации не раньше марта. Отчеты за прошлые годы нужны, если вы например продали в 2022 году акции, купленные в 2021 и без отчета за 2021 год невозможно правильно посчитать издрежки. Кроме того, портфель в любом случае рассчитывается целиком, и расчет получается надежнее, когда есть отчеты за все время существования портфеля. Если отчетов по каким-то причинам нет, то программа подскажет какие галки поставить, чтобы все-таки получить декларацию, но возможно ее придется исправлять вручную в отдельных местах.

Начало текущего года нужно, потому что в это время приходят корректировки удержанного у источника налога и другие корректировки для закончившегося года. Эти корректировки тоже должны быть отражены в декларации. Если свежий отчет отсутствует, программа предупреждать не будет, будет считать то что есть.
подгружать нужно файлы отдельные за каждый год? Или можно одним файлом?

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

Vasily7222127 писал(а): 17 янв 2023, 21:18 подгружать нужно файлы отдельные за каждый год? Или можно одним файлом?
Насколько я помню, IB не дает создать отчет продолжительностью больше одного года. Если дает, то наверно сработает и одним файлом, но лучше идти обычным путем - для каждого календарного года создавать отдельный файл.


Bamser
Сообщения: 3
Зарегистрирован: 17 фев 2023, 21:01

Генератор налоговой декларации из отчетов IB

Сообщение Bamser »

Декларация Фридом Финанс

Здравствуйте. Пытаюсь заполнить декларацию Фридом Казахстан выдает ошибки и файл не формирует:
[2023-02-17 20:58:16.917799] NOTICE: Use config {"file":"portfolio/portfolio.json","date":"2022-10-03 00:31:42"}
[2023-02-17 20:58:16.933340] NOTICE: Current version {"portfolio":"","cbr":"","declaration":""}
[2023-02-17 20:58:16.995046] ERROR: Unknown XLS report type {"file":"/home/webmaster/uploaded/tax/acd9c07db79c1c36ba635c596e10f8b5/1676656696/764743_2022-07-04 23_59_59_2022-12-31 23_59_59_broker.xlsx"}

Отчёт по IBRK получился отличный)

Аватара пользователя

Автор темы
ElectrostaticMister
Сообщения: 307
Зарегистрирован: 12 май 2020, 23:14
Контактная информация:

Генератор налоговой декларации из отчетов IB

Сообщение ElectrostaticMister »

Bamser писал(а): 18 фев 2023, 00:58 Здравствуйте. Пытаюсь заполнить декларацию Фридом Казахстан выдает ошибки и файл не формирует:
У Фридома есть как минимум два типа отчетов. Оба они в формате xls, но внутри совершенно разные. Оригинальный отчет сделан в более-менее человекочитаемом формате на одном длинном листе, его шапка изображена на картинке:
FF_ОднолистовыйОтчет.png
После поглощения брокера NetTrader в 2018 Фридом переходит на использование их платформы Tradernet, которая создает свои собственные отчеты из множества листов, выглядит это примерно так:
FF_МноголистовыйОтчет.png
У меня сделана упрощенная обработка оригинальных отчетов, отчеты Tradernet я не делал. Я не знаю, есть ли у клиентов Фридома возможность выбрать тип отчета, от чего он зависит, переводят ли всех принудительно на Tradernet и т.п. Если новые отчеты становятся актуальными, пишите мне в личку, присылайте образцы отчетов, я постараюсь сделать.

UPD: Tradernet теперь тоже работает.
Вложения
Freedom_Acquisition.pdf
(49.43 КБ) 169 скачиваний

Ответить

Вернуться в «Налоговая декларация»