Chase vs. Schwab Credit Card

Update June 22 — The Schwab card is no longer available.

Chase vs. Schwab

Chase Freedom Plus or Schwab Invest First

Chase Freedom Plus vs. Schwab Invest First

For the last year my wife and I have been using the Chase Freedom Plus. It gives you 3% cash back in the top 6 categories for each billing cycle and 1% everywhere else. Save up to $200 in rewards and you get an extra $50 bonus! Not bad right? When Charles Schwab came out with the Schwab Invest First (flat 2% cash back at the end of every billing cycle) card I wondered which would fare better. Finally ran the numbers of my actual spending on the Chase card against the flat 2% I would have gotten back with Schwab:

MonthChase Freedom Plus % backSchwab Invest First % back
Jan.1.52%2%
Feb.1.83%2%
Mar.1.68%2%
Apr.0.69%2%
May.1.60%2%
Jun.1.97%2%
Jul.1.70%2%
Aug.1.57%2%
Sep.1.69%2%
Tot.1.32%12%

Ouch! 1.32%?! I figured I would at least be getting 2%. What happened? Well, it turns out that I should be getting closer to 2% but Chase doesn’t classify the categories correctly for many stores. For example: One of our biggest expenses is groceries but Chase doesn’t include Trader Joe’s or Stater Brothers in the “grocery” category. They’re in the “other” category which always pays 1% cash back. We made several large home improvement purchases on the Chase card in April when we bought the house but none of it went towards a category!
I suppose your results will vary depending on where you spend your money. It may not be the best for everyone, but with our spending habits we’ll get an extra %0.68 by switching to Schwab.
Schwab also has the advantage of paying you back each billing cycle meaning you have immediate access to the cash rebate and instantly start earning interest on it.
A few other differences:

FeatureChase Freedom PlusSchwab Invest First
Rebate AvailabilityWait until $200 accruedAt end of billing cycle
QuickenTransactions available as they clearTransactions available at end of billing cycle
Foreign Transactions3% FeeNo fees
Annual Fee$30None
Spending LimitNo limitNo limit
Rewards CapNoneNone

1 The total includes $50 bonus (adjusted as if I had spent a perfect $200 to get the maximum benefit) and the $30 annual Chase credit card fee as if it were amortized over 12 months (because I only put up 8 months of data). Obviously how much and how you spend your money will cause the total percentage to vary.

Breakfast

Applewood Smoked Bacon, Eggs, Pancakes, Butter, Maple Syrup, Orange Juice, Apple Sauce, and Coffee.

IMAG0070

You can’t beat that. Thanks Kris!

2007 Mazda3 Costs

2007 Mazda3 Costs

Update: July 11, 2010. Added Honda-CRV and added data for year 2009/2010.
mazda3

2007 Mazda3 36 month costs (May 23, 2007 to May 30, 2010)1

(bought new)

Year07/0808/0909/10MeanTotal
Fuel2$1,9731,0878151,2923,875
Insurance31,6708476441,0543,161
Depreciation42759701,6259572,870
Service3791,3471856371,911
Interest Expense7276913475881,765
New car tax1,274nilnil4251,274
DMV Registration362171217250750
Accessories121nilnil40121
Documentation Fee55nilnil1855
Jury Duty parking ticket14nilnil514
Total Costs$6,851$5,127$3,8335,270$15,811
Miles Driven18,61910,0907,83112,18036,540
Cost per mile$0.37$0.51$0.49$0.43$0.43

Chart

2003 Honda-CRV 12 month costs (June 8 2009 to May 30, 2010)

(bought used)
2003_honda_crv_sm
Starting miles: 77810
Ending miles: 83500

Service6$1,68040%
Fuel78819%
Insurance364415%
Depreciation60514%
DMV Registration49012%
Total Costs4,207
Miles Driven5,690
Cost per mile$.74

Chart

Total cost of ownership for the 1993 Ford Taurus SHO (64 months, 2002-2007). (bought used)

93sho

Insurance5$11,07039%
Service9,15132%
Fuel4,33815%
Depreciation2,5909%
Rentals6972%
DMV Registration6242%
Ebay Fees940%
Total Costs$28,564
Miles Driven32,645
Cost per mile$0.87

Chart

Footnotes:

1 I’m not including the car payments because the car is an asset and the the loan is a liability. The correct way to calculate costs is to add the value of your car as an asset, add the value of your loan as a liability (which has a net effect of 0) and only look at the depreciation and interest expense. Depreciation—the difference between the purchase price and sale price is part of the total cost of ownership.
2 I expect fuel costs per mile to drop this year since the price of fuel went down. Update June 11, 2010: I was wrong about this. Fuel costs were $0.11 mile in 2007, the same as the mean.
3 The insurance rate for the Mazda3 reflects what I paid before getting married in August 2008. Insurance after this is split between the Mazda3 and Honda-CRV as I have no way to apply it to each vehicle separately. My insurance also went down after getting married.
4 Depreciation is low because I shopped around and got a very good deal on the Mazda3—about $4,000 less than what Costco offered ($100 over invoice) for the exact same model. At some points in 
last year

2007/2008
 I could have sold my car for more than I bought it for. However, I expect depreciation to be much higher in the future. Depreciation calculated from KBBUpdate June 11, 2010. I was right, depreciation actually increased as the car has aged. I expect among the 4th-5th year that trend should start to reverse and my depreciation expense will be lower.
5 The insurance rate for the SHO is what I /would/ have paid had I not been living with my parents… this is higher because my insurance company was 21st (I use Amica now) and they didn’t have very good rates. But because I lived with my parents I paid much less than that. If I remove insurance from the calculations on both vehicles the SHO is $0.54/mile compared to the Mazda3’s $0.28/mile (in 2007).
6 Added July 11, 2010. The service this year is almost entirely replacing the A/C that went bad. I expect service costs will go down significantly over the next few years.

We Bought a House

You may be wondering why I haven’t posted in awhile. Well, Kris and I bought a house!

house_before
Front Yard
backyard
Backyard
It 
needed
 still needs a lot of work. So far J&K Drywall fixed a lot of the drywall, hammered up the entryway, repainted the interior, and suggested some additions to the back. Dad, Kris and I laid tile (it’s still not done), Carpet Masters put in new carpet. I converted the geysers to sprinklers and I’m slowly trying to migrate to drip irrigation. Jason got our water pressure down to reasonable levels. Lately I’ve been spending the evenings spraying ants.

A few before and after shots…

Stairs old
Stairs before
Stairs after
Stairs after
Entry before
Entry before
Entry after again
Entry after
And the ants have invaded our house from four different locations! I can’t figure out what they’re after, we’ll just see them swarming the coffee table, the tiled floor, etc.
I’m considering a “home and garden” category.

Taxonomy at Home


After reading the chapter on taxonomy governance in Microsoft Office SharePoint Server 2007 Best Practices by Ben Curry and Bill English, I started thinking about my own personal taxonomy.
Taxonomy is a division into groups or categories.1 A good example is a Library’s Dewey Decimal Classification. Tagging has become a popular means of classification in blogging and photo sharing communities. But what about the documents on my computer?

Most people keep their documents in folders. They will have a folder for each client, a folder for each class at school. Some people keep a hierarchy. An English paper is under Education -> CSUSB -> 2001 -> English -> 301. This hierarchy is how I stored my files and what also got me in trouble when I started to realize that files belonged in multiple places because it makes sense for them to be in several areas: If my brother wrote a paper on Conditional Election, should I file it under Family -> Essays -> Jon, or Religion -> Christianity -> Essays, or Religion -> Essays -> Christianity. You can see that Essays doesn’t belong under Family or Christianity and the hierarchy (in this case) is meaningless.

Metadata filesystem tagging is supposed to solve this problem.2 Instead of placing the files in folders, the theory of metadata correctly realizes that we aren’t storing hierarchical information, but descriptive data. We’re simply trying to describe the contents of a file. So I could tag the paper, “Essay, Christianity, Religion, Family. This does two things: 1) It doesn’t matter how many “tags” are given to an object (or document). The object is not duplicated. And 2) categorically searching for files is easy. This is how I’ve been organizing files the last few years.

This is a great theory, but in practice, it has failed me. First, in order for filesystem metadata to work one has to be disciplined to do it to every file. This takes time. Lots of time. Second, there are quite a few flaws in the implementation: The first I blame on Apple’s implementation because the metadata isn’t stored in the objects themselves so most backup solutions don’t back up the metadata. The second problem is tag creep. I have too many tags and I forget which ones I’ve used so I have a “money” and a “finance” tag, a “car” and an “auto” tag. If I had spent the time to develop a taxonomy this wouldn’t be an issue, but I didn’t. The thought didn’t cross my mind. Now I have a mess of inconsistent tags, half my files aren’t tagged because I don’t have time to tag them, and I’m not motivated to do so because I know when my hard drive crashes and I have to restore from backups I’ve lost all my metadata and I would have to start over.

So what do I do now? Well, now I just keep everything in the documents folder, and store any “tags” in the filename and have a workflow that pre-pends the date to the filename. I do have some high level folders that pertain more to how I got the file (or the content type) than the logical content. For example, if I scan a statement from my Schwab account it would go under the Documents -> Scan folder as “20080928 schwab statement”. I know it’s a mess but if I have to restore from backup I’ve retained the metadata in the filename.

I think tagging would be more maintainable if I developed a personal high level taxonomy (sort of a micro level taxonomy governance) instead of allowing arbitrary tag names. To see what I mean, this is how I’ve been classifying files (low level): Christianity, Automobile, Schwab, Lisp, Car, Essay, Recipe. But this is how I should classify files (high level): I would create a list of (no more than 10) high level tags like, “Religion, Transportation, Finance, Knowledge” that would have enough foresight to cover all topics and areas in the future (much like Dewey).
But who has time to do that?

