Skip to content
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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

bendnorman
Copy link
Member

Add MyST variable substitutions for COLA values so it's easier to update the them each year.

Copy link
Member

@jdangerx jdangerx left a 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.
Copy link
Member

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.

Copy link
Member Author

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 🤷

Comment on lines +57 to +66
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,
}
Copy link
Member Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants