@aojdevstudio/transactionsyncing

Finance Guru™ - AI-powered family office system built on BMAD-CORE™ v6 architecture

View in AI SkillSafe app
1465 downloads
0 stars
0 demos
SKILL.md
nameTransactionSyncing
descriptionImport and manage Fidelity transaction history CSVs. Two workflows - IngestTransactions (local rolling archive from Downloads) and SyncTransactions (Google Sheets push). USE WHEN user mentions "sync transactions", "import transactions", "ingest transactions", "transaction history", OR wants to import Fidelity History CSV.

TransactionSyncing

Import Fidelity transaction history CSV into Google Sheets using a hybrid architecture: master Transactions tab for full audit trail + auto-routing of debit card purchases to Expense Tracker for Budget Planner integration.

Workflow Routing

When executing this workflow, output this notification:

Running the **SyncTransactions** workflow from the **TransactionSyncing** skill...
Workflow Trigger File
IngestTransactions "ingest transactions", "import history", "bring in transactions", user points to Downloads CSV workflows/IngestTransactions.md
SyncTransactions "sync transactions", "push to sheets", "transaction sync" workflows/SyncTransactions.md

Typical flow: IngestTransactions (local archive) -> SyncTransactions (Google Sheets)

Examples

Example 1: Sync after downloading Fidelity transaction history

User: "sync transactions"
-> Reads History_for_Account_{account_id}.csv from notebooks/transactions/
-> Creates/updates Transactions tab with full Fidelity data
-> Routes DEBIT CARD PURCHASE entries to Expense Tracker
-> Auto-categorizes expenses (H-E-B -> Groceries, Tesla -> Auto & Transport)
-> Reports: "Added 45 transactions, 12 expenses categorized"

Example 2: Import new transaction export

User: "import the transaction history"
-> Invokes SyncTransactions workflow
-> Detects duplicates by date + action + amount
-> Skips existing entries, adds only new ones
-> Flags uncategorized expenses for manual review

Example 3: Check recent transactions

User: "import fidelity transactions and update expense tracker"
-> Full sync with expense routing
-> Generates summary of dividends received, purchases, margin interest

Architecture Overview

Data Flow

Fidelity CSV (notebooks/transactions/)
         |
         v
+-------------------+
| Transactions Tab  |  <- Master source (ALL transactions)
| (Full Fidelity)   |
+-------------------+
         |
         | Filter: DEBIT CARD PURCHASE
         v
+-------------------+
| Expense Tracker   |  <- Budget Planner integration
| (Categorized)     |
+-------------------+

Transaction Types Handled

Fidelity Action Destination Category
DIVIDEND RECEIVED Transactions only DIVIDEND
REINVESTMENT Transactions only REINVESTMENT
DEBIT CARD PURCHASE Transactions + Expense Tracker Auto-categorized
MARGIN INTEREST Transactions only MARGIN_INTEREST
DIRECT DEPOSIT Transactions only INCOME
LONG-TERM CAP GAIN Transactions only CAP_GAIN
JOURNALED Transactions only INTERNAL_TRANSFER

Smart Categorization

See CategoryRules.md for the full pattern matching rules.

Sample patterns:

  • H-E-B, KROGER, COSTCO, WAL-MART -> Groceries
  • Tesla, SUPERCHA -> Auto & Transport
  • BENIHANA, GOLDEN CORRAL, PAPA JOHN -> Dining Out
  • CVS, PHARMACY -> Health & Wellness

Core Workflow

1. Read Fidelity Transaction History CSV

Location: notebooks/transactions/History_for_Account_{account_id}.csv

CSV Columns:

Run Date, Action, Symbol, Description, Type, Price ($), Quantity,
Commission ($), Fees ($), Accrued Interest ($), Amount ($),
Cash Balance ($), Settlement Date

2. Create/Update Transactions Tab

Google Sheets Structure:

Column Header Source
A Date Run Date
B Action Action (cleaned)
C Symbol Symbol
D Description Description
E Type Type (Cash/Margin)
F Amount Amount ($)
G Category Auto-assigned
H Balance Cash Balance ($)
I Settlement Settlement Date

3. Deduplicate

Match criteria: Date + Action + Amount

For each CSV row:
  key = f"{run_date}|{action}|{amount}"
  if key exists in sheet:
    SKIP (already imported)
  else:
    ADD to Transactions tab

4. Route Expenses to Expense Tracker

Filter: Action contains "DEBIT CARD PURCHASE"

Expense Tracker Format:

Date Description Category Amount Month

Category Assignment: See CategoryRules.md

5. Generate Summary

SYNC SUMMARY - [Date]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

TRANSACTIONS TAB:
  New entries: 45
  Skipped (duplicates): 12

EXPENSE TRACKER:
  Expenses routed: 18
  Auto-categorized: 15
  Needs review: 3

BY TYPE:
  Dividends: $342.50
  Margin Interest: -$18.43
  Debit Card: -$1,245.67
  Direct Deposit: +$5,054.09
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Google Sheets Integration

Spreadsheet ID: Read from fin-guru/data/user-profile.yaml -> google_sheets.portfolio_tracker.spreadsheet_id

Creating Transactions Tab (if needed)

// Check if Transactions tab exists
mcp__gdrive__sheets(operation: "listSheets", params: {
    spreadsheetId: SPREADSHEET_ID
})

// Create if missing
mcp__gdrive__sheets(operation: "createSheet", params: {
    spreadsheetId: SPREADSHEET_ID,
    title: "Transactions"
})

// Add headers
mcp__gdrive__sheets(operation: "updateCells", params: {
    spreadsheetId: SPREADSHEET_ID,
    range: "Transactions!A1:I1",
    values: [["Date", "Action", "Symbol", "Description", "Type", "Amount", "Category", "Balance", "Settlement"]]
})

Adding to Expense Tracker

// Append expense row
mcp__gdrive__sheets(operation: "appendRows", params: {
    spreadsheetId: SPREADSHEET_ID,
    sheetName: "Expense Tracker",
    values: [[date, description, category, amount, month]]
})

Critical Rules

WRITABLE Destinations

  • Transactions tab: All columns (new tab, we control format)
  • Expense Tracker: Append new rows only (preserve existing)

NEVER MODIFY

  • Budget Planner formulas
  • Existing Expense Tracker entries

Deduplication Key

  • Transactions tab: Date|Action|Amount
  • Expense Tracker: Date|Description|Amount

Reference Files

  • CategoryRules.md: Pattern matching rules for expense categorization
  • fin-guru/data/user-profile.yaml: Spreadsheet ID
  • scripts/google-sheets/portfolio-optimizer/: Apps Script reference

Pre-Flight Checklist

Before syncing transactions:

  • Transaction History CSV exists in notebooks/transactions/
  • CSV is from Fidelity (not other broker)
  • Expense Tracker tab exists in Google Sheets
  • Current date retrieved via date command

Skill Type: Domain (workflow guidance) Enforcement: SUGGEST Priority: Medium Line Count: < 300 (following 500-line rule)

Embed badges

Add these to your README to show the skill's verification status.

SkillSafe verified badge
Verified badge
[![SkillSafe verified badge](https://api.skillsafe.ai/v1/badge/@aojdevstudio/transactionsyncing/verified)](https://skillsafe.ai/skill/@aojdevstudio/transactionsyncing/)
Installs badge
Installs badge
[![Installs badge](https://api.skillsafe.ai/v1/badge/@aojdevstudio/transactionsyncing/installs)](https://skillsafe.ai/skill/@aojdevstudio/transactionsyncing/)
Scan badge
Scan badge
[![Scan badge](https://api.skillsafe.ai/v1/badge/@aojdevstudio/transactionsyncing/scan)](https://skillsafe.ai/skill/@aojdevstudio/transactionsyncing/)
Eval pass rate badge
Eval pass rate
[![Eval pass rate badge](https://api.skillsafe.ai/v1/badge/@aojdevstudio/transactionsyncing/eval)](https://skillsafe.ai/skill/@aojdevstudio/transactionsyncing/)