Blog

  • Buying is easy

    But letting go is not.

    I spent several weekends in August tidying up old PCs and other computer hardware, hopeful that it would benefit some people.

    One laptop went to a needy family. That was easy, because it’s a small laptop (a Netbook, to be exact.)

    There were two other needy families who wanted computers, but never came. The pile of old computers remained uncollected in my parent’s office for over two months.

    The dateline I gave was 31st October, so mid November we loaded all of them to the back of the car and drove them to the Salvation Army only to be rejected because “Windows XP is too old.”

    These are perfectly working computers that I cleaned up, re-installed the OS, packed neatly and labelled the hardware specifications.

    I felt a little discouraged, so I tried advertising them again on Facebook. This time, 3 more pieces of hardware reserved, pending collection.

    I still have 2 computers and a bunch of old monitors, keyboards and network switches.

    Drove to Funan Center and dropped monitors, keyboards and network equipment off at the information counter where they provide e-waste recycling.

    Old hardware at Funan lift lobby
    Above: Old hardware at the lift lobby at Funan Center

    I drove the last 2 computers to office where I intend to keep them for a bit more, or perhaps place notices on the lift doors to see if anybody wants them.

    Just as I was unloading the computers from my car, a foreign worker who cleans the trash at the office building saw me placing the computers on a trolley. His eyes lit up as he approched me.

    “This. Throw?” he asked, pointing at the computers.

    “Ya. If you want, take them — all working,” I said.

    “Working?”

    “Ya.”

    He pushed the trolley to the back of the refuse area where I saw some old furnitures and a HUGE server (something like a massive IBM blade chassis). He unloaded my computers, then returned my trolley.

    I hope he’ll find good use for them.

    I’m still puzzled why Salvation Army would reject these perfectly working computers. I know they try to sell them for money as it is logistically not worthwhile to transport them to third world countries, but they could have given them out for free at the thrift store too. Maybe they have insufficient manpower; I feel for them because I get upset every time I see the pile of junk people leave behind at the outdoor donation bins.

    Salvation Army is not a recycling facility.

    Nevertheless, a good lesson learnt here is that things are easy to buy, and never easy to let go. I’m trying to be a minimalist because I value my personal space more than anything else. Space is expensive and precious, especially on this tiny island.

    Think before you buy.

    P.S. People asked why I never offered to deliver the computers to the needy families since I drive. I don’t believe in giving to laziness. I worked my ass as a student carrying computers and computer parts on the bus to and fro my home and Sim Lim Square as a kid, and I don’t believe they can’t drop by and pick up a CPU on a bus. I will give for free, but at the very least they will have to come get it.

  • Investment portfolio review

    Earlier this year I wrote about the lessons I’ve learnt and how I’ll be reshuffling my investment portfolio; the year has come to an end so it is time for my annual review.

    I’ve reduced the losses on my CPF investment. I was at -32% at the beginning of this year, and is now at -27%. This was achieved by switching out of high risk funds and then maintaining a 50/50 split between low risk Singapore-based bonds and equity funds. When the balance between them spreads ~3-5%, I use a partial fund switch to re-balance, maintaining as close to the the 50/50 split as possible.

    I’ve also significantly reduced the losses on my cash based ILF with Prudential. I applied the same technique as my CPF investments above, and will be surrendering the investment later this month as it has broken even.

    I have also had nett positive gains on my entire SGX portfolio, and will be looking to sell some positions since I anticipate another plunge early next year as oil prices fall and interest rates rise.

    I will also be reviewing my other insurance policies (for protection, not investment) this month and will write separately on this subject.

    I feel extremely comfortable now that I have established various mechanisms to track my income, expenses and assets. When I am asked specific questions about my financial health, I am usually able to provide detailed and accurate answers — this is the key to good financial management and knowledge.

    I share with my spouse, family members and close friends what I have learnt and feel happy that I am able to help others better manage their finances.

    The most important lesson learnt this year is that any form of investment requires active management.

    With that, I look forward to 2015 where I will be venturing into another major financial phase — real estate investment.

  • One year of financial progress; Tracking your net worth

    One year of financial progress; Tracking your net worth

    I’ve made effort to track my expenses over the last few years. This meant keeping a record every time I took money or a credit card out of my wallet. It is a tedious process, and gets sloppy at times.

    At the beginning of this year I set out to track my finances a little differently; I started tracking my total net worth month-to-month. Tracking net worth is much easier than tracking expenses because you only need to do it once a month. The difference, however, is that tracking net worth does not give you visibility into where exactly money is spent, e.g. food, entertainment, transport, etc.

    This is how I do it: At every start of the month, after I get my salary but before I pay my credit card bills, I keep a record of the following in an excel sheet: –

    1. Net present value of resident property less outstanding loan
    2. Net present value of investment property less outstanding loan
    3. Net present value of other assets (e.g. cars) less outstanding loan
    4. Net present value of other liquid investments, e.g. stocks, bonds, endowment, etc.
    5. Net present value of any high value personal items, e.g. jewelry
    6. Outstanding credit card debts, or other unsecured credit facilities (if any)
    7. Total cash in bank
    8. Total balance in CPF account

    * For illiquid assets, e.g. cars and jewelry, apply a fair discount of between 10-30% to its NPV.

    Then, I would create three different totals: –

    • Total of 1-8 (everything)
    • Total of 1-7 (everything except CPF)
    • Total of 2-7 (everything except CPF and resident property)

    The reason for breaking up three totals is because I do not consider CPF and residence as liquid. This will give me a good idea if I am cash rich or (illiquid) asset rich.

    Over a one year period, a graph like this is promising.

    Net Worth 2014

    There’s two things to note: –

    • The general trend of the graphs. If they trend upwards, I am making good progress, i.e. earning more than I spend. If they trend downwards, I am in trouble.
    • The gap between the yellow and blue lines. If this gap widens a lot, and especially if the blue line trends upwards while the yellow line starts to trend downwards, it means I may be spending too much on a potentially illiquid asset (residence) and should do something about it.

    Remember an article in The Straits Times about Singaporeans being asset rich and cash poor? I think the missing point here is that the problem only arises if the asset is illiquid. If the asset is liquid, it wouldn’t be a problem, e.g. a retiree could sell an investment property to fund his retirement.

    For those who have investments and assets, it is a good idea to start tracking your net worth to see if your asset is indeed an asset or liability. If done correctly, you should see vehicles losing value while your properties gaining value month-on-month.

    But if you have not even started tracking your expenses, you should start doing so before tracking your net worth, because detailed expense tracking will help you see where money is going so you can trim unnecessary areas of high expenditure, e.g. shopping.

    With that, I wish all my readers a happy, healthy and prosperous 2015!

  • Buying Mobile Phones in Singapore

    There’s been a piece of news recently where a Vietnamese tourist who made only $200/month had to kneel down to beg on his knees to get a refund of his money for an iPhone 6.

    I think a lot of people still do not understand the ins-and-outs of this trade. Being a victim of similar scams at mobile phone stores in the old days, I subsequently started a business of my own to prove that it is possible to make an honest living.

    There are few very common tricks that people fall into. The simple ones are these: –

    • Adding taxes to list price after the deal is made. Such sellers usually add an additional 7% GST to the listed price, but sometimes the seller is not a GST-registered business.
    • Missing parts, such as charger and earpiece, requiring a top up. This is the scam I fell for.
    • Not getting the device you wanted, i.e. a fake, or a used item instead of a new one.

    The more complex scams is seen in the news above, where a hidden contractual clause would require you to purchase additional items. There’s also another type of scam known as the swap-bait, where you would purchase a device, then test it and realise it is faulty, but have no choice but to pay extra for an upgrade because the faulty item was the “last piece”.

    How to avoid being scammed?

    Be sure to ask for nett pricing, i.e. tax inclusive price. Be sure to ask if all the items are included in the box, such as charger and earpiece. Also be sure to check the lifetime call timer on the item to ensure that it is 100% brand new (if you are buying a new device). Test the device before making payment. Finally, read any agreement carefully before you sign.

    Sometimes the products may not be sealed, and that is OK because it is common for mobile phone stores to buy from a consumer who has re-contracted with a telco (this is called “buy-back”), then resell it. These devices are still considered “brand new in box” (BNIB), but may have a lapsed warranty of several days. This is how these stores are able to offer good prices well below the recommended retail price (RRP).

    The Vietnamese tourist was unfortunate. These are definitely not normal business practices in Singapore. There are many stores around that make an honest living, and I suggest that people do their own research and go to stores that publish open pricing and have a large social following. The top two such independent stores in Singapore are WhyMobile and Mobile Square.

  • How to buy a used car in Singapore

    I have several friends asking me for advise on their car purchases — especially used ones because the process is more complicated, so I have decided to write a guide instead of having to repeat over and over again.

    Disclaimer: Buying a car is a big financial purchase, so there are many variables to consider. You must do your own due diligence regardless of my advices/recommendations.

    Know your needs

    Ask yourself these questions:

    • Do you really need a car?
    • What kind of mileage do you do every month? Are you a going to drive a lot?
    • Do you need a 7-seater for a big family?
    • Do you often carry large and tall items?
    • Will you drive into Malaysia?
    • Will you be sharing with your spouse or siblings?
    • What other uses do you need the car for?

    All these decisions will affect the type of car you purchase. For example:

    • A travelling salesman may want a fuel economical and reliable car to reduce running costs.
    • A recreational cyclist with foldable bikes may opt for a hatchback or an SUV to fit the bikes.
    • A big family of 7 may want an MPV instead.
    • A regular traveller to Malaysia may want to avoid cars popular for theft, like Hondas and Toyotas.
    • A person sharing with his/her spouse/siblings may need to consider their needs and budget.
    • A single and lonely man may want a convertible Mini Cooper to impress the ladies at the club.

    Know your budget

    Hint: At least $1,000/month.

    A car is a big purchase, so setting a budget is important. As a general rule, the overall expenses of car ownership in Singapore starts around a minimum of $1,000/month.

    Typical expenses breakdown

    Depreciation of a typical bread and butter car (as of 2014) $6,000/yr or $500/mth
    Insurance of a first time buyer with 0% no-claims discount (NCD) $2,400/yr or $200/mth
    Fuel cost of travelling approx 2,000km/month, 12km/l @ $1.75/l $292/mth
    Parking in HDB sheltered carparks $95/mth
    Road tax for a 1,500cc (1.5L) petrol car $686/yr or $57/mth
    General servicing of vehicle every 10,000 kms $600/yr or $50/mth
    ERP (tolls), parking at the office, etc. $100 to $400/mth
    Totals $1,294/mth onwards

    Other costs to consider

    It’s easy to forget that these are also daily costs of a driving a car in Singapore: –

    • Parking at home, at work, at shopping malls, at parent’s or friend’s
    • ERP in both directions of travel
    • Traffic and parking offenses
    • In-car camera — an almost mandatory accessory in cars these days
    • Battery and tyre replacement every 2-3 years or so (rubber gets hard, so do replace them even if they are not worn)
    • Other incidentals like tyre punctures, especially if you work near construction zones
    • Unfortunate incidents such as accidents, vandalism, hit-and-run and associated repair costs
    • Car wash/grooming/beautification/”zhng”

     

    Understand the tax structure

    Additional Registration Fee (ARF)

    Understanding how the ARF tax works is the key to understanding how to calculate the straight-line depreciation for a vehicle in Singapore.

    • Cars less than 10 years old are usually called PARF cars because they carry a Preferential ARF (PARF) value. PARF value is a percentage of the ARF (right now it is 50%) that is given back to you if you dispose the car at the end of 10 years. This is to encourage purchase of newer and more green/efficient vehicles.
    • Cars that are 10 years or older are usually called COE cars because they no longer carry a PARF value and only carry a COE value.

    Certificate of Entitlement (COE)

    Most cars in Singapore are sold with COE unless stated by the seller. If you see the terms “body only” or “w/o COE” then it would mean the price does not include COE.

    Used Import Cars

    There are also used import cars where the registration date of the car starts before the COE hence have more complicated depreciation calculations; I would recommend a first time buyer to avoid these. Used Imports are typical with high-end sports cars, as the savings can be significant.

    There’s simply too much to cover here, so please Google and read up on these terms: OMV, ARF, PARF, PARF rebate and COE. A very detailed summary is available on LTA’s website but may be too confusing for a first timer.

    Work your sums

    Hopefully a table is easier to digest. Just add these all up.

    PARF cars COE cars
    Annual depreciation formula (Purchase Price – Min. PARF) / (No. of months of COE remaining / 12) Purchase Price / (No. of months of COE remaining / 12)
    Road tax
    Same every year Increases 10% every year, maxed out at 150% (at year 15)
    Insurance Comprehensive or 3rd party (only if not under loan) cover Mostly 3rd party cover only, i.e. does not cover your own car in an event of an accident; there are some insurers that will still provide comprehensive cover for cars between 10 to 15 years of age.
    Financing Max. 5 years, or up to remaining lifespan of COE; interest rates between 1.88-2.88% Only available for cars less than 15 years of age; otherwise usually financed using personal term loans with very high interest rates (4-5%)
    Maintenance costs Increases with car age; big ticket repairs usually starts above 5 years or 100,000 kms Same as PARF cars, increases with car age, but COE cars are even older, so will run a higher bill if anything breaks; parts may also be hard to find depending on the model of the car
    Fuel economy Similar to maintenance costs, fuel economy tends to get a little poorer when the car ages, especially if not maintained properly Similar to maintenance costs, fuel economy tends to get poorer with age, but cars built before 2000 have older engine technologies that yield even poorer fuel economy
     Safety Generally better since most cars built after 2004 should have at least an airbag and ABS Generally poorer as safety technologies improved rapidly only in the last decade

    Things to watch out for at the delaer

    Unlike new cars which usually come with a 3 or 5 year warranty, used cars dealers can be dodgy. Here’s some pointers when hunting for a used car: –

    • Don’t trust the mileage. Mileage tampering is possible and is prevalent.
    • Don’t trust the paintwork. Most dealers get a cheap single-coat respray done before cars hit the showroom.
    • Look beyond the paintwork. A car is a mechanical device and a beautiful car that doesn’t move belongs to the museum.
    • Take a careful look at the interior. Interiors are expensive to replace or repair, and will tell a story of its use/care/abuse.
    • Switch off the radio during a test drive. Pay attention to knocking, grinding, squealing or other weird noises when driving; red flag if dealer does not allow you to test drive.
    • Pay a “surprise” visit. Don’t inform the dealer that you are coming; sometimes vehicles may exhibit issues when cold (especially transmission issues), so if you tell the dealer in advance they may warm up the car before you arrive.
    • Minor issues are okay, but don’t count on the dealer making repairs for you. You will be better off asking for a discount and then getting a trusted mechanic to fix minor gremlins.
    • Be sure to ask about the loan rates, the financial institution, the payment process, admin fees (aheem, salesman commission), insurance and road tax; red flag if they offer high interest rates for “in-house” loans, high admin fees (above $500).
    • Have an experienced person help check the car for you, or at minimum have it inspected for accidents and visible issues at STA — they have laser chassis alignment measurement machines.
    • Usually the buyer pays for inspection and a deposit to the dealer should not be required; red flag if dealer insists you place a big deposit before sending the car for inspection.
    • Make sure you work your sums carefully, including the downpayment, financing, transfer fees, insurance, and even road tax.
    • Take your time and shop around, don’t be swayed by sweet talking dealers; a car is a big purchase and you should shop carefully.

    Direct owner sale

    I personally prefer direct owner sales, since I will get to really know the car’s history from the owner. Be wary though, there are many dealers masquerading as direct owners to circumvent the Lemon Law introduced in 2012. One way to tell is that they are selling on behalf of friends/family member/relatives, do not have maintenance records of the vehicle and that they also offer to help with the loan and insurance paperwork. It may be a sign that the car has some serious issue(s).

    The buyer will have to source their own insurance and loan in a typical direct owner sale, but it is not difficult these days as there are insurers and banks that offer direct applications online. The whole process may be too much cover here, and I hope to cover it in a separate article someday.

    Final words

    You’ll see that a car will cost over $1,000 a month to run in Singapore. I’m sure this will turn many potential car buyers away, but if you really need a car and you can well afford it, then do consider one as it brings significant improvement to your quality of life but do not rush into the purchase.

  • Why status fields must die

    I’m sure we have seen this happen: A programmer forgets to add a status = 1 condition/check to an SQL query and the app disintegrates.

    Status fields can be useful in some ways especially if the range of values are large, e.g. to track order status. But the most common use I’ve seen is data retention, i.e. keeping a deleted record. The status field is an ancient way of archiving a record, and this design exists in almost every application I’ve seen, because back in those days schools told us to normalize tables. Some companies even make it a mandatory design requirement to have this field in every table — even in many-to-many join tables.

    We should avoid designing tables with record deletion status fields. Why? There’s many reasons why, and the common accidental omission of the status check is one of those reasons. There are also different data types being used, sometimes highly inefficient for indexing — for example INT, a 32-bit signed integer is very commonly used for storing values 0 and 1. The ambiguity is also a common problem: What does 0, 1 and 2 stand for? Where are these defined? In constants, or cross-referenced to another table? The status check is also an additional condition that the database needs index/filter. What’s worse is that sometimes the check is done at the model layer, while other times the check is done at the controller layer… or maybe both… or maybe none.

    So what’s a better way of dealing with record archival? If there’s really no reason to keep the record, delete it.

    If the record should be kept for some reason, archive it into another table, a technique known as partitioning. It would also be more efficient to search a table containing only records you need to query.

    Partitioning also allows you to tier by storage performance, e.g. place “live” tables on high performance storage, and “archive” tables on slower storage devices. You can also tweak indexing to cater to different search patterns on both sets of data.

    Archiving data is very easy, and is not much more complicated than a delete: If the two tables are identical (in column definition), simply use INSERT INTO … SELECT, then DELETE.

    If you are worried about deletes being I/O intensive, then consider batching the deletes or having a cache. This will depend on how your application is designed.

    (Side note: MySQL 5.1 has a new partition feature that can be used to automagically partition tables, but that is more for performance purposes. This article is discussing a design issue to remove common errors in programming.)

    Edit: Updated Oct 19. Friend asked about status fields that may have a large range of values, such as transaction statuses. These are OK to remain as fields. I was primarily targeting record archival.