hsa-expense-analyzer-cli 0.1.6
Install from the command line:
Learn more about npm packages
$ npm install @joshjohanning/hsa-expense-analyzer-cli@0.1.6
Install via package.json:
"@joshjohanning/hsa-expense-analyzer-cli": "0.1.6"
About this version
π©Ί π§Ύ π A Node.js CLI tool that analyzes HSA expenses and reimbursements by year from a folder of receipt files
Expects receipts to be in single folder with the following naming convention:
- Expenses:
<yyyy-mm-dd> - <description> - $<amount>.pdf|png|jpg|whatever
- Reimbursed expenses:
<yyyy-mm-dd> - <description> - $<amount>.reimbursed.pdf|png|jpg|whatever
[!TIP] When you receive a reimbursement from your HSA provider, rename the receipt to include
.reimbursed.
before the extension. This will help track which expenses have been reimbursed and which expenses can still be submitted.
Example file structure:
<dirPath>/
βββ 2021-01-01 - doctor - $45.00.pdf # Expense
βββ 2021-02-15 - pharmacy - $30.00.reimbursed.pdf # Reimbursed expense
βββ 2022-02-01 - doctor - $50.00.reimbursed.pdf # Reimbursed expense
βββ 2022-03-15 - dentist - $150.00.png # Expense
βββ 2022-11-01 - glasses - $50.00.reimbursed.jpg # Reimbursed expense
βββ 2023-05-01 - doctor - $45.00.pdf # Expense
βββ 2023-06-01 - doctor - $55.00.reimbursed.pdf # Reimbursed expense
βββ 2024-07-15 - doctor - $50.00.pdf # Expense
βββ 2025-01-15 - doctor - $125.00.pdf # Expense
[!NOTE]
- The tool is expecting the date to be in
yyyy-mm-dd
format and be a valid date- The
" - "
dashes after the date before the amount must have spaces around them- The amount must start with a
$
and be in format$XX.XX
(e.g., $50.00, not $50,00 or $50)- Any common file extension for receipts is fine (
.jpg
,.heic
, etc.); only the date and $ amount are used for calculations- The tool detects reimbursements by looking for
.reimbursed.
anywhere in the filename
The easiest way is to install as a global package from npm and run it:
npm install -g @joshjohanning/hsa-expense-analyzer-cli
hsa-expense-analyzer-cli --dirPath="/path/to/your/receipts"
Or if you want to clone locally and hack on the code:
npm install
npm run start -- --dirPath="/path/to/receipts"
You can also run locally using sample data to test the functionality:
npm run test
2021:
expenses: $75.00
reimbursements: $30.00
receipts: 2
2022:
expenses: $250.00
reimbursements: $100.00
receipts: 3
2023:
expenses: $100.00
reimbursements: $55.00
receipts: 2
2024:
expenses: $50.00
reimbursements: $0.00
receipts: 1
2025:
expenses: $125.00
reimbursements: $0.00
receipts: 1
Total:
expenses: $600.00
reimbursements: $185.00
receipts: 9
Expenses by year
2021 β’ββββββββββββββββββββ $75.00
2022 β’ββββββββββββββββββββ $250.00
2023 β’ββββββββββββββββββββ $100.00
2024 β’ββββββββββββββββββββ $50.00
2025 β’ββββββββββββββββββββ $125.00
βββββββββββββββββββββ
Reimbursements by year
2021 β’ββββββββββββββββββββ $30.00
2022 β’ββββββββββββββββββββ $100.00
2023 β’ββββββββββββββββββββ $55.00
2024 β’ββββββββββββββββββββ $0.00
2025 β’ββββββββββββββββββββ $0.00
βββββββββββββββββββββ
Expenses vs Reimbursements by year
2021 Expenses β’ββββββββββββββββββββ $75.00
2021 Reimbursements β’ββββββββββββββββββββ $30.00
2022 Expenses β’ββββββββββββββββββββ $250.00
2022 Reimbursements β’ββββββββββββββββββββ $100.00
2023 Expenses β’ββββββββββββββββββββ $100.00
2023 Reimbursements β’ββββββββββββββββββββ $55.00
2024 Expenses β’ββββββββββββββββββββ $50.00
2024 Reimbursements β’ββββββββββββββββββββ $0.00
2025 Expenses β’ββββββββββββββββββββ $125.00
2025 Reimbursements β’ββββββββββββββββββββ $0.00
βββββββββββββββββββββ
If you have files that don't match the expected naming pattern, you'll see a warning at the top of the output:
β οΈ WARNING: The following files do not match the expected pattern:
Expected pattern: <yyyy-mm-dd> - <description> - $<amount>.<ext>
Filename Error
-------- -----
2021-01-10 - doctor-incorrect-amount - $50,00.pdf Amount "$50,00.pdf" should be a valid format like $50.00
2021-01-10 - doctor-incorrect-amount - $50.pdf Amount "$50.pdf" should be a valid format like $50.00
2021-01-15 - doctor-missing-dollar-sign - 50.00.pdf Amount "50.00.pdf" should start with $
2021-01-25 - doctor-no-extension - $50.00 File is missing extension (should end with .pdf, .jpg, etc.)
2021-01-30 - doctor-missing-amount.pdf File name should have format "yyyy-mm-dd - description - $amount.ext"
2021-01-30- doctor-missing-space-after-dash - $50.00.pdf File name should have format "yyyy-mm-dd - description - $amount.ext"
2021-1-25 - doctor-wrong-date-format - $50.00.pdf Date "2021-1-25" should be yyyy-mm-dd format
2021-25-01 - doctor-wrong-date-format - $50.00.pdf Date "2021-25-01" should be yyyy-mm-dd format
doctor-missing-date - $120.00.pdf File name should have format "yyyy-mm-dd - description - $amount.ext"
Details
- hsa-expense-analyzer-cli
-
joshjohanning
- 5 days ago
- MIT
- 3 dependencies
Assets
- hsa-expense-analyzer-cli-0.1.6.tgz
Download activity
- Total downloads 0
- Last 30 days 0
- Last week 0
- Today 0