Skip to content

Персональный ассистент для планирования личных финансов. Поможет рассчитать сумму ежемесячных инвестиций при разных вводных для достижения ваших целей.

License

alexeykhan/assist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  ______    ______    ______   ______   ______   ________  
 /      \  /      \  /      \ /      | /      \ /        |
/$$$$$$  |/$$$$$$  |/$$$$$$  |$$$$$$/ /$$$$$$  |$$$$$$$$/  
$$ |__$$ |$$ \__$$/ $$ \__$$/   $$ |  $$ \__$$/    $$ |    
$$    $$ |$$      \ $$      \   $$ |  $$      \    $$ |    
$$$$$$$$ | $$$$$$  | $$$$$$  |  $$ |   $$$$$$  |   $$ |    
$$ |  $$ |/  \__$$ |/  \__$$ | _$$ |_ /  \__$$ |   $$ |    
$$ |  $$ |$$    $$/ $$    $$/ / $$   |$$    $$/    $$ |    
$$/   $$/  $$$$$$/   $$$$$$/  $$$$$$/  $$$$$$/     $$/

💸 assist

Персональный ассистент для планирования личных финансов.

GoDoc Reference Go Report Card Version Build Status License

Юзкейсы

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

Пример решения данной задачи с помощью assist:

1. Сколько денег нужно будет через 35 лет, чтобы иметь такую же покупательскую 
   способность, как сегодня, имея 150,000 рублей, если среднегодовая инфляция 
   не будет превышать отметку 5%?

$ ./bin/assist calculate inflation --current=150000 --years=35 --inflation=5
  > Эквивалент исходной суммы в будущем: 827,402.30
  
2. Сколько денег нужно накопить к пенсии, чтобы с доходностью портфеля 6.5% годовых
   можно было на протяжении следующих 25 лет тратить по 827,402.30 руб в месяц и к 
   концу срока потратить все накопления?
  
$ ./bin/assist decompose retirement --expenses=827402.30 --years=25 --interest=6.5
  > Минимальная сумма накоплений составит: 123,204,271.23

3. Сколько денег нужно откладывать каждый месяц на протяжении следующих 35 лет при
   доходности портфеля 6.5% годовых, чтобы к концу срока накопить 123,204,271.23 руб?
    
$ ./bin/assist decompose savings --goal=123204271.23 --years=35 --interest=6.5
  > Сумма ежемесячных инвестиций составит: 76,572.69
  
Итогo: чтобы через 35 лет выйти на пенсию и поддерживать комфортный уровень жизни, 
сопоставимый c сегодняшними 150,000 рублей в месяц, необходимо на протяжении всего
этого срока ежемесячно инвестировать не менее 76,572.69 рублей и поддерживать
доходность инвестиций на уровне не ниже 6.5% годовых при условии, что инфляция
не будет превышать 5% в год.

Функционал

decompose

Подход: от желаемого результата. Используйте группу команд decompose, чтобы декомпозировать финансовую цель — выяснить обязательные условия для ее достижения.

Доступные команды:

$ ./bin/assist decompose retirement --help
$ ./bin/assist decompose savings --help
$ ./bin/assist decompose --help

decompose retirement

Используйте команду decompose retirement, чтобы узнать минимальную сумму накоплений с ежегодной доходностью R%, которая позволит вам при выходе на пенсию на протяжении следующих N лет ежемесячно тратить X руб в месяц.

Пример использования:

$ ./bin/assist decompose retirement --expenses=150000.00 --years=25 --interest=6.5 --detailed=M
$ ./bin/assist decompose retirement -e=150000.00 -y=25 -i=6.5 -d=M
$ ./bin/assist decompose retirement --help

Параметры и опции команды:

-d, --detailed bool   Выводить детализированный ответ. M — по
                      месяцам, Y — по годам.
-e, --expenses float  Сумма ежемесячных расходов в течение    
                      пенсионного периода
-h, --help bool       help for retirement
-i, --interest float  Доходность вашего инвестиционного       
                      портфеля в процентах годовых
-y, --years uint8     Количество лет, на протяжении которых   
                      будут ежемесячные траты

Пример выполнения команды:

$ ./bin/assist decompose retirement -e 150000 -y 25 -i 6.5 -d Y

 ДЕКОМПОЗИЦИЯ ПЕНСИИ

 Задача: рассчитать сумму, которую необходимо накопить, чтобы
 при доходности портфеля 6.50% годовых можно было на протяжении
 25 лет тратить 150000 рублей в месяц без дополнительного
 дохода, потратив к концу срока все сбережения.

 ┏━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
 ┃   ГОД   ┃    ПРОЦЕНТЫ    ┃    РАСХОДЫ     ┃   НАКОПЛЕНИЯ  ┃
 ┣━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━┫
 ┃    1    ┃   1431214.80   ┃   1800000.00   ┃  21966952.43  ┃
 ┃    2    ┃   2837731.38   ┃   3600000.00   ┃  21573469.01  ┃
 ┃    3    ┃   4217895.65   ┃   5400000.00   ┃  21153633.27  ┃
 ┃    4    ┃   5569942.73   ┃   7200000.00   ┃  20705680.36  ┃
 ┃    5    ┃   6891989.58   ┃   9000000.00   ┃  20227727.21  ┃
 ┃    6    ┃   8182027.03   ┃  10800000.00   ┃  19717764.65  ┃
 ┃    7    ┃   9437911.33   ┃  12600000.00   ┃  19173648.96  ┃
 ┃    8    ┃  10657355.20   ┃  14400000.00   ┃  18593092.83  ┃
 ┃    9    ┃  11837918.15   ┃  16200000.00   ┃  17973655.78  ┃
 ┃   10    ┃  12976996.26   ┃  18000000.00   ┃  17312733.88  ┃
 ┃   11    ┃  14071811.20   ┃  19800000.00   ┃  16607548.83  ┃
 ┃   12    ┃  15119398.59   ┃  21600000.00   ┃  15855136.22  ┃
 ┃   13    ┃  16116595.52   ┃  23400000.00   ┃  15052333.14  ┃
 ┃   14    ┃  17060027.23   ┃  25200000.00   ┃  14195764.86  ┃
 ┃   15    ┃  17946092.99   ┃  27000000.00   ┃  13281830.61  ┃
 ┃   16    ┃  18770950.87   ┃  28800000.00   ┃  12306688.50  ┃
 ┃   17    ┃  19530501.68   ┃  30600000.00   ┃  11266239.31  ┃
 ┃   18    ┃  20220371.68   ┃  32400000.00   ┃  10156109.31  ┃
 ┃   19    ┃  20835894.22   ┃  34200000.00   ┃   8971631.85  ┃
 ┃   20    ┃  21372090.11   ┃  36000000.00   ┃   7707827.74  ┃
 ┃   21    ┃  21823646.70   ┃  37800000.00   ┃   6359384.33  ┃
 ┃   22    ┃  22184895.54   ┃  39600000.00   ┃   4920633.16  ┃
 ┃   23    ┃  22449788.54   ┃  41400000.00   ┃   3385526.17  ┃
 ┃   24    ┃  22611872.59   ┃  43200000.00   ┃   1747610.22  ┃
 ┃   25    ┃  22664262.37   ┃  45000000.00   ┃      0.00     ┃
 ┣━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━┫
 ┃  ИТОГО  ┃  22664262.37   ┃  45000000.00   ┃      0.00     ┃
 ┗━━━━━━━━━┻━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┛

 > Минимальная сумма накоплений составит: 22335737.63
 > Сумма начисленных процентов за период: 22664262.37

decompose savings

Используйте команду decompose savings, чтобы узнать минимальную сумму ежемесячных инвестиций с заданной среднегодовой доходностью и ежемесячной капиализацией процентов, чтобы к концу заданного срока в годах накопить нужную сумму.

Пример использования:

$ ./bin/assist decompose savings --goal=1234567.89 --years=10 --interest=6.5 --detailed=M
$ ./bin/assist decompose savings -g=1234567.89 -y=10 -i=6.5 -d=M
$ ./bin/assist decompose savings --help

Параметры и опции команды:

-d, --detailed bool     Выводить детализированный ответ. M — по
                        месяцам, Y — по годам.
-g, --goal float32      Ваша финансовая цель, которую     
                        нужно достгнуть за заданный период
-h, --help bool         Документация по команде
-i, --interest float32  Доходность вашего инвестиционного
                        портфеля в процентах годовых
-y, --years uint8       Количество лет, за которое        
                        необходимо накопить нужную сумму

Пример выполнения команды:

$ ./bin/assist decompose savings -g 1234567.89 -y 10 -i 6.5 -d Y

 ДЕКОМПОЗИЦИЯ НАКОПЛЕНИЯ СУММЫ

 Задача: рассчитать сумму, которую необходимо инвестировать
 каждый месяц на протяжении 10 лет, чтобы при средней
 доходности портфеля 6.50% годовых и ежемесячной
 капитализации процентов накопить 1234567.88 руб.

 ┏━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
 ┃  ГОД  ┃    ВЛОЖЕНИЯ    ┃    ПРОЦЕНТЫ    ┃   НАКОПЛЕНИЯ  ┃
 ┣━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━┫
 ┃   1   ┃    87499.12    ┃    2654.39     ┃    90153.50   ┃
 ┃   2   ┃   174998.23    ┃    11346.53    ┃   186344.75   ┃
 ┃   3   ┃   262497.34    ┃    26480.77    ┃   288978.09   ┃
 ┃   4   ┃   349996.47    ┃    48488.56    ┃   398484.94   ┃
 ┃   5   ┃   437495.59    ┃    77830.23    ┃   515325.75   ┃
 ┃   6   ┃   524994.69    ┃   114996.95    ┃   639991.62   ┃
 ┃   7   ┃   612493.44    ┃   160512.75    ┃   773006.50   ┃
 ┃   8   ┃   699992.19    ┃   214936.83    ┃   914929.62   ┃
 ┃   9   ┃   787490.94    ┃   278865.75    ┃   1066357.62  ┃
 ┃  10   ┃   874989.69    ┃   352936.03    ┃   1227927.25  ┃
 ┣━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━┫
 ┃ ИТОГО ┃   874989.69    ┃   359587.31    ┃   1234578.50  ┃
 ┗━━━━━━━┻━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┛

 > Сумма ежемесячных инвестиций составит: 7291.59
 > Сумма собственных вложений за период: 874989.69
 > Сумма начисленных процентов за период: 359587.31

calculate

Подход: от текущей ситуации. Используйте группу команд calculate, чтобы прогнозировать финансовые результаты в зависимости от исходных данных.

Доступные команды:

$ ./bin/assist calculate inflation --help
$ ./bin/assist calculate savings --help
$ ./bin/assist calculate --help

calculate savings

Используйте команду calculate savings, чтобы узнать, какую сумму сможете накопить с учетом сложного процента, если на протяжении следующих N лет будете ежемесячно инвестировать X рублей под R% годовых с ежемесячной капитализацией процентов.

Пример использования:

$ ./bin/assist calculate savings --payment=20000.00 --years=25 --interest=6.5 --detailed=M
$ ./bin/assist calculate savings -p=20000.00 -y=25 -i=6.5 -d=M
$ ./bin/assist calculate savings --help

Параметры и опции команды:

-d, --detailed bool   Выводить детализированный ответ. M — по
                      месяцам, Y — по годам.
-h, --help bool       Документация по команде
-i, --interest float  Доходность вашего инвестиционного       
                      портфеля в процентах годовых
-p, --payment float   Размер ежемесячного пополнения          
                      инвестиционного портфеля
-y, --years uint8     Количество лет, на протяжении которых   
                      будут производиться накопления

Пример выполнения команды:

$ ./bin/assist calculate savings -e 150000 -y 25 -i 6.5 -d Y

 РАСЧЕТ БУДУЩИХ НАКОПЛЕНИЙ

 Задача: рассчитать сумму, которую можно накопить с учетом
 сложного процента, если на протяжении следующих 10 лет
 ежемесячно инвестировать 20000.00 рублей под 6.50% годовых с
 ежемесячной капитализацией процентов.

 ┏━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
 ┃   ГОД   ┃    ВЛОЖЕНИЯ    ┃    ПРОЦЕНТЫ    ┃   НАКОПЛЕНИЯ  ┃
 ┣━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━┫
 ┃    1    ┃   240000.00    ┃    7280.68     ┃   247280.68   ┃
 ┃    2    ┃   480000.00    ┃    31122.21    ┃   511122.21   ┃
 ┃    3    ┃   720000.00    ┃    72633.70    ┃   792633.70   ┃
 ┃    4    ┃   960000.00    ┃   132998.53    ┃   1092998.53  ┃
 ┃    5    ┃   1200000.00   ┃   213479.35    ┃   1413479.35  ┃
 ┃    6    ┃   1440000.00   ┃   315423.37    ┃   1755423.37  ┃
 ┃    7    ┃   1680000.00   ┃   440268.00    ┃   2120268.00  ┃
 ┃    8    ┃   1920000.00   ┃   589546.96    ┃   2509546.96  ┃
 ┃    9    ┃   2160000.00   ┃   764896.65    ┃   2924896.65  ┃
 ┃   10    ┃   2400000.00   ┃   968063.08    ┃   3368063.08  ┃
 ┣━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━┫
 ┃  ИТОГО  ┃   2400000.00   ┃   986306.76    ┃   3386306.76  ┃
 ┗━━━━━━━━━┻━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┛

 > Накопленная сумма составит: 3386306.76
 > Сумма собственных вложений за период: 2400000.00
 > Сумма начисленных процентов за период: 986306.76

calculate inflation

Используйте команду calculate inflation, чтобы рассчитать изменение покупательской способности по прошествии N лет при заданном уровне инфляции R% в год на примере изменения денежной суммы, по сегодняшним меркам равной X рублям.

Пример использования:

$ ./bin/assist calculate inflation --current=150000 --years=10 --inflation=6.5 --detailed
$ ./bin/assist calculate inflation -c=150000 -y=10 -i=6.5 -d
$ ./bin/assist calculate inflation --help

Параметры и опции команды:

-c, --current float    Сумма, ценность которой будет          
                       изменяться с течением времени в силу   
                       инфляции
-d, --detailed bool    Вывести детализацию изменения ценности 
                       по годам
-h, --help bool        Документация по команде
-i, --inflation float  Среднее значение инфляции, при котором 
                       будут проводиться расчеты
-y, --years uint8      Количество лет, на протяжении которых  
                       будет меняться покупательская          
                       способность

Пример выполнения команды:

$ ./bin/assist calculate inflation -c=150000 -y=10 -i=6.5 -d

 РАСЧЕТ ПОКУПАТЕЛЬСКОЙ СПОСОБНОСТИ

 Задача: рассчитать изменение покупательской способности по
 прошествии 10 лет при заданном уровне инфляции 6.50% в год на
 примере изменения денежной суммы, по сегодняшним меркам равной
 150000.00 рублям.

 ┏━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
 ┃   ГОД   ┃    ИСХОДНАЯ ЦЕННОСТЬ    ┃   ЭКВИВАЛЕНТ ЦЕННОСТИ  ┃
 ┣━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━┫
 ┃    1    ┃  140845.07 (-9154.93)   ┃  159750.00 (+9750.00)  ┃
 ┃    2    ┃  132248.89 (-17751.11)  ┃  170133.75 (+20133.75) ┃
 ┃    3    ┃  124177.36 (-25822.64)  ┃  181192.44 (+31192.44) ┃
 ┃    4    ┃  116598.46 (-33401.54)  ┃  192969.95 (+42969.95) ┃
 ┃    5    ┃  109482.13 (-40517.87)  ┃  205513.00 (+55513.00) ┃
 ┃    6    ┃  102800.12 (-47199.88)  ┃  218871.34 (+68871.34) ┃
 ┃    7    ┃  96525.93 (-53474.07)   ┃  233097.98 (+83097.98) ┃
 ┃    8    ┃  90634.68 (-59365.32)   ┃  248249.35 (+98249.35) ┃
 ┃    9    ┃  85102.98 (-64897.02)   ┃ 264385.56 (+114385.56) ┃
 ┃   10    ┃  79908.91 (-70091.09)   ┃ 281570.62 (+131570.62) ┃
 ┗━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━┛

 > Эквивалент исходной суммы в будущем: 281570.62
 > Ценность исходной суммы в будущем: 79908.91

Локальная сборка

make linter && make assist && ./bin/assist -h

About

Персональный ассистент для планирования личных финансов. Поможет рассчитать сумму ежемесячных инвестиций при разных вводных для достижения ваших целей.

Topics

Resources

License

Stars

Watchers

Forks