{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":284581753,"defaultBranch":"main","name":"LifeFinances","ownerLogin":"chriskelly","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-08-03T02:12:12.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3745832?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1699227583.0","currentOid":""},"activityList":{"items":[{"before":"e11751c6f1fbf37640b44c272a2488ef5014c299","after":"3d67c36b0b5fb106e0f9d907aa16b142fd7ad560","ref":"refs/heads/main","pushedAt":"2024-02-17T18:12:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"feat: added spending profiles","shortMessageHtmlLink":"feat: added spending profiles"}},{"before":"b1fca7c8d331bc7bb1bc295f78c1079140a293b2","after":"e11751c6f1fbf37640b44c272a2488ef5014c299","ref":"refs/heads/main","pushedAt":"2024-01-16T16:55:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"Enabled write access for config file in container\n\nAdjusted the Docker Compose configuration to grant the container write permissions for the 'config.yml' file. This change allows runtime modifications to the configuration, potentially needed for dynamic environment updates or feature toggles adjusting behavior without rebuilding the container.","shortMessageHtmlLink":"Enabled write access for config file in container"}},{"before":"369d302379a548aaef1944b52c13d1a3e5f142ae","after":"b1fca7c8d331bc7bb1bc295f78c1079140a293b2","ref":"refs/heads/main","pushedAt":"2023-11-06T16:55:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"feat: add net worth pivot allocation strategy","shortMessageHtmlLink":"feat: add net worth pivot allocation strategy"}},{"before":"33a665c48f51d22d6a573a3f0c9c6b84d4c7c0e2","after":null,"ref":"refs/heads/major_refactor","pushedAt":"2023-11-05T23:39:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"}},{"before":"3a1b722526da0a0b9c4c95c784d0a21881d061cf","after":"369d302379a548aaef1944b52c13d1a3e5f142ae","ref":"refs/heads/main","pushedAt":"2023-11-05T23:36:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"docs","shortMessageHtmlLink":"docs"}},{"before":"c4f0186579b2a37845cfebdf8131a166ee2acef9","after":"3a1b722526da0a0b9c4c95c784d0a21881d061cf","ref":"refs/heads/main","pushedAt":"2023-11-05T23:31:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"docs","shortMessageHtmlLink":"docs"}},{"before":"b5310e57bd772d44ce9b94a2eb66622ec4db2f41","after":"c4f0186579b2a37845cfebdf8131a166ee2acef9","ref":"refs/heads/main","pushedAt":"2023-11-04T15:26:06.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"refactor: remove FloatRepr and IntRepr\n\nUsing these as super classes was inefficients and slowed down basic summation calculations. Instead, I've added a `sum` attribute to the previous sub-classes to hold the value that sums up their components","shortMessageHtmlLink":"refactor: remove FloatRepr and IntRepr"}},{"before":"3622b74f6e59541ae2375cbb43b49b9f9d6dd270","after":"b5310e57bd772d44ce9b94a2eb66622ec4db2f41","ref":"refs/heads/main","pushedAt":"2023-11-02T16:26:54.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"refactor: create IndexPage class\n\nCleans up the create_app function. Also cleaned up the IndexPage functionalty in general, extracting functions into `simulator.py` and `config.py` and created tests","shortMessageHtmlLink":"refactor: create IndexPage class"}},{"before":"da84a994db53d843cb08ab794e5a3b565cd53f91","after":"3622b74f6e59541ae2375cbb43b49b9f9d6dd270","ref":"refs/heads/main","pushedAt":"2023-10-30T03:19:43.000Z","pushType":"pr_merge","commitsCount":144,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"Merge pull request #144 from chriskelly/major_refactor\n\nMajor refactor","shortMessageHtmlLink":"Merge pull request #144 from chriskelly/major_refactor"}},{"before":"9d77862cc44ef2a14dc9f5ad9945e4512f792506","after":null,"ref":"refs/heads/dependabot/pip/eventlet-0.31.0","pushedAt":"2023-10-30T03:19:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"}},{"before":"5ab7abe20b09706269babb218073a8363af6a51f","after":null,"ref":"refs/heads/data-generation","pushedAt":"2023-10-30T03:19:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"}},{"before":"27c17110ed074623c995d363d49f8e6261020741","after":null,"ref":"refs/heads/deployed","pushedAt":"2023-10-30T03:19:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"}},{"before":"cc9fa1969928f6b085906d3d14fc8b9e9c980a5f","after":null,"ref":"refs/heads/112-enable-multiprocessing","pushedAt":"2023-10-30T03:19:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"}},{"before":"6c82eac28e5646f60acbfbe4f0d059fa7c8eeb1c","after":"33a665c48f51d22d6a573a3f0c9c6b84d4c7c0e2","ref":"refs/heads/major_refactor","pushedAt":"2023-10-30T03:17:59.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"Merge branch 'main' into major_refactor","shortMessageHtmlLink":"Merge branch 'main' into major_refactor"}},{"before":"515f970ccf75c48a5c15b0cd0a9c0493a847d6b5","after":"6c82eac28e5646f60acbfbe4f0d059fa7c8eeb1c","ref":"refs/heads/major_refactor","pushedAt":"2023-10-30T03:14:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"remove old references","shortMessageHtmlLink":"remove old references"}},{"before":"ab6ed47165883df6a9357f758f133632046eb04d","after":"515f970ccf75c48a5c15b0cd0a9c0493a847d6b5","ref":"refs/heads/major_refactor","pushedAt":"2023-10-29T22:10:32.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"refactor: clean up and update requirements","shortMessageHtmlLink":"refactor: clean up and update requirements"}},{"before":"d77afe057d5da391b952f1b342807151787f28a6","after":"ab6ed47165883df6a9357f758f133632046eb04d","ref":"refs/heads/major_refactor","pushedAt":"2023-10-29T02:11:35.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"test: add portfolio return test\n\n- `_calc_portfolio_return` method in `StateChangeComponents` is refactored to improve code readability and maintainability.\n- A test case for calculating the portfolio return is added to `test_state_change.py`. The calculation is tested based on given inputs using the `Components` mock object.","shortMessageHtmlLink":"test: add portfolio return test"}},{"before":"73b783e9c28d7bea1e14e68395a86f4dbb438d7f","after":"d77afe057d5da391b952f1b342807151787f28a6","ref":"refs/heads/major_refactor","pushedAt":"2023-10-25T16:01:42.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"feat: add portfolio return taxes","shortMessageHtmlLink":"feat: add portfolio return taxes"}},{"before":"1000ec47d127d02c1ba0e218ff65e1ecde23e64b","after":"73b783e9c28d7bea1e14e68395a86f4dbb438d7f","ref":"refs/heads/major_refactor","pushedAt":"2023-10-25T15:28:49.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"feat: Add FICA tax calculations\n\nThis commit adds the constant values for the Medicare and Social Security tax calculations. The Medicare tax rate is set to 1.45% and the Social Security tax rate is set to 6.2%. These rates will be used in the calculation of taxes in the `calc_taxes` function. Additionally, the `calc_taxes` function now takes a `controller` parameter instead of `taxable_income` to retrieve the taxable income from the `JobIncomeController`. The `calc_taxes` function also computes the Medicare and Social Security taxes based on the job income and the eligible income for Social Security, using the new `_social_security_tax` helper function.","shortMessageHtmlLink":"feat: Add FICA tax calculations"}},{"before":"20c5cefa481729ba0402b2860bcf3afc3e72c4d1","after":"1000ec47d127d02c1ba0e218ff65e1ecde23e64b","ref":"refs/heads/major_refactor","pushedAt":"2023-10-22T20:53:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"refactor: inject config path\n\nUsing dependency injection for the path allows for simpler and easier to understand testing.","shortMessageHtmlLink":"refactor: inject config path"}},{"before":"44a39a16dde57c1bdbbe875e88d9e8b343fd9d14","after":"20c5cefa481729ba0402b2860bcf3afc3e72c4d1","ref":"refs/heads/major_refactor","pushedAt":"2023-10-22T19:47:17.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"refactor: remove old modules","shortMessageHtmlLink":"refactor: remove old modules"}},{"before":"58ee8dd229b7b0722c52b7d45bfd152c1f17130f","after":"44a39a16dde57c1bdbbe875e88d9e8b343fd9d14","ref":"refs/heads/major_refactor","pushedAt":"2023-10-22T17:21:49.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"feat: Update Kids model and calculate cost of kids\n\n- Update `Kids` model in `config.py` to include `fraction_of_spending` and `years_of_support` properties.\n- Add new function `_calc_cost_of_kids` in `state_change.py` to calculate the cost of children based on the current date, spending, and `Kids` configuration.\n- Implement tests in `test_state_change.py` to validate the calculation of the cost of kids.\n- Add new field \"Kids\" in the `Results` class in `simulator.py` to display the cost of children in the simulation results.\n- Update the sample configuration file `full_config.yml` to reflect the changes in the `Kids` model.","shortMessageHtmlLink":"feat: Update Kids model and calculate cost of kids"}},{"before":"9bd1d63b69563bfb3d852c22b2e135e36adfce3f","after":"58ee8dd229b7b0722c52b7d45bfd152c1f17130f","ref":"refs/heads/major_refactor","pushedAt":"2023-10-16T16:50:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"feat: Add table to simulation route\n\nTable is useful for diagnostics","shortMessageHtmlLink":"feat: Add table to simulation route"}},{"before":"ac45ed5740a065a9b06b08c21e4538ab7d3296a4","after":"9bd1d63b69563bfb3d852c22b2e135e36adfce3f","ref":"refs/heads/major_refactor","pushedAt":"2023-10-15T14:51:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"fix: lock Werkzeug version\n\nHas to be below 3.0 to be compaitable with the current flask version.\nhttps://stackoverflow.com/questions/77213053/importerror-cannot\n-import-name-url-quote-from-werkzeug-urls","shortMessageHtmlLink":"fix: lock Werkzeug version"}},{"before":"46c0a0d682d665d8985e91a5f4a7717fb3fac213","after":"ac45ed5740a065a9b06b08c21e4538ab7d3296a4","ref":"refs/heads/major_refactor","pushedAt":"2023-10-15T14:34:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"feat: enable any portfolio assets\n\nNo longer limited to stocks, bonds, and real estate. Now, any asset\ncan be defined and used in building a portfolio","shortMessageHtmlLink":"feat: enable any portfolio assets"}},{"before":"342acf448b68a02b3533aa215602503cf4dbd4a4","after":"46c0a0d682d665d8985e91a5f4a7717fb3fac213","ref":"refs/heads/major_refactor","pushedAt":"2023-09-28T15:49:34.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"feat: initial annuity controller commit","shortMessageHtmlLink":"feat: initial annuity controller commit"}},{"before":"2c1167a265d2acf94be8db8604877d097a88899c","after":"342acf448b68a02b3533aa215602503cf4dbd4a4","ref":"refs/heads/major_refactor","pushedAt":"2023-09-07T16:03:33.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"refactor: extract interval_stdev into util\n\nStandadize using the util functions for converting\n yields and standard deviations into interval forms","shortMessageHtmlLink":"refactor: extract interval_stdev into util"}},{"before":"621d8bccef2547112f3b6363215054ac5a75b75c","after":"2c1167a265d2acf94be8db8604877d097a88899c","ref":"refs/heads/major_refactor","pushedAt":"2023-09-06T15:48:21.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"feat: initial pension controller commit","shortMessageHtmlLink":"feat: initial pension controller commit"}},{"before":"e5fe6dba2f782e23ec045c18ab4581980f6e59cc","after":"621d8bccef2547112f3b6363215054ac5a75b75c","ref":"refs/heads/major_refactor","pushedAt":"2023-08-26T02:52:26.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"perf: change from max to comparisons\n\nfaster for two value comparisons","shortMessageHtmlLink":"perf: change from max to comparisons"}},{"before":"032d325334bab983e47d5ad6b16b762a089b639c","after":"e5fe6dba2f782e23ec045c18ab4581980f6e59cc","ref":"refs/heads/major_refactor","pushedAt":"2023-08-26T01:51:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chriskelly","name":"Chris Kelly","path":"/chriskelly","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3745832?s=80&v=4"},"commit":{"message":"feat: add profiling\n\nNow `make profile` can be run to cProfile the simulation and visualize\n the results","shortMessageHtmlLink":"feat: add profiling"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD_XQULQA","startCursor":null,"endCursor":null}},"title":"Activity ยท chriskelly/LifeFinances"}