I don’t. So my files are a mess, and they will stay that way. But the important thing is I know how they should be organized.

Notes

1 http://www.answers.com/taxonomy, Referenced September 29, 2008

How to Backup SQL Server 2005 Databases

Backup Requirement

Daily full backup, transaction log backups every 15 minutes. Files are backed up to the local filesystem. Remote backup server copies changes from the server every 15 minutes. Although not an efficient use of space, it is useful to backup to the local hard drive in case a point in time restore is needed, or for restoring tests databases to other SQL Server instances.

Recoverability

If an unrecoverable failure occured on the database system the data will be recoverable to a state within 30 minutes (this is a worst case scenario if the remote backups aren’t synchronized: 15 since last transaction log and 15 minutes since last offsite backup) of failure by restoring the full backup and rolling the transaction log backups forward.

SQL Server backups

Create a Job to do a FULL backup daily. Overwrite the backup if it already exists, and it’s always a good idea to do a checksum and verify the backup:

BACKUP DATABASE [WSS_Content] TO DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.bak’ WITH NOFORMAT, INIT, NAME = N’WSS_Content-Full Database Backup’, SKIP, NOREWIND, NOUNLOAD, STATS = 10, CHECKSUM
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N’WSS_Content’ and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N’WSS_Content’ )
if @backupSetId is null begin raiserror(N’Verify failed. Backup information for database ”WSS_Content” not found.’, 16, 1) end
RESTORE VERIFYONLY FROM DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.bak’ WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
GO

Create a second Job to do a Transaction Log backup every 15 minutes. This time append to the backup file like this:

BACKUP LOG [WSS_Content] TO DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.trn’ WITH NOFORMAT, NOINIT, NAME = N’WSS_Content-Transaction Log Backup’, SKIP, NOREWIND, NOUNLOAD, STATS = 10, CHECKSUM
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N’WSS_Content’ and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N’WSS_Content’ )
if @backupSetId is null begin raiserror(N’Verify failed. Backup information for database ”WSS_Content” not found.’, 16, 1) end
RESTORE VERIFYONLY FROM DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.trn’ WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
GO

To prevent the transaction log backup file from growing infinitly large add a second step to the first Job, so that after the FULL backup an immediate transaction log backup occurs. The only difference is you want to overwite the backup set for the transaction log:

BACKUP LOG [WSS_Content] TO DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.trn’ WITH NOFORMAT, INIT, NAME = N’WSS_Content-Transaction Log Backup’, SKIP, NOREWIND, NOUNLOAD, STATS = 10, CHECKSUM
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N’WSS_Content’ and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N’WSS_Content’ )
if @backupSetId is null begin raiserror(N’Verify failed. Backup information for database ”WSS_Content” not found.’, 16, 1) end
RESTORE VERIFYONLY FROM DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.trn’ WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
GO

Summary

The first Job runs daily and has two steps. The first step does a full backup of the database overwriting the previous full backup. The second step does a transaction log backup overwriting all the previous transaction log backups. The second job runs a transaction log backup, which gets appended to the previous transaction log backup every 15 minutes. While this is happening the backup server checks every 15 minutes archiving any new or changed files from the system.

Restoring

To restore the database, first restore the full backup, then restore each transaction log. Here’s an example of restoring the first four transaction logs:

RESTORE DATABASE [WSS_Content] FILE = N’WSS_Content’ FROM DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.bak’ WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10
GO
RESTORE LOG [WSS_Content] FROM DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.trn’ WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10
GO
RESTORE LOG [WSS_Content] FROM DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.trn’ WITH FILE = 2, NORECOVERY, NOUNLOAD, STATS = 10
GO
RESTORE LOG [WSS_Content] FROM DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.trn’ WITH FILE = 3, NORECOVERY, NOUNLOAD, STATS = 10
GO
RESTORE LOG [WSS_Content] FROM DISK = N’D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\WSS_Content.trn’ WITH FILE = 4, NOUNLOAD, STATS = 10
GO

Make sure the last log restore puts the database into RECOVERY mode by omitting the NORECOVERY command. The database can only have transaction logs rolled forward while in NORECOVERY mode. If you mess this up by putting the database into RECOVERY mode before the last transaction log is rolled forward, you have to start the restore process all over. So do not mess it up.

Push email.

What’s the big deal about push email?

RIM’s Blackberry and BES server, Apple’s iPhone and MobileMe service, Microsoft’s ActiveSync with Exchange all offer Push Email. That is, your phone instantly gets a notifcation of new email. I don’t get it. I don’t want my phone to tell me when I have new email. I disable push email and set it to check once an hour at most and when I feel like it I’ll read them to see if there’s anything urgent. I get tons of personal and work email throughout the day and barely have time to read them much less get interrupted every time one comes in. Sometimes I even exit Outlook while I’m at work if I need to get something done. I think most people don’t realize how much time checking email costs.

If anything I would like a phone that notifies me when I don’t get new email, because that probably means something is wrong with the mail server.