-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
[WIP] Pay Periods - MM 13 through 99 #5730
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
base: master
Are you sure you want to change the base?
[WIP] Pay Periods - MM 13 through 99 #5730
Conversation
Co-authored-by: ashleyriverapr <[email protected]>
Extract pay period related functions into a new `pay-periods.ts` module. Co-authored-by: ashleyriverapr <[email protected]>
Co-authored-by: ashleyriverapr <[email protected]>
This commit integrates pay period functionality into the month utilities, allowing for the handling of months 13-99 as pay periods. Key updates include: - Enhanced month validation to distinguish between calendar months and pay periods. - Updated arithmetic functions (add, subtract, next, previous) to accommodate pay periods. - New utility functions for generating pay periods and handling date conversions. - Comprehensive tests to ensure correct identification and manipulation of pay periods. Backward compatibility with existing calendar month functionality is maintained, ensuring a seamless transition for users.
…-phase-1-1-4cb7 Implement pay period phase 1.1
…-phase-1-1-4cb7 Quick Correction
Co-authored-by: ashleyriverapr <[email protected]>
Co-authored-by: ashleyriverapr <[email protected]>
Co-authored-by: ashleyriverapr <[email protected]>
…rience - Removed redundant "Enable Pay Periods" checkbox and "Show pay periods in budget view" option, simplifying the settings interface. - Updated Pay Period Settings UI to focus on frequency and start date only. - Streamlined control flow to a two-layer system (feature flag + view toggle) for better clarity and usability. - Eliminated year start constraints, allowing pay periods to function seamlessly across any year. - Enhanced budget components to reflect these changes, ensuring consistent behavior and improved performance. This refactor aims to enhance user experience by reducing complexity and ensuring intuitive interactions with pay period features.
…pay-periods-implementation-6547 Review and complete pay periods implementation
…-phases-1-2-and-1-3-b06c Implement pay period phases 1.2 and 1.3
…uration, generation, and utility functions, to streamline the project and eliminate unused code.
- Updated MonthPicker to use new monthUtils.getMonthDisplayName for improved PayPeriod formatting. - Refactored BudgetSummary components in both tracking and envelope contexts to utilize monthUtils.getMonthDateRange for consistent date range display. - Modified BudgetPage to reflect the new PayPeriod/Month display logic. - Enhanced month utility functions to support better pay period handling and display.
✅ Deploy Preview for actualbudget ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Bundle Stats — desktop-clientHey there, this message comes from a GitHub action that helps you and reviewers to understand how these changes affect the size of this project's bundle. As this PR is updated, I'll keep you updated on how the bundle size is impacted. Total
Changeset
View detailed bundle breakdownAdded No assets were added Removed No assets were removed Bigger
Smaller No assets were smaller Unchanged
|
Bundle Stats — loot-coreHey there, this message comes from a GitHub action that helps you and reviewers to understand how these changes affect the size of this project's bundle. As this PR is updated, I'll keep you updated on how the bundle size is impacted. Total
Changeset
View detailed bundle breakdownAdded
Removed
Bigger No assets were bigger Smaller No assets were smaller Unchanged No assets were unchanged |
Pitch:
The biggest challenge with any budget is knowing you’ll have the right amount of money at the right time. Actual Budget’s envelop method does a great job of tracking this by encouraging you to plan only with the money you currently have.
A Pay Period view would allow for planning in income driven slices. Instead of an arbitrary month, a user could select whether they get paid weekly, bi-weekly, etc. and there budget view would be broken down in that time range (e.g Aug 29th - Sep 12th). This allows for planning with numbers proportional to and with the time reference of your income.
Additionally, a Pay Period view solves the Tracking Budget’s biggest issue. Since the time slices are income driven, you can be more confident you’ll have the right amount of money when you need it.
Technical Description:
This approach emphasizes backwards compatibility by adding additional "months" to YYYYMM. 1 - 12 remain Calendar Months, while 13 - 99 are leveraged for Pay Periods. It is calculation heavy, as it uses the Frequency and Start Date configurations set on the settings page (only visible after enabling the experimental feature) to derive date ranges. A "Show Pay Periods" checkbox is displayed at the top of the budget page - allowing users to quickly toggle between Month and Pay Period views.
This is still very much a work in progress. I need to ensure Spent values display for Pay Periods, that a Pay Period can do everything a Month can do (e.g. Roll Over, handle templates, etc.), and then do a clean up to make sure pay period logic is isolated as much as possible.
Completed Functionality:
Experimental Feature Flag:

Pay Period Configs:

Toggleable Pay Periods vs Month view
