Skip to content

Instantly share code, notes, and snippets.

@tmikeschu
Last active October 8, 2018 15:46
Show Gist options
  • Save tmikeschu/5e9a8a77ba21da441c7fb342d6bbca89 to your computer and use it in GitHub Desktop.
Save tmikeschu/5e9a8a77ba21da441c7fb342d6bbca89 to your computer and use it in GitHub Desktop.

Personal Finance Management (PFM)

Context: once account number is provided, persist through all contexts unless user asks to change account

Competency: spending (informational)

Slots:

Required: none. Default can be something like checking account in the last month.

Optional: account_type, merchants, categories, location, date

Business logic handles default and/or specified filters.

Transitions:

Incoming: transactions

Outgoing: transactions

Competency: transactions (informational)

Slots

Required: none. Default can be something like last 50 transactions.

Optional: account_type, merchants, categories, location, date, count, type, amount, money, common_stat, visualization_type

common_stat possibilities: max, min, average, range, mode

Aggregations would be handled by business logic

Transitions

Incoming: spending

Outgoing: spending

Competency: income (informational)

Slots

Required: None. Report last paycheck of current income by default.

Optional: start_date end_date

Competency: account_balance (confirmational)

Slots

Required: account_number.

Optional: start_date end_date account_type

Competency: spending_advice (informational)

Slots

Required: none. Set default to one penny or a certain budget if set.

Optional: amount start_date end_date category merchant

Competency: transfers (confirmational)

Slots

Required: amount from to

From webhook: new_balances, where new_balances is a list of just one balance if the transfer is to another person, and a list of two if it is between a single users account types.

Competency: withdrawal_limits (confirmational)

Slots

Required: new_amount account_type

Competency: account_creation (confirmational)

Slots

Required: name address account_type

Competency: payee_creation (confirmational)

Slots

Required: payee_name payee_address

Competency: payday_report (informational)

Slots

Required: none. Default response reports date of last paycheck

Optional: start_date end_date sequence_position

sequence_position :: Next | Last

Competency: bank_location (informational)

Slots

Required: none. Default response shows the nearest ATM.

Optional: location_type

Business logic uses lat and long in payload to determine nearest.

Competency: bank_location (informational)

Slots

Required: none. Default response shows the nearest ATM.

Optional: location_type

Business logic uses lat and long in payload to determine nearest.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment