(a) The Legislature finds and declares that persons with an understanding of personal finance are better prepared to manage their money and that providing a personal finance program in secondary schools in West Virginia will prepare students to handle their finances.
(b) To provide students a basic understanding of personal finance, the state board shall develop a program of instruction on personal finance which may be integrated into the curriculum of an appropriate existing course or courses for students in secondary schools.
(c) Beginning with the class of students entering 9th grade in the 2024-2025 school year and thereafter, each high school student shall complete one-half credit course of study in personal finance during their 11th or 12th grade year as a requirement for high school graduation. The State Board of Education shall develop and issue implementation guidance to local school boards and other education agencies as to curriculum, content matter standards, eligible teacher certification(s), and graduation requirements the course may fulfill before July 1, 2024.
Search in all ChaptersSearch in Chapter 1Search in Chapter 2Search in Chapter 3Search in Chapter 4Search in Chapter 5Search in Chapter 5ASearch in Chapter 5BSearch in Chapter 5CSearch in Chapter 5DSearch in Chapter 5ESearch in Chapter 5FSearch in Chapter 5GSearch in Chapter 5HSearch in Chapter 6Search in Chapter 6ASearch in Chapter 6BSearch in Chapter 6CSearch in Chapter 6DSearch in Chapter 7Search in Chapter 7ASearch in Chapter 8Search in Chapter 8ASearch in Chapter 9Search in Chapter 9ASearch in Chapter 10Search in Chapter 11Search in Chapter 11ASearch in Chapter 11BSearch in Chapter 12Search in Chapter 13Search in Chapter 14Search in Chapter 15Search in Chapter 15ASearch in Chapter 16Search in Chapter 16ASearch in Chapter 16BSearch in Chapter 17Search in Chapter 17ASearch in Chapter 17BSearch in Chapter 17CSearch in Chapter 17DSearch in Chapter 17ESearch in Chapter 17FSearch in Chapter 17GSearch in Chapter 17HSearch in Chapter 18Search in Chapter 18ASearch in Chapter 18BSearch in Chapter 18CSearch in Chapter 19Search in Chapter 20Search in Chapter 20ASearch in Chapter 21Search in Chapter 21ASearch in Chapter 22Search in Chapter 22ASearch in Chapter 22BSearch in Chapter 22CSearch in Chapter 23Search in Chapter 24Search in Chapter 24ASearch in Chapter 24BSearch in Chapter 24CSearch in Chapter 24DSearch in Chapter 24ESearch in Chapter 24FSearch in Chapter 25Search in Chapter 26Search in Chapter 27Search in Chapter 28Search in Chapter 29Search in Chapter 29ASearch in Chapter 29BSearch in Chapter 29CSearch in Chapter 30Search in Chapter 31Search in Chapter 31ASearch in Chapter 31BSearch in Chapter 31CSearch in Chapter 31DSearch in Chapter 31ESearch in Chapter 31FSearch in Chapter 31GSearch in Chapter 31HSearch in Chapter 31ISearch in Chapter 32Search in Chapter 32ASearch in Chapter 32BSearch in Chapter 33Search in Chapter 34Search in Chapter 35Search in Chapter 35ASearch in Chapter 36Search in Chapter 36ASearch in Chapter 36BSearch in Chapter 37Search in Chapter 37ASearch in Chapter 37BSearch in Chapter 37CSearch in Chapter 38Search in Chapter 39Search in Chapter 39ASearch in Chapter 39BSearch in Chapter 40Search in Chapter 41Search in Chapter 42Search in Chapter 43Search in Chapter 44Search in Chapter 44ASearch in Chapter 44BSearch in Chapter 44CSearch in Chapter 44DSearch in Chapter 45Search in Chapter 46Search in Chapter 46ASearch in Chapter 46BSearch in Chapter 47Search in Chapter 47ASearch in Chapter 47BSearch in Chapter 48Search in Chapter 49Search in Chapter 50Search in Chapter 51Search in Chapter 52Search in Chapter 53Search in Chapter 54Search in Chapter 55Search in Chapter 56Search in Chapter 57Search in Chapter 58Search in Chapter 59Search in Chapter 60Search in Chapter 60ASearch in Chapter 60BSearch in Chapter 61Search in Chapter 62Search in Chapter 63Search in Chapter 64
We keep an eye on how much money is coming in to our accounts, how much is goingout, and when and how often those events are happening. We keep an eye out ontrends, what are the recurring expenses, how many of those are necessary, so onand so forth.
There's a good chance that you're doing this already. There are plenty ofoff-the-shelf solutions one can pick from for this purpose. There are mobileand SaaS apps that can connect to all your bank accounts, import all yourfinancial transactions, and show you consolidated data.
Not that there's anything particularly wrong with such apps. I'm instead of theopinion that my financial data (from across all my bank accounts) is somethingonly I should have consolidated access to. Financial data is one of the mostprivata data I own. So limiting the possible attack vectors sounds to me likean obvious choice.
If you're out searching for such software and limit your search to open-sourceonly solutions, you're most likely going to come across Plain Text Accounting,which is something I'll describe in this post.
Double-entry accounting is a great way to track your finances. In this system,the flow of money between accounts is represented using transactions. You canthink of a transaction as an "entry" of sorts that talks about a specificinstance of money flowing between accounts. In most cases, transactions arecomposed of two "legs", where one leg is the credit side and the other oneis the debit side.
One of the most important rules of double-entry accounting is that the sum ofthe amounts of the individual legs in a transaction must be zero. A transactionis said to be "balanced" if this rule is satisfied.
In the first few lines we specify some metadata. Then we open (initialize) twoAccounts. And the last three lines define a transaction where rent was deductedfrom one of those accounts and debited to the other one.
Note that the account names don't always have to correspond one-to-one toreal-world accounts. You can define as many accounts as you like, each for aspecific purpose. For instance, you can have one account to track yoursupermarket expenses, one for rent, one for Netflix, so on and so forth.
The core idea with Beancount is that the user is responsible for storing alltheir financial transactions inside their .beancount file. This file acts asthe single source of truth for all your financial data from all your banks.
Almost every bank allows you to export your data in some form. You should beable to log in to your bank's website, select a timeframe, and download all thetransactions in a given file format. This usually tends to be CSV, but you canalso download a PDF or sometimes an OFX file.
Note that ideally this should be something that Python can parse without muchceremony. For instance, if I would have the choice between CSV and PDF, I wouldmost likely pick a CSV download. Not because Python cannot parse PDF data(because it can) but because CSV is a much simpler data format than PDF.
Beancount provides an importer framework to help with this process. Importersare Python programs which take a source file (eg. the downloaded CSV), parse it,and convert the data into data structures that Beancount provides. A textrepresentation of these data structures is what makes up your personal ledger.
The Importer classes shipped with Beancount are more like protocols. The baseclass is literally called ImporterProtocol. They define method signatures andleave the implementation up to you. This way, you can inherit the baseImporterProtocol class for your own importer, override the relevant methods,and let Beancount know of the existence of these importer classes using aconfiguration file.
Depending on what banks you have accounts with, you can define multiple suchimporter classes and let Beancount know of their existence in a configurationfile. Everything else will be handled for you automatically using the commandline scripts included in Beancount.
Recall that the flow of money in double-entry accounting is representedusing transactions involving at least two accounts. When you download CSVs fromyour bank, each line in that CSV represents money that's either incoming oroutgoing. That's only one leg of a transaction (credit or debit). It's up to usto provide the other leg.
Balancing involves figuring out what the transaction is about and assigning itan equal and opposite leg. In this case we can see that this transaction has todo with us paying rent. So the second leg should clearly contain theExpenses:Rent account.
I prefer doing this every month. So on the first Sunday of every month, Iprepare a fresh cup of coffee, download all the CSV files, run them through myimporters, and balance all the unbalanced transactions.
In my experience so far, it has been the exact opposite. The entire process hasnever taken me more than 45 minutes to finish. Considering that I do this oncea month, the time investment seems more than fair. And the added benefit is thatby balancing these transactions by hand, I get a fairly good idea of what washappening in my accounts in the previous month.
bean-query is a command line utility shipped with Beancount that lets you runSQL-ish queries on your financial data. The query language is specific toBeancount. But if you're familiar with SQL, you'll feel right at home withbean-query.
There are multiple reports built-in, for instance balance sheet, incomestatement, document browser (another neat feature of Beancount where you canattach documents (eg. invoices) to transactions), and more. And you canfilter all the data using timeframes.
If you're interested in learning more, you should consider buying an ebook Iwrote on this topic titled Tracking Personal Finances using Python. In thisebook, I explain the concepts mentioned above in detail to help you build yourown personalized multi-banking application using Python.
Adam Carroll - Adam Carroll, an Iowa native, is a nationally recognized speaker on financial literacy. His website includes several resources as well as information on his books, including Winning the Money Game and The Money Savvy Student. Information is also included about his latest documentary, Broke, Busted, and Disgusted.
b1e95dc632