Get a Dedicated, Free, High Quality Conference Line

Premium services often end up being cheaper.

This doesn’t meant that all premium services are expensive. Systems are being disrupted at such a rapid pace you can often find incredible services – like a free virtual fax machine – completely free.

One of these services is UberConference. Even if you run a one man shop (like I do!) you should signup for UberConference and use it exclusively for calls.

Here’s why:

Hangouts is not reliable for phone calls. They have a great dial out feature, but I’ve been on a couple calls where the call connection kept dropping out. It was embarrassing and made me lool sloppy. Calling someone’s cell, or having them call you, often creates a coordination problem. What if you or they are a couple minutes late? You then have to call again, text them, email, etc to adjust coordination. Using a conference line eliminates this problem completely.

I’ve also found that a call is often more effective than trying to use a video conference, especially if it’s a one-off conversation or if it’s more of a prospecting call. Phone calls are low friction and globally compatible: everyone has a phone and can use it from anywhere. Video conferencing software still frequently fails and can make the start of a conversation awkward and jerky while you both try to get your conference software working.

Continue Reading

Why the Right Premium Services are Always Cheaper

By nature, I’m frugal. I love getting a great deal, and getting the most of out of my purchases. When I was fifteen I got a new MacBook Pro for free by working those “get a free MacBook pro” ponzi schemes online: my obsession with a great deal started early.

I’ve learned that it’s often worth paying for premium services when your time is at stake. Not only your current time, but time that a premium service could possibly save in the future.

Opportunity cost is a real thing: it’s important to consider what you can’t do or time that could be possibly spent on fixing a future problem with the service or product.

Here are a couple of failures from recent memory:

Low Cost HSAs. I have a high deductible health insurance plan coupled with a health savings account. I picked one from a big name bank, with average ratings, and the best fee structure. Wrong choice: the time spent on phone, faxes (no ability to communicate over email??), etc have incurred most cost in terms of time than I ever saved in fees. Local Banks. My local bank has a great fee structure and a convenient location nearby. However, they are lagging behind in keeping up with tech advancements. Because of their remote deposit limitations, I’ve lost lots of time driving to and from the bank. I should have signed up with Simple or BoA. Budget Home Router. Anytime I spend fiddling with router settings is time lost on better, more interesting problems. I used to attempt to save money on routers: I now buy the most expensive router I can get. Price Shopping. Amazon has great shipping, customer service, review system, etc. It isn’t always the cheapest. However, it’s not worth my time to shop around for a better price. Amazon is nearly always within 10-20% of the best price – and most of the time it is the best price out there. It’s not worth my time to price shop. Low Cost Phone Service. One dropped business call and the $10 you saved that month on your cell phone bill most likely isn’t worth the perceived sloppiness on your end.

Continue Reading

Three Financial Automation Techniques

I’m a huge fan of outsourcing and automating everything, even rarely used tools like faxing. Time is my most valuable resource: and although I’m far from perfect at this, I try to eliminate, automate, or delegate everything that isn’t essential for me to do.

Here is a snapshot of the toolkit I use to automate personal finance.

Automate All Bill Payments

Do you spend any time manually paying bills each month? YES! You can automate this and, if you are near a beach, you can write “relax” in the sand just like the above photo with all of your extra time.

All credit card payments can be automated. Login to your credit cards online portal and setup auto-pay; pay the full balance off every month. Do you need to write a check for rent or other expenses? This can be automated as well. Most banks allow you to schedule a monthly recurring checks to residential or business addresses. If your bank does not allow for this, find another that does (Bank of America or PNC is great in this regard). Does the monthly cost of the service fluctuate? Ask the provider if you can negotiate a flat monthly fee and settle up any balance differences on a quarterly, bi-yearly, or (best of all) a yearly basis. Is the provider not keen with a flat fee? Ask if you can pay a flat fee above the monthly average and then deduct any overpayment from the last payment in each quarter/year. If he’s not willing to work with you here – find another provider. It’s not worth your time to have to remember to pay that one extra bill. Your goal is complete financial automation! Need to pay friends or family for a meal or other event? Use Cash.me to sent payment when it’s needed, rather than having to remember later. No fees, easy to setup, and money is transferred directly into the recipients bank account. Some services (ex: car insurance) allow for quarterly payments, often with a discount. Leverage financial discipline to pre-pay for these expenses, saving on the total cost of the service and eliminating the need to remember to pay every month. Tracking Spending Across All Accounts

I aggregate transactions across all accounts (checking, savings, credit cards, investments, etc) into a single system. This means I never have to login to individual accounts. I only login to a single account.

There are a bunch of systems out there for this, I use Mint. Here’s how to use Mint to implement a budget:

Create a detailed budget in a google sheet. Recreate the budget in your google sheet in Mint. You will need to consolidate certain budget categories into a larger budget item to reduce the transaction categorization time in mint. For instance, you might have a “health insurance” and “gym” budget in your google sheet. I would recommend managing that as a single budget item in Mint “Health”. I find it’s easier to have fewer categories, Mint does better at auto-categorizing transactions with fewer categories. Check how you are doing against your budget on a weekly, bi-weekly, or even monthly basis. As you start to move closer to your ideal budget, you can check your Mint account less – further freeing up more time and clearing your mind of the mental clutter of worrying about making sure finances are taken care of.

A side benefit here is it makes it possibly to easily scale the number of accounts you have without it becoming more time consuming or complicated to manage. This is very useful if you are looking to churn cards to make thousands per year.

Automated Savings & Investing

Constraints create results.

Remember when you were under a hard deadline? You completed the project.

If there is one concept from Rich Dad, Poor Dad that is worth remembering, it’s pay yourself first: contribute to retirement and savings, and figure out how to make the rest of your monthly expenses fit into what is left over.

Automating your savings and investment contributions at the beginning of your pay period eliminates the possibility that you’ll spend money earmarked for investment and savings. Here’s how to set it up:

Open a Betterment account. It will withdraw your investment contribution on a weekly basis. A weekly contribution will enable you to view your retirement contribution in the weekly financial email report that Mint sends. Betterment is a great service – software based automated investing. Set your risk tolerance, and Betterment will automatically rebalance your portfolio and harvest any tax benefits from selling losses. It’s not a “perfect” portfolio, but it’s automated, a bit better than a standard Vanguard account, and gets you 80% of the results with very little effort. Open a high yield savings account. Although rates are still very low, they yield 5-10x the standard savings account and as interest rates rise the delta between a online-only high-interest savings account will only increase. Plus, online-only savings accounts have more advanced automatic contribution functionality compared to traditional banks.

Obviously, I am not offering professional advice. Don’t trust anything that is written here. This just is a summary of what I’ve learned and what has worked for me last couple years.

Continue Reading

How to Find the NetSuite Web Services Account Number

Finding the account number for NetSuite’s SuiteTalk WebService API isn’t very straightforward. This number is required for any applications with connect to NetSuite via their SuiteTalk API.

Navigate to the SuiteTalk preferences via “Setup > Integration > Web Services Preferences”, by searching for “page: Web Services Preferences” in the global search bar, or by visiting this URL (may not work depending on your NetSuite data center). You’ll see the following screen containing the Account Number (also called the Account ID):

Some things to keep in mind:

The account number is not always a number. It can be a string of letters. A sandbox and production account number is identical The “Disable Service SuiteScript and Workflow Triggers” checkbox can have massive effects on your SuiteTalk integration. SuiteScripts and Workflows can trigger fatal errors in your SuiteTalk calls which are impossible to debug without diving into the SuiteScripts embedded within a NetSuite instance.

Continue Reading

Resolving the NetSuite LIST_ID_REQD Deposit Record Error

Creating deposit records in NetSuite using the SuiteTalk API can sometimes result in the following error:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2015_1.platform.webservices.netsuite.com"> <platformMsgs:nsId>REDACTED</platformMsgs:nsId> </platformMsgs:documentInfo> </soapenv:Header> <soapenv:Body> <upsertResponse xmlns="urn:messages_2015_1.platform.webservices.netsuite.com"> <writeResponse> <platformCore:status xmlns:platformCore="urn:core_2015_1.platform.webservices.netsuite.com" isSuccess="false"> <platformCore:statusDetail type="ERROR"> <platformCore:code>LIST_ID_REQD</platformCore:code> <platformCore:message>Required field missing in a related list. You must set lineId.</platformCore:message> </platformCore:statusDetail> </platformCore:status> <baseRef xmlns:platformCore="urn:core_2015_1.platform.webservices.netsuite.com" externalId="external_id" type="deposit" xsi:type="platformCore:RecordRef"/> </writeResponse> </upsertResponse> </soapenv:Body> </soapenv:Envelope>

This error is not well documented at all and does not point to a single issue. In order to properly handle and prevent this error from occurring you need to implementation validation before upserting (or adding, updating, etc) the record.

Here are the various causes of the error:

The included refund’s (CashRefund, CustomerRefund) account field is not set to the NetSuite instance’s “Undeposited Funds” account. The easiest way to determine what the “Undeposited Funds” account internalId is to search for the account by name and grab the first search result. The name of the “Undeposited funds account can be customized. If this is the case, you need to hard code the internalId in your app’s config. The payment (CustomerPayment, CashPayment, CustomerDeposit) is already deposited. You can test this through the status field on these record. The status field will have a value of Deposited or Not Deposited. The payment sublist filters in the deposit sublist are causing the given payment record to be unavailable for the deposit. For example, if your GUI payment sublist date filters are configured to only show payments for the current day, and your deposit request using SuiteTalk includes a record created yesterday. In this case, the GUI settings (which cannot be modified or inspecting by SuiteTalk) are causing a fatal error in SuiteTalk. Instructions on how to resolve this error are detailed below. The subsidiary or bank account restrictions are causing your included payment to be unavailable. The best way to see if this is the case is to attempt to mimic the SuiteTalk request in the GUI. Clearing the Deposit Payment Sublist Filters

Here’s how you clear the deposit payment sublist date filters.

Go to the new deposit record page: https://system.netsuite.com/app/accounting/transactions/deposit.nl. Note that this URL can be different depending on your data center URL. Choose “All” on the date filter drop down. The From/To filters should disappear. Press cancel Go to the new deposit page again and ensure that the changes “stuck” Logout Wait 8-24 hours for the NetSuite user cache to invalidate. This is an internal cache that you cannot monitor.

In addition to clearing the date filter, click the customize button and ensure that no additional filters have been added to the payment sublist filters. You are aiming for a completely stock configuration.

Continue Reading

How to Close a NetSuite SalesOrder Using SuiteTalk

Many things in NetSuite’s SuiteTalk XML API are not intuitive or obvious: closing a SalesOrder is one of them.

When you create a SalesOrder using upsert or add you can set the order_status to _pendingFulfillment or _pendingApproval directly through the order_status field. However, you can’t simply update the order_status field on a SalesOrder to close the record, you need to set is_closed field on each line item in the SalesOrder.

ns_order.item_list.items do |item| item.is_closed = true end ns_order.update({ item_list: ns_order.item_list })

Other SalesOrder states work in a similar way: _partiallyFulfilled, _fulfilled, etc are only achieved by modified the item_list sublist or by creating a separate record (ItemFulfillment, Invoice, etc).

Continue Reading

How to Save Hundreds on Your Next MacBook Purchase

When it comes to something which requires a lot of my time on a day-to-day or week-to-week basis, I purchase the best tools for the job.

I’m a designer & software engineer: my computer is the most important tool in my craft and I make sure I have the best. However, the best doesn’t mean the most expensive: to me, it means the most utility for the dollar.

I’ve always bought every mac I’ve owned used. A couple of people have asked me recently how to find the best price on a replacement MacBook. Here is the process I’ve used to save hundreds of dollars when I’m getting a new computer.

Determine what you need. Most likely, unless you work in tech, 11″ or 13″ MacBook Air will work just fine. Hard drive space is not important. You can easily buy a huge amount of external storage for under $50 for music, movies, and videos. You can always leverage unlimited photo storage via Amazon Prime, or cheap cloud storage via Google Drive to expand your storage capacity without buying an external hard drive. Processing speed isn’t as important as RAM. If you have the choice between 4GB and 8GB of RAM, and a 2.0 or 2.2GHZ processor, get more RAM. Determine the maximum price for the model you need using the AppleInsider price guide. For instance, a brand new 11″ MacBook Air is $800. This will be the price you are going to negotiate and make decisions against – it’s your “worst case scenario” price. Search craigslist for a MacBook that is less than a year old. Every MacBook comes with a year warranty that is applicable to the current owner of the device. If you buy a used MacBook that is less than a year old and it breaks the next day, it’s covered under warranty. This mitigates the risk of buying a used machine. Craigslist is the best marketplace for finding a great deal. There are no transaction fees, there are less buyers (local vs the entire internet), and people are willing to negotiate. This logic applies for any high-priced item. Determine your minimum price. This is the lowest price you can get for the device on craigslist, minus 10-20% depending on how much you want to negotiate and how long you are willing to wait. If the lowest price you can find on craigslist is close to the sale price on AppleInsider, you may just want to buy the machine new. For lower cost machines (like the MacBook air) the amount saved is often not worth the hassle. Email every listing your found on craigslist with an identical email offering your minimum price. Increase your minimum amount if no one accepts your minimum offer.

Continue Reading

Interrogate Your Reactions, Change Your Perspective

It’s easy to be negative, to feel busy, to perceive the current situation as mundane. Part of the reason that people that are consistently positive are often so enlivening is because it’s hard to be positive over the long term. It’s refreshing to meet those who are able to remain positive and magnanimous.

My internal response to situations and tasks that arise can often expose thinking that needs to change. My reaction to when a client doesn’t understand a concept “yet again”, or when I feel like I just have to “deal with” a flaw in a friendship work relationship is a key indicator of where and what I need to change.

I’ve been attempting to interpret those reactions through a lens that forces me to act intentionally in situations rather than run off a knee jerk reaction. I believe strongly that altering my perspective and response to situations can have enormous effects in all aspects of my life. Here’s an example of how I’m challenging myself:

Looking at a frustrating situation as a challenge in how to navigate it with ease and effectiveness Looking at an extensive task list as an opportunity to sharpen skills and achieve a goal Approaching every challenge as an opportunity for character growth Viewing character growth as an adventure in learning Approaching any coaching, or repeated conversations as an opportunity in learning to speak & teach Looking at life as an adventure full of opportunity rather than a list of tasks, requirements, and frustrations.

Continue Reading

How to Transfer a Car Title in Pennsylvania

I recently purchased a new car and needed to transfer the title from the previous owner.

For anyone else who hates digging through state and government websites or wasting time on the phone trying to determine the correct process, here is the cliff notes of how to transfer ownership of a car in Pennsylvania:

How it works:

You and the current owner of the car need to go to a tag/title notary service. Interestingly enough, you can transfer title without getting new license plates if the transfer is mother/son or father/son, but not between siblings. You must pay state & local sales tax based on the recorded sale price for the vehicle They will take the current title, give you a temporary title, and mail you a new title for the vehicle Most notary services are old-school. They accept check and cash, but not debit or credit cards.

Information you’ll need:

Current title Proof of insurance Odometer reading License

Cost:

$50 title transfer fee $36 yearly registration fee 6% of recorded sale price ~$40 service fee to the notary

Continue Reading

Call Your Old Friends: Four Reasons Why It’s Worth It

I’m horrible at keeping in touch with people who aren’t in my immediate daily life. If someone isn’t involved in my work or my local social circle, I generally won’t remember to give them a call. It’s easy for the busyness of life to eat away at the time available to keep in touch with old friends.

Old friendships are worth fighting for. Yes, it’s impossible to maintain all your old friendships, but it is possible to cultivate a intentional few.

For me, although the time is definitely a limiting factor, the real blocker is the fear of loss. To be frank, for me, time is just an excuse. It’s these questions and thoughts that create the real resistance:

What if the conversation isn’t as good as I remember it? We haven’t talked in a while, what if it’s awkward? What if they aren’t interesting in keeping in touch? I don’t feel like putting out to make this work, it’s easier just to give up.

This year I’m working on reconnecting with old relationships, even if it’s just for 15 minutes during a drive. Here’s what is motivating me:

They give you a fresh perspective. The majority of my old friends have spread out across the country, working in various industries, developing different hobbies, involved in different communities. They bring a unique perspective and help to interrogate your own thinking. They know you better than most, and can offer great advice. Old friends have a vantage point that is impossible to reconstruct with new relationships. They can offer advice that can cut through your bad thinking and enable you to make better decisions, faster. Networks create opportunity. The most successful people I know spend a large portion of their time just corresponding with people. The most valuable professionals are those who have a network they can tap into to get the job done. Keeping in touch with old friends keeps you connected to their networks in some capacity. It’s fun. My old buddies are some of the best people I know. I’d be a fool not to continue to share life when them, even if it’s just over a phone call.

Continue Reading