-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add myst variable substitutions for COLA values #170
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, non-blocking suggestion about calculated values. Adding jinja to our handbook opens up a world of possibilities!
docs/policies.md
Outdated
@@ -187,15 +187,15 @@ Each member will be reimbursed **up to \$3,300 in any rolling 3-year period** to | |||
**For example**, an employee buys a $600 standing desk and is reimbursed by the cooperative. Since the standing desk depreciates (that is, loses value due to wear and tear) over 3 years, after one year the standing desk is valued at $400. So when the employee decides to leave the cooperative 2 years after the purchase of the standing desk, it is valued at $200. The departing employee would then need to pay the cooperative $200. Alternatively, the cooperative could deduct \$200 from the departing employee’s internal member capital account. | |||
**For a more comprehensive example: [see this spreadsheet](https://docs.google.com/spreadsheets/d/1bwzw7_GcWNSTBNeUFrWe8BzEyIA2Cw7HnjEwg6TueiY/edit#gid=867743421)**. | |||
|
|||
**Expenses:** will be reimbursed on a month to month basis as they are incurred. They do not result in a potential future liability for the member (unlike asset purchases) since they’re being consumed continuously. This is meant to cover things like membership at a co-working space, improved home internet service for work purposes, an off-site backup service for your computer, enrollment in online courses for continuing education, etc. Monthly expense reimbursements to a member shall be limited to the total per-member reimbursement budget divided by the number of months in the rolling reimbursement period. Given the current limits of $3,300 every 36 months this works out to 2\*($3,300/36 mo) = **\$183.33/mo**. If a member has an expense greater than this amount, they can get reimbursed for it in installments over multiple months, so long as they remain a member. | |||
**Expenses:** will be reimbursed on a month to month basis as they are incurred. They do not result in a potential future liability for the member (unlike asset purchases) since they’re being consumed continuously. This is meant to cover things like membership at a co-working space, improved home internet service for work purposes, an off-site backup service for your computer, enrollment in online courses for continuing education, etc. Monthly expense reimbursements to a member shall be limited to the total per-member reimbursement budget divided by the number of months in the rolling reimbursement period. Given the current limits of {{ tech_stipend }} every 36 months this works out to 2\*({{ tech_stipend }}/36 mo) = **\$183.33/mo**. If a member has an expense greater than this amount, they can get reimbursed for it in installments over multiple months, so long as they remain a member. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this is being substituted using Jinja, we can calculate this $183.33 value too.
... to 2\*({{ tech_stipend }}/36 mo) = **\${{ (tech_stipend.replace('$', '') | float / 36 * 2) | round(2) }}/mo**.
Or, alternatively, we could make all the numbers in the dictionary actually numbers - and then format them with {{ "{:,}".format(var_name) }}
instead of doing some parsing BS. I think that's probably the nicer way to handle this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great idea! Just pushed the fix. I tried to create a custom Jinja filter to apply the formatting logic so but couldn't figure it out 🤷
myst_substitutions = { | ||
"healthcare_stipend": 175, | ||
"tech_stipend": 3400, | ||
"cat_meetup_stipend": 230, | ||
"solo401k_match": 0.15, | ||
"solo401k_employee_max": 23_500, # Update with info from this site: https://www.irs.gov/retirement-plans/one-participant-401k-plans | ||
"solo401k_employee_max_over_50": 31_000, | ||
"solo401k_total_max": 70_000, | ||
"current_year": 2025, | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The final inflation number was %2.9.
I grabbed the new Solo 401k numbers from here.
Add MyST variable substitutions for COLA values so it's easier to update the them each year.