What are SPF records and why do they help with email deliverability?

SPF record is an abbreviation for Sender Policy Framework record.  The SPF is a type of DNS record.  It is how you control who (what servers) is authorized to send email on behalf of your domain name.

Email is such a simple protocol that anyone can send email pretending to be from anyone – spoofing.  However, because this loophole was immediately adopted by criminals for nefarious purposes, email service providers began to automatically reject  unidentified emails.  In practice, this means a hard bounce, a soft bounce, or going into the spam folder.

Whether you’re sending email from Google Mail, Outlook, Mailchimp, Amazon Simple Email Service, or another solution entirely, having SPF records in place will improve your email delivery.

Here’s how we add SPF records for a domain:

  1. Search your email provider’s help page for the term “SPF”.  For example, here is Google’s page if you’re using hosted Google Mail
  2. Your email provider will advise you a TXT record to add to your DNS in order to authorize them to send email on behalf of your domain.  For example, “v=spf1 include:_spf.google.com ~all” is the SPF record to authorize Google.  For MailChimp, it’s “v=spf1 include:servers.mcsv.net ?all“.

    Note: If you’re using Google for Mail and then MailChimp for Marketing, you can combine the two into a single SPF record: “v=spf1 include:_spf.google.com include:servers.mcsv.net ~all”

  3. Go to your DNS provider and add the TXT record.  We recommend CloudFlare for DNS, because they provide a slew of benefits, such as https/SSL and even their Free plan is really powerful.

That’s it!  It may take a few minutes for your email service provider to confirm the SPF record but in a worst case scenario, it could take a whole day, so we recommend being proactive with setting up SPF records.

What is and isn’t possible with ARKit (Augmented Reality) currently?

Recently a prospect came to us and asked if we could build an app that would let users preview trying on engagement or wedding rings.

Unfortunately, this isn’t currently inexpensive due to the software limitations of ARKit.

The prospect, still bullish on Augmented Reality, asked us to look into creating an app to simulate wallpapers and drapery on walls.

Unfortunately, this isn’t easy yet either.  Code For Cash coder Serge “buildcode” Boinn looked into this and found this (technical explanation to follow).

“Vertical plane detection” is the technical concept here.  This has not been added to iOS (iPhone) yet, but conversations with an Apple engineer suggest that it is coming soon.  Connect with us on social media to get updates on what is possible using the cutting edge of software technology.

Our coder did add that this may be currently possible, using clever techniques with existing iOS methods, but certainly wouldn’t be cheap – not like the $300 furniture demo that we built.

“SDKs save tons of development time, but there are typically other approaches that involve a ton more work. For rings, for example, there was a video I posted that demonstrated trying on a ring while using a marker on a finger. There might be other ways… Just not a good fit for something quick.”

So: anything is possible!  But somethings may be more affordable and accessible and less risky than others.  Then again, in software development: if there’s no risk, there’s no point (i.e., no risk? no value… no reward).

A year of Code For Cash (Month 12 report)

It’s a year ago that I launched Code For Cash, the freelance programming jobs market.  Those of you who have been following my journey since day 1 know that before we were even “Upwork for programming”, we were just an ebook… originally titled “Code For Cash”, now titled “Software Engineer’s Guide to Freelance Consulting”, and available on Amazon here.

Recap of the book launch:

  • I wrote an outline before I did anything else
  • My next step was building a landing page, unbouncepages.com/become-a-freelance-software-consultant/
  • Then I made an ad campaign targeted to Reddit and Facebook and found that I could acquire signups for $3.50 (reddit) and $7.50 (Facebook).  
  • Once I had 20 signups, I felt confidence there was enough interest in the book.  I spent nearly a month powering through the outline in order to just get the book done, and then I brought in my friend Jay El-Kaake as a coauthor to get us over the line.  

 

In order to promote the book, I relied heavily on Amazon Marketing Services.  I tested over 39 different types of campaigns, but ultimately a search-keywords campaign performed best.

Amazon_Marketing_Services__AMS__-_Campaign.png

Amazon takes 30% of my revenues.  Since the campaign is 27% ACoS, it’s immediately profitable.

Amazon_Marketing_Services__AMS__-_Campaign

Something strategic I did was to lower the Kindle price from $9.99 to $2.99.  This had a few effects:

  • People on Amazon are extremely price sensitive, especially to first time authors.  Lowering the price had an immediate effect on sales, and it turns out that this effect has been sustainable.  Even accounting for the reduced revenue per sale, since we sell more copies, our total revenue volume in greater (in math class they called it “area under the curve”)
  • With the price lower, we move more volumes; through moving more volumes, we get more reviews.  Through more reviews, we get more social proof.  This in turn leads to more sales.  It’s a virtuous cycle.
  • Finally, since we didn’t decrease the price for the paperback, the low Kindle price benefits from an anchoring effect– a phenomenon in psychological pricing literature where having something really expensive makes everything else look super affordable by comparison.   

 

The other impactful thing that I did to promote the book was make a list of programming podcasts and send the creators a mass email, super charming of course, where I invited myself onto the show.  This had a good hit rate, and I did about 10 podcasts this year. The Software Engineering radio podcast expects 60,000 to 200,000 listens over the lifetime, so this exposure was extremely impactful.  Of course, podcast appearances are not good for everyone.  But my voice sounds really good on recordings.  If I were more telegenic I would probably have played to my strengths and done more video, but it’s really not for me.

Ok, so some stats:

  • Amazon Kindle – Sold 2,640 copies this year.
  • Draft2Digital (They distribute to iBooks, BN.com, Nook, Scribd, etc. in exchange for 15% of royalties) – 43 copies in total
  • Direct – 130 copies

Although the book net proceeds totaled less than $10,000, it’s by far the most fun project I worked on.  I loved checking the rankings and seeing where we were – we’ve been in and out of the Top 10 (Programming category) on Amazon all year, which has been fun.  

I created a Slack channel for people who read the book and it started growing.  I realized that there was probably an opportunity to sell additional services to this community, so I hacked together some scripts (scrapers) and started selling monthly subscriptions to reports of freelance programming jobs that we found around the Internet.  This attracted some sales,  especially from people who were already thinking of building their own collection of RSS parsers cobbled together with duct tape, but who wanted a more professional and polished version.  

Note: today, there are more than 500 people in our Slack channel.

Slack_-_Code_For_Cash_and_OutKast_-_A_Life_In_The_of_Benjamin_Andre__Incomplete_

However, time revealed that there were a few issues with this business model:

 

  • Data quality – even after hiring human workers to add meta data to the jobs, let’s face it, data labeling is a tedious task, and it’s hard to balance finding people who will do a good job while still being affordable enough.  We do a bit of a geo arbitrage by having our data labelers be programmers from Mexico and Africa, so that brings the costs down, but there’s still the accuracy issue.
  • Lead quality – realized that the best way to control this was bringing the jobs onto our own platform.  And so, I created uTask… the Upwork for Programming.  If you go to www.utask.org you can post a freelance programming job, and then coders from around the world will bid on the opportunity, with full transparency for everyone.

 

Marketing Funnels

Let’s look at the economics and stats of the uTask business over the past 30 days.

 

Visits to homepage: 3,221
Task poster signups: 121  (3.75%)
Tasks posted: 42 (34.7%)
GMV (freelance coding sales from binding agreements signed on the platform): $3760

 

NOTE, if you look at our economics from the previous 30 days, it’s much improved.  

 

Visits: 3418
Signups: 101 (2.95%)
Gigs posted: 9 (8.91%)
GMV: $645

 

Why the huge improvement?  I have to say it’s because of all the usability testing sessions.  I did at least 10 usability testing sessions this month where I had people use the site and made notes about where they had issues.  If you want to learn how to do a usability sessions, read my article here.  Through systematically documenting and addressing the issues, we boosted funnel throughput (conversion rate) … tremendously.

 

In fact, I still have a backlog of issues to address, for the product roadmap.  But once those are shipped, it’s time to recruit more usability study participants, since this seems like a devastatingly effective tack for us.

 

NOTE:  Usability sessions are how I also boosted the conversion rate on codefor.cash/signup which is the developer side of the freelance programming jobs marketplace.  

 

This past 30 days:

1322 visits to codefor.cash/signup
227 signups (17% conversion rate)

Compare to May..

3954 visits to codefor.cash/signup
65 signups (1.64% conversion rate)

Obviously a huge improvement, and it’s completely attributable to *listening* to user feedback and making changes.

So let’s look at the economics of the biz.  

A visit to the uTask page is worth $1.16 in GMV (GMV for period / total visits for period).  We only capture 1/3rd of the GMV revenue (from non-subscribers)… subscribers pay a 0% commission to us.  So in essence, we can expect about 38¢ in commissions from a visit.  Traffic in our niche costs around 50¢ to 85¢ per visit, so although with Lifetime Value (repeat orders) we might be able to drive traffic profitably with good ROI, I would like to to tighten the funnel and fix some outstanding issues with the website before we pour gasoline on the fire.

 

Misc notes

  • Including my consulting business and book sales, Code For Cash grossed around $190,000 this year in total

  • I have to confess something.  In my usability studies, I started to lie.  I began saying: “I actually didn’t build the site myself, so feel free to give me honest feedback – I’m here as a buffer between you and the development team” and people started giving me actually honest feedback.  Well, I don’t know if it’s a lie.. Technically, I didn’t build the site myself.  It’s a product of a team effort.

Takeaways

  • If you’re a coder, sign up for Code For Cash at https://codefor.cash/signup – you get a 2 week free trial of the freelance programming job alerts, but apply to a job that’s exclusive to our platform(uTask) is always free (with a 30% commission if you get the job).   If you subscribe, the commission goes to $0.

  • If you need to hire a coder, post your task at uTask, https://utask.org

  • One of my favorite things developed on the uTask platform already is this ARKit (Augmented Reality) demo for a furniture store.  https://vimeo.com/244943019   this cost the person who posted the task $300 .. $50 for one coder to convert a furniture picture into a 3d model, and then $250 for an iOS expert to wire it up to ARKit.

 

Let’s have a great year.  See everyone for next month’s report.  

 

How I conduct a usability testing study

One of the easiest ways to improve conversion rate is to do usability testing sessions.  Here’s the format.

 

  1. Post an ad on craigslist, in the Computer Gigs section.  Here is some example text you can use:

    Need_entrepreneurs_for_website_usability_study_-_computer_gigs.png

  2. Use a tool like http://www.calendly.com to schedule participants.
  3. When people arrive, greet them.  Tell them “We’re going to be doing a usability study today to discover issues with our website.  I’m going to show you our website and then I’m going to ask you to do a few tasks.  Don’t worry if it’s difficult – we’re testing the website, not you.  In fact, this is probably the one place today where you don’t have to worry about making any mistakes.”
  4. Warm people up by asking them about their background.  What do they do for work.  Where do they spend time on the Internet.  These are easy questions to warm them up and get them talking.
  5. Open your website in an incognito browser tab.  Ask them: “What is this site?  What can you do here?  Who and what is it for?”  If people have questions, tell them politely that you can’t share any information, because you’re interested in their raw responses.   Ask them to narrate their inner monologue as they browse the site…
  6. Then, have people do the most important key actions to your user experience.  For example: creating an account.  Posting a task.  etc….
  7. Once they’re done, thank them and pay them.

 

It’s that simple.  You should write down their feedback and problem areas as you go.  By the end of each session you should have a few pages of notes.  If you consistently changes to address your challenges, your user experience will gradually improve and your conversion rates will climb.

Code For Cash – Month 10 revenue report

Last month, things were bad at our little company that matches programmers to freelance software jobs.  

 

Revenue was down.  

 

“If you’re not growing, you’re dying.”  

 

We were dying.

 

Last month, I threw down some modest goals, and said that if I achieved them, I would consider the next month a success.  

 

I didn’t want to reach too big – I wanted to keep things doable.  Sometimes, you really need a win, even if it’s a small one.

 

My goals:

    • Add 12 new markets to our regular search.

      Done!  adzuna, beincrypto, betalist, careerbuilder, careerjet, cybercoders, goremote, indeed, jobisjob, randstad, reed, rubyjobs.co.uk, simplyhired.   

      We’re now up to 45 software development markets total that we automatically monitor for our customers.

      2015-07-15-Moat.jpg
      Get it?  We’re gradually building a moat. The big picture value here is that although Code For Cash is a tool that a lot of programmers have already built for themselves, for example using a mashup of RSS feeds and some personal scripting, we’re making the product better and better so that “buy” clearly outweighs “build” in a “build or buy” analysis.  

    • Ship a better job matching engine.

      Done!
      https://gist.github.com/zackster/24f04d1e18754694cd13457f81db7f2b

      The next cool thing to do will be to expose our intelligence through our product… for example, if you type “vue.js” as a keyword, we’ll let you know that we’re also searching javascript/java script/js/vue.

    • Be able to click a button and initiate intelligent outreach to a job lead.

      We now have a system where you can write blurbs about your experience using a given technology, dynamically generate cover letters, tweak them as necessary, and send to job postings.

 

We achieved those goals.  Sometimes setting modest and achievable goals can be a growth hack that propels me into greater productivity.  The wins compound into momentum.


So, how did that momentum manifest?

We totally changed up the funnel: the two week free trial no longer requires a credit card – users may sign up with an email and nothing less.

 

This had a huge effect on conversions – 

 

Previously, we required paying upfront (no free trial).  The page converted at 0.1%.

 

Then, we asked for a credit card up front, but promised not to charge unless they canceled before two weeks.  That boosted conversion rate to 0.2%.  

 

But now, having a no credit card required, 100% free two week trial has boosted our funnel an additional 50%– conversion on the page, from unique visit to paying customer, is now at 0.30%!  

 

(We also cleaned up the design on the landing page, which may have had some impact).

 

If you’re curious at checking out how I measure my funnel, I do it in Excel.  Measuring how prospects progress through the stages helps me get an intuitive feel of what’s going on.

 

https://docs.google.com/spreadsheets/d/1hx6LNfJ6PKT4Qh7iJsBNKsBR09DFP43XdnYU4BpXe6c/edit?usp=sharing

 

Anyway, insofar as revenue goes, things are moving in the right direction.  Slowly.

 

Revenue for month 10


Recurring revenue: $3,400.00

Total Revenue, including consulting revenue: $10,580

Compared to last month (Total revenue: $9,705.43; Recurring revenue: $2,919.0), we see 16% M/M growth in MRR, okay!

Online_Chart_Maker___amCharts

If you’re interested in how I make the non-recurring revenue, it’s through consulting.  If you know how to program on your own without supervision, you’re capable of doing that too.  Jay El-Kaake, Richard Burt and I coauthored Software Engineer’s Guide to Freelance Consulting.  We sold about 337 copies this month.

 

I may never have a #1 rap album, but Software Engineer’s Guide to Freelance Consulting is currently #11 in Kindle Store > Kindle eBooks > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development.

 

Anyway, for me, this 16% jump in MRR begs the question, is this MRR growth sustainable and repeatable?  If we were to grow next month at this rate, at the end of next month we’d have $3944 or an extra $540 in revenue.   That would require signing up an additional 12 paying subscribers..on average of one every other day.  Two days from now, it should be clear whether we’re on track or not.

 

Taking a look at the marketing funnel spreadsheet (https://docs.google.com/spreadsheets/d/1hx6LNfJ6PKT4Qh7iJsBNKsBR09DFP43XdnYU4BpXe6c/edit?usp=sharing), you’ll see that 0.3% of visits end up converting.  So in order to attract 12 subscribers, I would need 12/0.003 = 4,000 unique visits to the landing page.  Honestly this is completely unlikely; 2000 organic visits in a month is typical.  With this, my expectation would be 8% monthly growth…

In the marketing funnel, I have a whole list of improvement ideas for various parts of the funnel, but I’d also love to hear your impressions or ideas.  The cool thing is that there are clear ideas for improving conversion rates at each segment in the funnel, and it’s really intuitive how to do that – the only challenge with this approach is that we could potentially end up at a local maxima, but I’m trying to force myself to believe that because I’m exhausted from the endless grind of finding and removing bottlenecks.  We need to continue moving forward.

Improving the business engine

 

One of our biggest expenses is data labeling.  If I wanted to sell Code For Cash (or shares in it), I would have to think realistically about valuation – Code For Cash is not a “hot” company at present and would not enjoy a 100X MRR valuation.  Instead, 36 times monthly profit is more likely, given its size and growth rate.  

According to this interview with FE international, small SaaS companies (under $80K MRR) sell for 3 to 6 times Seller Discretionary Income.  So Code For Cash would conservatively be worth 36 * monthly discretionary income.

So, 3400*36 = $122,000 … but that assumes we take home 100% of revenue each month.

We don’t take home 100% of revenue.  

The biggest non-essential cost is data labeling, probably $2000 per month.  That leaves us at $2200.  And $130/month for Heroku, $60/month for AWS, $80/month for DigitalOcean, we’re down to $1930.  Then a few marketing services and other SaaS products brings us down to about $1800 (which I’m currently investing into improving the platform, so I don’t actually see that money, but for the purposes of our analysis, it might as well be there).  

So $1800 * 36 = $64,800

But what if we could use machine learning to decrease data labeling costs to $1000?

$2800 * 36 = $100,800

Gotta love technology!

So, my initial approach to this involved finding a SaaS text classification solution.  I investigated various options: Aylien, MonkeyLearn.  Unfortunately, neither met our needs in effectively reducing our labeling costs.  But I did find a solution from Facebook called fastText (https://github.com/facebookresearch/fastText) with a simple API and an easy getting started guide.

So I decided to go through the Code For Cash data, prepare it for fastText, and then bundle it up as a serverless AWS Lambda program

The business value question is how many tasks per month will this reduce?  Well, we still have some measurement to do in so far as accuracy before we fully deploy a machine learning solution to production.  Going to start from scratch, re-train the model on the first 80% of the data set, and test on the last 20%..  So check in next month for an update on that.

Financing growth

I’ve been taking a class called Venture Deals – https://www.kauffmanfellows.org/online-course-venture-deals/

It’s been helpful.  Our first assignment involved finding VCs to pitch, and I started thinking about that it in a totally new way.  I made a list of VCs that have funded NYC-based developer tools SaaS companies in seed stage deals.  Extremely specific targeting.  I’m working my network in order to get introduced to these targets.  

In the process of raising money, I put together this presentation – https://docs.google.com/presentation/d/1v_foBnUA-9lNjsh44WHORpojMUYhbXOuJ1fl8Q2nN40/edit?usp=sharing – it’s a work in progress.  It would probably be much improved through a round of iteration from our designer.  And telling a more compelling narrative about how we will capture a valuable market…  feedback definitely welcome.

$250,000 would be a good amount to raise.  Why $250,000?  It’s really arbitrary.  I picked an amount that we could deploy safely, using proven channels, that would definitely improve our business.

Marketing:

$200/month Instagram

$1600/month Blog/Articles

$2000/month Ads

Total: $3800/month

Engineering:

$2000/month Design

$2000/month Job leads improvements

$2000/month Platform improvements

Total: $6000/month

Operations:

$3000/month

Total: $12,800 – so $250,000 would provide us with about 18 months of runway.  


Of course, I have to also assume that VCs aren’t just playing mind games with me through their total failure to level with me, and they actually aren’t interested in funding us – in fairness, the company is “rationally” worth what, $64,000 at this point?  And hope is not a strategy – so therefore need a backup plan.

One tractable approach involves a company called Lighter Capital that offers revenue-based funding.  They will fund you up to ⅓ of your ARR (annually recurring revenue).  And more importantly, they work with business entities rather than requiring you to personally guarantee the loan.  However, they don’t work with companies doing less than $15,000 monthly.  So, I would need a plan to bridge up to $15,000 – how could I do that in the least expensive way possible?

We need about $11,600 in additional MRR, about 260 new developer subscriptions.  While we could potentially sprint there through marketing spend (limiting ourselves at 41¢ CPC, ⅓ of projected LTV), I feel like to do so would be unwise.  At this time, there are clear improvements that could be made to the marketing/onboarding/activation funnel:

(This is a transparent look into how I manage my tasks.  The time estimates factor in the high switching cost to wearing multiple hats and also help me decide where would be best for me to delegate.  Every time I review, I decide: “do it now”, “delegate”, “don’t do this”, “do it later”).

 

ONBOARDING

4h Bugfix CV edge cases – .doc files and .pdf documents
2h Strip non-essential fields from onboarding flow (is this essential to this person finding work?)
2h Cache Prospect data to prepopulate keywords in new User Profiles.
1h Can we skip onboarding entirely if they have prospect keywords array? Think about this.

DESIGN

0.5h Ask designer to redesign Prospect (job leads count widget) experience
4h Speedup prospect search through Algolia implementation:
– Script to remove records from indexes if created_at > 1.month.ago
– Algolia block in ActiveRecord model for GigOpportunityMetum
– Frontend (SalesController) calls out to Algolia instead of iterating through
16h Design onboarding tour

User should move directly from onboarding into tour

“Here’s our Slack channel.  90% of freelance jobs travel through relationships and word of mouth.  Chatting in Slack is actually professional networking.  And, lots of gigs trade in Slack.”

“Here are internal requisitions: companies that have came to Code For Cash and asked to hire a freelance designer.  We’re still building this system, so if you have questions, feel free to ask.”

“Here are gigs for you that we found for you on the ‘net.  You can use Code For Cash to apply to them with smart templates”. -> TOUR for this

“Click “apply via CFC”

“Annotate your keywords so you can pre-populate these outreach emails”

“Send your message”

8h Improve job system UI/UX – new design is ready.  Currently waiting on CSS changes. Preview:


 

EMAIL

6h Join us in Slack reminder email (“90% of freelance jobs still trade through word-of-mouth networking”) to people who haven’t.
5 days after signup, -> email scheduled after account created
Send actual email if user hasn’t set Slack id.
2h Job system education email to people who haven’t used -> encourage users to make annotations of above-market ability
3 days after signup, -> annotation tour email
unless GigOpportunities.any?(ignored || applied)

OPERATIONS

16h Add 15 additional crawlers to find more jobs
20h Use machine learning models to reduce human task labeling costs.  If the machine learning models for time commitment, onsite/remote, or employment type are 95%+ confident, label immediately.  If data from all 3, skip human labeling.
4h Add “Email me about new gig opportunities: Never, Instantly, Daily Batch”
Email should contain deep link to Apply via CFC
1h Add Confirmation popup to Cancel subscription link.

MARKETING

24h More entrepreneur/manager marketing to source more original gigs

– SEO links:

Early-stage VC firms
Angel investors
Incubators
Hedge funds
1h Screenshot of microtask action (Slack channel) on homepage, superimposed in laptop
12h Introduce “Concierge” level service
– Account Settings page should toggle between:
Level of service (with explanation of different benefits)
Redesign signup page

MISC

*Remove “Preview” from cfc_outreach view*
Add hover notice to keywords to show off our intelligence (e.g. User types “rails” -> We say “we’re also searching ruby and ror”)

 

Anyway, once all of this is executed (and that’s my plan of what to get done this month!), then it could be time to revisit investing personal capital in buying traffic.  Or, perhaps, Venture Capital.

For now, we don’t need it.

This todo list is emblematic of a long term vision of Code For Cash.  In a perfect world, I could copy/paste it into our service.  Suddenly, I would receive competitive bids for each feature change.  And a developer could hop on, do the work, and get paid in cash.. right away.

I’d like to see that.  Would you?

 

Zack Burt

An AWS Lambda (serverless) implementation of Facebook fastText – text classification

Code For Cash finds freelance programming jobs.  One of our biggest methods is through scraping websites.  In order to match these jobs to our subscribers, we have to apply some labeling.  Currently, we have human workers doing the labeling, but in order to save money, we have to make the move to machine learning.

 

Here’s how I handled the initial migration to fastText:

 

  1. I took the labeled data from our MySQL database and dumped it into a TSV file.  

    mysql -ucfcjobs -pPASSWORD -hOURDATABASE.us-east-1.rds.amazonaws.com cfcjobs -e ‘select * from gig_opportunity_meta’ > gom_table.csv
  2. I wrote a python script to normalize the job ad text (combining title and description), making lowercase, removing punctuation and removing stopwords.  I then outputted one lead per line, prefixed with the labels I already know. 

    (Here’s the script)
    https://gist.github.com/zackster/b9e0cc87df34218ba9d92454c830945b

 

  1. I then ran fasttext to create a model

    /fasttext supervised -input normalized_gom -output model_gom -lr 1.0 -epoch 25 -wordNgrams 3 -bucket 200000 -dim 50 -loss hs

    This created a file, model_gom.bin

 

  1.  I used ec2 to create an Amazon Linux micro instance (free tier).  I then installed git (sudo yum install git), installed a c++ compiler (sudo yum groupinstall “Developer tools”), downloaded fastText and compiled it with “make”

 

  1.  I then used scp to copy the compiled fasttext binary to my local machine.  I moved the fasttext-for-Amazon Linux binary into a folder called lambda.  I also copied model_gom.bin.  

 

  1.  I then installed nltk locally to the lambda directory: pip install nltk -t /Users/zackburt/fastText/lambda  – I also ran nltk.download() to download nltk_data to a local directory.

 

  1.  I then wrote a serverless script that could ingest the job ad text and return a string with the predicted labels.  Here it is:   https://gist.github.com/zackster/649555aa3d4e6d6b046627d93490b0d6

 

  1. Then, fromwithin the Lambda directory, I ran “zip -r ~/fasttext-lambda.zip *”.  This created a zip archive in my home directory.  It’s very important that when you zip up serverless components for AWS Lambda, your zip archive’s root isn’t a folder.  I.e. when you unzip, it needs to unzip the contents into the current directory, rather than a subfolder.  Amazon doesn’t yet play nice with error messages regarding this subtle point, and failing to put your handler file in the root directory of the zip (NOT within a folder in the root directory) will result in confusion.

 

  1.  I then used s3cmd to upload the script to a S3 bucket.  

 

  1. Once the file was up in s3, I created a new Lambda function and set NLTK_DATA=./nltk_data as an environment variable in the Lambda configuration.  I also maxed out memory, since even at scale, we should be on the free tier, and a max memory config will run the function 3 times faster, even considering the fact that 350MB is the maximum memory used by the function.  Just a little tip I learned from ServerlessConf.

 

Et voilà! A text classification SaaS API, except without the need for paying for a 3rd party SaaS!

Providing real value as a middleman

Because Code For Cash is a marketplace between freelance programmers and hiring managers, we’re also a middleman.  There’s a book called The Middleman Economy that discusses a framework for roles in which middlemen provide value.

red-book2.jpg

Here are Marina’s six categories:

  1. The Bridge (reducing physical, social, or temporal distance)
  2. The Certifier (be able to discern quality)
  3. The Enforcer (make sure both parties stay honest)
  4. The Risk Bearer
  5. The Concierge (makes life easier)
  6. The Insulator (taking the heat, enabling self-promotion)

 

In this article, I examine Code For Cash’s opportunity to play each role – from the lens of the hiring manager as well as the freelance developer.  I also suggest a few ways in which we could measure our progress…

The Bridge

IMG_0800

Hiring Manager

Opportunity: Finding personnel to execute a task.

How we measure this: Average time from posting job to finding a good candidate.  

 

Developers

Opportunity: Find jobs for developer.

How we measure this: Average number of opportunities for developer after 2 weeks (increase).  Average number of opportunities per user per month that were declined due to poor match quality (Low-value, not a skill match, miscategorized, bad cultural fit, other) (decrease).

 

Certifier

IMG_0801

Hiring Manager

Opportunity: Conducting reference checks, coding tests, interviews, checking work samples, managing a vouching and reputation system.

How we measure this: What percent of potential projects succeed or fail, but not because of personnel issue?

 

Developer

Opportunity: Check into reputation of client and verifying that client has funds to pay.  Check client’s history with freelancers..

How we measure this:  What percent of projects that start end up with complaint?  What percent of projects result in repeat transactions between developer and manager?

 

Enforcer

IMG_0802

Hiring Manager + Developer

Opportunity: Publishing a Software Grievances forum where developers and managers may post and respond to grievances.  Indicate whether the parties chose to forgo best practices: specification with data inflows and acceptance tests (projects > $2000), reference checks, keeping funds in escrow, independent verification of functionality.  Indicate how the parties were introduced (enable posts external to Code For Cash).

How we measure this: How many views do Grievances posts get?   

 

Developer

Opportunity: Provide an escrow service.

How we measure this:  How much $ flows through escrow monthly?

 

Manager

Opportunity: Provide an escrow service.  Provide an independent verification of functionality service.

How we measure this:  How much $ flows through escrow monthly?  How many projects choose to purchase independent verification of functionality?

 

Risk Bearer

IMG_0803

Hiring Manager

Opportunity: Managing the five core risks common to all software development: irrational deadline, requirements inflation (“scope creep”), spec ambiguity, employee turnover, and poor productivity.  Making sure that all big projects have clearly defined data inflows and outflows as well as a spec.  

How we measure this:  

What percent of projects have clearly defined data inflows and outflows?  

What percent of projects have a spec?

What percent of projects have unrealistic expectations for timeline (this is arbitrary, but possible to judge with human judgment)?

What percent of projects experience scope creep – what percent of projects use a milestone-based scope system, to discourage scope creep (punt changes; force adjustments to subsequent milestones before milestones are underway).

What percent of projects experience a key member leaving the project underway?

What percent of milestones are missed?  Perhaps also–Git integration, tag all commits with milestone id, measure commits toward milestone.  Force breaking up of milestones into subtasks, and measure avg. time for task-in-progress.

 

Opportunity: Finance development with SAFEs.  Developers get paid normal wage; financier (Code For Cash) accepts equity at 2x wage.  For projects with proven/credible ROIs.  

How do we measure this:  How much SAFE funded development flows through the system each month?

 

Concierge

IMG_0804

Hiring Manager

Opportunity: Managing the hiring process *for* you so you can focus on other tasks: take a budget and be responsible for a deliverable; acting like an agency.

How do we measure this:  What is the GMV that flows through the platform?

 

Developer

Opportunity: Apply to jobs on your behalf

How do we measure this:  How much outreach are we performing per week?

 

Insulator

IMG_0805

Hiring Manager and Developer

Opportunity: Negotiating on your behalf, playing “bad cop” in the hiring process.

How do we measure this:  How many people have elected to have us negotiate rates for them?

 

Opportunity: Evaluate credibility of counterparties

How do we measure this:  How many reference checks do we do per week?

 

Conclusion

Which opportunities should we prioritize? If you run a middleman business, where do you provide value? Where are your opportunities? I’d love if you leave a comment! My email is zack@codefor.cash

My YCombinator application: Winter 2018

COMPANY

Company name:

Code For Cash

Company url, if any:

https://codefor.cash

If you have a demo, what’s the url? For non-software, demo can be a video.

(Please don’t password protect it; just use an obscure url.)

Describe your company in 50 characters or less.

Code For Cash matches freelance devs with jobs.

What is your company going to make?

We have software that matches freelance programmers with jobs. We’re bootstrapping the marketplace by scraping all freelance and remote/contract programming jobs that we find on the Internet. Our pattern-matching software applies metadata to gigs (on-site vs remote, full-time, part-time, project-based, etc.), and it falls back to our human data team in cases where the information can’t be inferred. We have one machine learning model (SVMs using uni-,2-,3-grams) but will have more to fully automate this once we have a bigger, well-labeled, structurally sound dataset. (I’m not a machine learning expert, so we leverage a SaaS for our machine learning, but I did take lots of college level math and also know the relevant essentials, such as Garbage In, Garbage Out).

Which category best applies to your company?

Marketplace

Is this application in response to a YC RFS?

No

Where do you live now, and where would the company be based after YC?

(List as City A, Country A / City B, Country B.)

New York, USA / New York, USA

CONTACT

Email address of the founder who is filling out this application:

zack@codefor.cash

Phone number(s):

+1 (917) 754-7298

FOUNDERS

Please enter the url of a 1 minute unlisted (not private) YouTube video introducing the founders. (Follow the Video Guidelines.)

Please tell us about an interesting project, preferably outside of class or work, that two or more of you created together. Include urls if possible.

I’m a solo founder with over 20 years of programming experience who has also worked in sales, marketing and operations.

How long have the founders known one another and how did you meet? Have any of the founders not met in person?

I’m a solo founder with over 20 years of programming experience who has also worked in sales, marketing and operations. NOTE: Throughout this application, I interchangeably refer to Code For Cash as “I” and “We”. Although I am the sole founder, I also benefit from a team of contractors whom I’ve assembled, and so saying “we” is appropriate!

PROGRESS

How far along are you?

I have a bit over $3000 MRR. I also generate revenue from consulting and facilitating billing of projects through our system – highest in a month is about $66,000. For example, instead of writing code for my consulting clients, I find Code For Cash subscribers to do it for them, charge a 5%-10% markup, invoice my clients and then pay the developers. In that way I’m “dogfooding” the app (as a hiring manager). This, however, is not the long-term plan, since I’m essentially subcontracting. But everything I do to facilitate these transactions could definitely be automated by smart enough software and processes, which I am in the process of building. In that way, with good enough software, we could eventually wipe out agencies and recruiters – perhaps even managers! – just through process-driven software.

How long have each of you been working on this? Have you been part-time or full-time? Please explain.

I’ve been working on this part-time since December 2016, supplementing my income with freelance programming jobs (dogfooding the system).

Which of the following best describes your progress?

Public Beta

How many active users or customers do you have? If you have some particularly valuable customers, who are they?

62 subscribers and 14 currently in trial. 59 of the customers are developers, two are hiring managers, and one is a coding bootcamp. The developers pay for the software because it helps them find jobs; the hiring managers pay for a license to the software as long as they are working with a contractor sourced through Code For Cash (if they hire additional developers, they pay for additional “seats” to the software); the coding bootcamp pays a flat fee to provide developer-level membership for all its students.

Do you have revenue?

Yes

What was your revenue in the last full calendar month?

(Please use USD. If none, enter ‘0’)

2750

Your revenue 2 months ago?

2613

Your revenue 3 months ago?

2240

Your revenue 4 months ago?

1640

Your revenue 5 months ago?

980

Your revenue 6 months ago?

180

Anything else you would like us to know regarding your revenue or growth rate?

I showed you our MRR from Recurly subscriptions, but a few of our early customers subscribed with SendOwl, so our actual MRR is about $500 higher (~$3300).

I’m also leveraging the Code For Cash product itself to do consulting work in order to fund development of the platform – for example, instead of writing code for my consulting clients, I find Code For Cash subscribers to do it for them, charge a 5%-10% markup, invoice my clients and then pay the developers. In that way I’m “dogfooding” the app (as a hiring manager).

There are also the book sales: The Software Engineer’s Guide to Freelance Consulting and 30 Days To Your First Freelance Programming Client are both published on Amazon and available for $2.99, selling ~13 copies a day (in the Top 10 – Kindle Paid – Software Development category).

Last month I drastically reduced our advertising spend in order to focus on product improvements but revenue still increased.

How much money do you spend per month?

5000

How much money does your company have in the bank now?

25000

How long is your runway?

(e.g. 5 months)

5 months

If you’ve applied previously with the same idea, how much progress have you made since the last time you applied? Anything change?

Monthly Recurring Revenue has gone from zero to over $3300.

We’ve found five unique customer acquisition channels.

We learned that freelance developers really hate paying referral fees, even if they wouldn’t have found the work otherwise, and would rather pay a flat rate.

We learned that hiring managers vary in their price sensitivity according to how tech-savvy they are: for example, a nontechnical founder is willing to pay a $200/month/developer recruitment fee, but a technical founder would pay one-time flat fee <$200, if that.

We learned that there are more w2 developers in USA than freelance developers due to tax reform legislation that was passed in 1986.

We’ve grown our customer base from fewer than 5 subscribers to over 60 active accounts, and increased our prospect list (e.g. purchasers of our books and mailing list signups) to over 2,000.

We’ve identified the size of the market using top-down as well as bottom-up estimates and identified some key players (in the freelance programming platform market: Upwork, Guru, Freelancer; ancillary competitors: IT staffing firms like Randstad; development agencies like YC-funded Gigster).

We have improved the product from barely a crontab, some ruby scripts, and a mysql database into a webapp with 6 major functional areas, (Preferences, CRM, Portfolio webpage, Training Materials, Share An Opportunity, Search [this is really just Algolia]).

We search 40+ markets for jobs instead of just 10+.

We filed for incorporation and started preparing essential legal documents, started to open a business bank account, and hired a bookkeeper to label all of our transactions in our accounting software.

We’ve grown to understand the importance of culture fit (communication) during the freelancer hiring process, as well as the importance of having a specification/scope of work for freelance projects in order to ensure both parties are successful (we haven’t implemented this, structurally, into the webapp yet, but we will).

We learned that freelance developers immensely care about time commitment when searching for work, and like to search based on a fulltime, part-time, or project-based commitment.

I learned that developers respond very well to transparency, as do hiring managers.

Despite relying on it as a livelihood, freelance developers dislike sales, so creating a “pull” approach to placement (that results in getting matched to a paycheck very quickly) rather than a “push” approach will be adopted very quickly.

The main hurdles for a software development project not getting started are: manager doesn’t trust developer; developer doesn’t trust manager; project doesn’t have a specification yet; manager doesn’t know what a fair price is; developer doesn’t know how to bid the project. (Most of such problems are solvable through the right software).

Developers are willing to take a chance on new platforms and see if they quickly get matched with a project that’s a good fit. So a smarter-matching engine is essential, as is a high volume of projects.

The list goes on…

If you have already participated or committed to participate in an incubator, “accelerator” or “pre-accelerator” program, please tell us about it.

None.

IDEA

Why did you pick this idea to work on? Do you have domain expertise in this area? How do you know people need what you’re making?

I’ve been a freelance programmer for over 10 years (since my Facebook app went viral and was acquired), so I am scratching my own itch (and the itches of my peers). But I have more knowledge than simply anecdata:

I’ve talked to dozens of freelance programmers during this process. This includes email conversations, Slack conversations, phone conversations, and in person conversations. In fact, everyone who signs up for the app gets invited into Slack, and I also man our support chat-widget.

I am in the process of putting together full, formal “Buyers Matrix” (persona) documents for 20 freelance developers and 20 hiring managers and have conducted nine formal interviews already. If I need to talk to a completely fresh (uncontacted) customer, either hiring manager or developer, I can find one who will really talk with me within a day.

I’ve researched the competition in depth, and can tell you how much revenue the top competitors are generating (freelancer itself generates ~$20M annually from software gigs; Upwork, ~$12M from software gigs; Randstad, ~€1.25B).

What’s new about what you’re making? What substitutes do people resort to because it doesn’t exist yet (or they don’t know about it)?

90% of freelance programming jobs travel by word of mouth, so the substitutes are LinkedIn posts, emails to friends, company mailing lists, etc.

Who are your competitors, and who might become competitors? Who do you fear most?

There are online marketplaces like Upwork, Guru.com, Freelancer.com, but they don’t focus on freelance programmers. Toptal has focus on freelance programmers, but they only concentrate on the top 3% of the market. C2C (corporate staffing firms, like Robert Half) do (roughly) ~$6B in annual revenue in this area. My biggest fear is Upwork launching a product that caters to the idiosyncrasies of the freelance programming market.

What do you understand about your business that other companies in it just don’t get?

Freelance programming in USA is limited because of a 1986 tax reform act that targeted developers. Companies were penalized for hiring developers as 1099 workers and are at risk of being taxed as if their hires were w2.

However, in spite of this, the “gig economy” is here and expanding. Some estimates peg the eventual TAM of the Gig Economy at $1.5T, attributing half of that to IT projects, including software.

The software workforce is growing. Although most freelance developers are not Americans (due to the limitations in American law), with the advent of travel visas (such as Thailand introducing a Digital Nomad visa) and the general growth of the gig economy, freelance software development will grow in size in spite of the legislative roadblocks.

Hiring a freelance software developer is currently like finding a taxi: you call up the cab company and hope that they show up on time or if you live in an area with a high enough volume of cabs, you go outside and hope one shows up near you in time. But with the right dispatch system (quickly matching developers to projects that are a good fit, not only technically but also culturally) and the right structural systems in place to make sure the software projects succeed (enforcing best practices for software development), we could become the Uber for Software.

People understand that hiring is broken. Developers hate recruiters, and companies admit that up to 50% of their software hires are wrong. It’s clear that matching needs fixing.

Freelance software projects are a chance for us to get this right, because freelance projects are small and more frequent than job postings, there is a higher volume of turnover – we get more passes through the funnel in order to get matching right. By the time we have developed a system for consistently outputting high quality software projects (with a lower failure rate), we will have a moat on competitors. Analogy: think about the YC application and its idiosyncrasies that give YC a competitive advantage in fundraising…

How do or will you make money? How much could you make?

(We realize you can’t know precisely, but give your best estimate.)

We collect subscription fees from developers and hiring managers. We charge developers $45/month (with a discount for early adopters or multiple licenses, such as in the case of a bootcamp). We charge hiring managers anywhere from $0 to $200/month/developer for the duration of their contract.

We estimate the freelance programming market to be anywhere from $500M to $3B in annual volume currently, depending on whether you include IT staffing in the definition of “freelance programmers”. Intermediary services get away with charging anywhere from 5% to 50%, so our annual revenue could be anywhere from $25M to $1.5B if we own the market. That’s immediately. Freelancing as a market is growing, though… with some estimates of the TAM maturing to $1.5T annually.

Even immediately, however, there are opportunities for us to pivot our matching software into adjacent markets. Prospects have asked me if I could service other freelance markets: video post production, web design, marketing gigs… for now, we are focusing on conquering the software development market before expanding adjacently.

How will you get users? If your idea is the type that faces a chicken-and-egg problem in the sense that it won’t be attractive to users till it has a lot of users (e.g. a marketplace, a dating site, an ad network), how will you overcome that?

We currently have five customer acquisition channels that are effective for sourcing freelance software developers: Reddit ads; Indie Hackers community participation; Instagram (organic– suggests that paid Instagram could work as well); Social media articles; the books, 30 Days To Your First Freelance Programming Client and Software Engineer’s Guide to Freelance Consulting – I estimate 1 in every 200 readers becomes a customer. Using Amazon Marketing Services, I estimate that we can move books at scale for about -$2 net per copy.

The main point to get across is that I’m confident we could scale paid acquisition of freelance developers, although LTV is approximately == CAC, and through product improvements (reducing churn) and normal growth hacking, we are on a mission to move LTV == 3X CAC.

It has occurred to me that some of our users come from referrals from fellow users. So we technically have six customer acquisition channels, including referrals.

However, we don’t yet have scalable systems for acquiring hiring manager customers (aside from networking and referrals– not *scalable*). Although our social media articles (designed to attract developers) are also accidentally finding us hiring managers, (including developers who are, internally, responsible for hiring), we don’t have a system where we can spend $X and ensure $Y hiring manager signups. In fact, we don’t yet have a software product for hiring managers to manage the hiring process… everything is done manually, with me often not charging the hiring managers and working closely with them to recruit a developer to their project, simply in order to facilitate customer learning.

We’re overcoming the chicken-and-egg problem this presents by writing scrapers to scour the Internet for freelance programming jobs, and we’ve written scrapers for about 50 different markets so far.

Currently, the bottleneck is scalable systems for signing up freelance hiring managers, but we haven’t even built software to manage the freelancer hiring process yet, though it will be shipped by the end of October, if not sooner. Now, after many conversations, we know what to build and what aspects are important, systematically addressing the bottlenecks within the hiring process, itself: pre-screening with rubric-based technical evaluations, having a spec, getting the description in front of developers who are well-suited to it in terms of ability and availability, signing developers to NDAs where appropriate, conducting reference checks, and transparently monitoring of the process, for both sides.

EQUITY

Have you incorporated, or formed any legal entity (like an LLC) yet?

Yes

What kind of entity and in what state or country was the entity formed?

(e.g. Delaware C Corp)

Delaware C Corp

Please describe the breakdown of the equity ownership in percentages among the founders, employees and any other stockholders.

Zachary Burt owns 100% – all employees to date have been independent contractors (paid in cash) and not awarded any equity. Once funded, I will hire FTEs with a generous option pool.

List any investments your company has received. Include the name of the investor, the amount invested, the premoney valuation / valuation cap, and the type of security sold (convertible notes, safes or stock).

I have invested about $50,000 into the company already. That’s a rough estimate, since our books are not 100% up-to-date yet, but it’s within the right order of magnitude.

Please provide any other relevant information about the structure or formation of the company.

I’ve been operating as a sole proprietor since December 2016. In August, I filed for a DBA (doing business as) license with New York County. At the end of September (a few days ago), I filed with Delaware to create a C-Corp. Once that is confirmed, I still have to “qualify to do business as a foreign corporation” (legal terms – means out-of-state corporation) by submitting some forms to the New York State authorities.

LEGAL

Are any of the founders covered by noncompetes or intellectual property agreements that overlap with your project? If so, please explain.

No.

Who writes code, or does other technical work on your product? Was any of it done by a non-founder? Please explain.

I write code and have programmed for over 20 years. I hire freelance programmers (often through searching the Code For Cash database) and pay them as independent contractors. I’m capable of personally handling all the necessary tech; it’s simply a matter of scaling my time.

Is there anything else we should know about your company?

(Pending lawsuits, cofounders who have left, etc.)

A few of the freelancers who wrote job scrapers for us did so as independent contractors (you do this as a contractor, I will send you PayPal) but haven’t signed formal work-for-hire agreements. My lawyer says this shouldn’t be a huge issue, since it’s just auxiliary code (like scrapers for additional markets rather than core product code), but going forward, everyone is signing a formal agreement.

OTHERS

If you had any other ideas you considered applying with, please list them. One may be something we’ve been waiting for. Often when we fund people it’s to do something they list here and not in the main application.

I think there’s an opportunity for a service that hires product-inclined software developers to write specifications for software programs: from having facilitated many consulting projects via the platform, I can tell you that projects with well-defined data-input and data-ouput tend to end in success rather than tears. This would be beneficial for the FTE software market/ecosystem as well as the freelance developer market. These specifications could consist of simply wireframes/data flow descriptions, or even possibly automated testing systems (TDD, except the test writing is outsourced).

Please tell us something surprising or amusing that one of you has discovered.

(The answer need not be related to your project.)

Most programmers work as w2 rather than 1099 employees because of a 1986 tax reform act that threatens to (at the IRS’s whims) tax employers as if their 1099 programmers are w2 employees. Congress suspected that programmers were using their companies as tax havens, but studies show that programmers are actually more scrupulous than average when it comes to IRS reporting. The freelance programming economy is growing in spite of this (since software is eating the world), but many companies have an institutional memory from this 1986 law (which is still a threat) and prefer w2 or c2c arrangements.

CURIOUS

What convinced you to apply to Y Combinator?

The apply for w18 email reminder.

How did you hear about Y Combinator?

Alex Rampell told me about you in 2006.

Cost to Acquire a Customer (or “Cost of Customer Acquisition”) explained with real world examples and real numbers

One of the best ways to grow your business is by acquiring more customers.  If you solely grow through extending the value you get from your few customers, you run the risk of becoming a captured company.  We see this at a micro level where independent contractors with one golden goose client forcing them to convert to W2 employees.

If you know how much it costs to acquire a customer, and you know your customer lifetime value, you can then make the rational decision to invest in acquiring customers because you’re going to make the money back over the lifetime of your business relationship.

Of course, the formula is a bit more complex than “if LTV > CAC, invest heaps in customer acquisition!”.

For example, there is also the cost to deliver the service to the customer.  And there is the cost of capital to acquire the customer.  So therefore, VC firms have the golden ratio of 3+ as LTV/CAC ratio.  But VCs target 30%+ IRR on their portfolios.  If you are working with a bank having cost of capital around 10% – 20%, you may be able to get away with a lower LTV/CAC ratio.

So how do you calculate Cost of Customer Acquisition?

You take the amount you spent on marketing during a given month and divide it by the number of new customers in that month.

Let’s take this business, Code For Cash, as an example.  In August 2017 we had 17 new customers.  What were our marketing expenses?

Facebook ads – ($390)
Reddit ads – ($112)
Amazon marketing services for our ebooks Software Engineer’s Guide to Freelance Consulting and 30 Days To Your First Freelance Programming Client–  ($2000)  with $1260 in ebook royalties so ($740)
Freelance blog content – ($600)

Total: $1842

$1842/17 customers = $108 to acquire a customer.  According to this analysis, $108 is our CCA.

Unfortunately, this is too superficial an analysis to have any value.  The truth is, marketing programs pay off in months.  You would also have to look at my marketing spend for July, June, May, April, March – and the customer signups – to get greater accuracy.   Not only that, but I am probably forgetting lots of other relevant costs: SaaS programs used to automate the marketing, freelancers hired here and there for miscellaneous tasks, etc.

So, let’s get more accurate data:

Looking at the preliminary report from our bookkeeper Jamel Salter our marketing spend for the past few months is:

Sep Aug Jul Jun
2,419 3,641 3,680 5,661

Totaling $15,401

If we credit the revenue from Amazon royalties, approximately $4500, that’s $10,901 in marketing spend.  We added 31 customers over that time period: customer acquisition cost is actually higher than our preliminary estimate, at around $350.

Strategy for lowering customer acquisition cost

What does it take for someone to become a customer?

They have to:

A) Learn about our business (visit our webpage)

B) Sign up for a free trial

C) Convert their free trial into a paid subscription (establishing themselves as a customer)

Note: for the purposes of calculating CCA, only people who make it to stage “C” count.  However, people in B and A should be treated as customers – prospective customers, that is.

So in order for us to lower our customer acquisition cost, we need to: educate people on our business for a lower cost; improve our webpage so that more people sign up for the free trial; and do a great job during the free trial so that more people become paying customers.

What are some concrete example tactics?

Educate people on our business for a lower cost

  • Rely more heavily on content marketing, posting it on social media without promotional fees.  This article is an example.

Improve our webpage so that more people sign up for the free trial

  • Improve the design of the page so that it signals high quality
  • Remove the credit card requirement from the trial signup

Convert more trials into paid subscriptions

  • Aim for a 0% defect rate – 0 errors raised per customer
  • Measure # of gig opportunities available for user immediately: add additional markets to the database; write content that is also aimed at acquiring business customers (who will submit original gigs to the network)

My hypothesis is the highest impact things we could do would be to remove the credit card requirement from the trial signup, aim for a 0% defect rate through automated testing of key customer workflows, and adding new markets.  So that’s what’s coming up on the product roadmap!

Strategy and Tactics of Pricing – Summary

Chapter-by-chapter summary of The Strategy and Tactics of Pricing: A Guide to Growing More Profitably

Thomas T. Nagle, John E. Hogan and Joseph Zale

Summary notes by John O’Malley
Summary
  • A sophisticated understanding of the value a product creates for the customer serves as the bedrock input to a pricing strategy.
  • Different customers will value products differently. An effective pricing strategy will leverage a segmented price structure that reflects the values and costs across customer segments.
  • An integrated, strategic plan seeks to influence how customers perceive a product and its price rather than set prices reactively.
  • Setting a price is difficult, and the decisions too often reflect unclear leadership and misleading data. Strategic pricing prioritizes profitability.
  • Costs and competition are important considerations but not the drivers of effective pricing strategy because changes in prices alter volume and impact costs.
Chapter 1: Strategic Pricing
Coordinating the Drivers of Profitability

In the Information Age, the factors that determine profit are changing more rapidly than ever. New pricing models, such as those employed by Netflix, Ryanair, and Apple, form an integral part of some the most profitable enterprises in those changing markets. Yet, few managers train to set prices in anticipation of changes, rather than in reaction to them. Some common approaches to pricing simply reflect outmoded thinking: cost-plus pricing, customer-driven pricing, and share-driven pricing. These approaches all misunderstand the role of pricing.

Strategic pricing, on the other hand, rests on three key principles. First, the pricing strategy is value based. This means that prices reflect the differences in value across customers and over time. Second, the strategy is proactive. It anticipates those market changes, designs strategies to account for them and even dictates the terms of various trade-offs. Finally, the strategy is profit-driven. Instead of comparing prices to competitors, a pricing strategy is evaluated relative to the company’s alternative options.

These principles lead to the five-tier pyramid of strategic pricing, where each block builds on the next. Likewise, each of the following chapters expands on the nature of value creation, price structure, price and value communication, pricing policy, and price level before turning to the final component of strategic pricing: implementation. Although most companies do not need a large, central price management function, a clear strategic vision must ultimately have everyone in the organization do their part. Managers need to understand their role and have to data to execute successfully. A good strategy will seek to motivate new behaviors.

Pricing Policy Pyramid

Chapter 2: Value Creation
The Source of Value Creation

Value refers here to economic value, which relies on the differentiation of one product from another. Almost no one would volunteer to pay $2.00 for a can of coke from a seller if they know that it is available in a vending machine for $1.00 around the corner, but, more practically, a swimmer on hot beach might readily pay the higher price rather than walk to an inconvenient snack shack. This differentiation value is the only component of economic value captured by price.

Understanding the nature of differentiation is critical to understanding the creation of value. The two forms of differentiation are monetary value, which is the cost savings or income enhancements that a product provides, and psychological value, which is a measure of the satisfaction and pleasure derived from a product. Therefore, the total economic value of a product reflects the value of the next best competitor (the reference) plus the net value of the differentiation between products (the differentiation value).

To return to the example of why the beachgoer is willing to pay $2.00 for a can of coke, this breakdown of value creation can explain the decision to purchase. The reference value is the cost of the soda at the snack shack, the value normally derived from drinking a can of coke. The differentiation value is the psychological value of convenience and immediate gratification. The price point that results in the sale, the $2.00, captures the the total economic value to the customer on the beach.

Economic Value

This process also allows for value-based market segmentation, one of the most powerful ways to maximize profitability through strategic pricing. With a segmented marketing plan and price structure, a marketer can ensure that different segments pay an optimal price, instead of charging a single price that undercharges some customers and drives others to competitors. After a marketer determines the basic criteria for segments according to commonalities in purchasing behavior, they can identify the values that drive purchasing decisions within segments. These value-drivers do not necessarily correspond intuitively to segmentation criteria, and a deep understanding of the total economic value of a product helps identify specific value drivers. Then, after creating levels of segmentation and detailed descriptions for marketers, as illustrated in the two tables below, it’s time to move into the pricing strategy.

Segmented Customers

Chapter 3: Price Structure
Tactics for Pricing Differently Across Segments

A company that attempts to serve customers at a single price-point tends to make large, unnecessary trade-offs between volume and margin. By nature, differentiation value changes across customer segments, and the profit potential created by those differences can be captured through strategic pricing. In the case of railroads, for instance, railroad tariffs ensure that coal and grain cost significantly less to transport than other goods. At this lower price point, railroads maximize the profits on goods that would not be cost-efficient to ship at the cost of manufactured goods. The price structure allows the railroad to cover the high costs of its infrastructure.

Whenever differentiation value changes across customers, it is possible to design different offers for different segments. In fact, effectively designed bundles will accurately understand how they create differentiated value, and customers will self-select for the bundle that most directly corresponds to their needs. One of the core questions for configuring a price structure is deciding which features to offer individually and which features to bundle. In music, most customers will pay a premium for famous headliners, but must be enticed with lower prices to attend smaller performances. Some customers, however, may be willing to pay a premium for those same concerts, and segmenting can help buoy the profitability of these smaller performances.

Sometimes, quantity, such as number of tickets sold, does not accurately capture the value of a product. In these cases, marketers might adopt new price metrics by applying the cost of the price to a different unit. Price metrics can vary substantially. A sports club could charge per hour, per visit, or for a membership. Within that membership, the club might charge yet another hourly fee for a particular feature, like a sauna. Good metrics are unambiguous, appealing to prospective buyers, and aligned with their values. Someone primarily looking for a good sauna might balk at that sports club membership. Innovative price metrics, especially ones that are more effective than competitors, can improve existing margins and expand volume.

Value can also differ among customers receiving identical benefits because the factors contributing to their perception of economic value are different. In this case, a price fence, in which different segments are charged a different price for the same product, may be effective. This is quite common. Most museums have different charges based on age or student status. However, price fences can annoy people and create an incentive for buyers to, often successfully, avoid them. Effective price fences rely on proxy metrics like buyer identification, location, time of purchase, or quantity.

Chapter 4: Price and Value Communication
Strategies to Influence Willingness-to-pay

In order for strategic pricing to succeed, customers must accurately understand the value of the product on offer. More specifically, sellers need to convince customers to perceive the differentiation value of their product. Successfully communicating value protects segments from competitors by clearly highlight the differentiated value because the customer understands why one product better fits their need than the next best alternative. By extension, communicated value improves a customers willingness to pay and, ultimately, increases the likelihood of a purchase.

Take the example of the Amazon Kindle. Many observers feared that the high price point of the first devices would put off customers who considered the switch from physical books to e-books extremely risky. Amazon had to find a way to communicate the value of a new technology. They decided on a “Meet a Kindle Owner” program where prospective customers could meet people similar to themselves and learn the benefits of owning a Kindle. As a result of this highly effective approach to communicating value, Kindle sales far exceeded expectations.

This highlights that value communication is most important when the differentiated value of a product is not obvious to potential costumers. Typically, this is the case for inexperienced buyers or, in the case of the Kindle, when the product is highly innovative. In both cases, customers may have trouble noticing the differentiated value, so the purpose of effective value communication becomes identifying the perceptions to influence and connecting the key values to the appropriate characteristics of the product.

Two characteristics play the most important roles in influencing perception: type of benefit and cost to search. Type of benefit refers to the breakdown of value into monetary and psychological value. Presenting the monetary value to someone who primarily derives psychological value from a product will probably not influence them in any meaningful way, and it may even drive them away from the product.

The other characteristic is the relative cost to search, the cost relative to the expenditure of identifying a product’s value. Someone making a $5,000 purchase can reasonably spend more time searching than someone making a $5 purchase. When investigating search goods, a buyer can easily compare features and benefits objectively. The cost of search is low. However, experience goods that are more difficult to evaluate, like which auto shop to go to, have a higher relative cost to search. An effective value communication takes both of these kinds of attributes into account and adapts the communication across each stage of the purchase as the costs change.

The Customer Search Process

Importantly, customers do not always evaluate price as strategically as marketers, especially when it comes to discounts. Studies have demonstrated that customers evaluate purchase choices proportionally rather than absolutely. Most people would walk a block to pay $2.00 for a drink rather than $5.00, but they would consider it a waste of time to walk the same block to spend $102 rather than $105. Customers also place great weight on reference prices, the standard “fair” price, and perceptions of fairness. Although the subjectivity of these perceptions may make them seem difficult or unpredictable, in practice value communication can leverage them to a marketer’s advantage. In general, marketers can set a high “regular” price in order to lower the price through discounts and promotions before raising it again without seeming unfair. This also impacts reputation and whether the price is seen as maintaining or improving a standard of living, both important components of perceived fairness. Finally, people prefer to avoid losses when evaluating differences in products. Again, minimizing out of pocket costs or framing costs against a high reference cost can account for this gain-loss framing.

Chapter 5: Pricing Policy
Managing Expectations to Improve Price Realization

All sellers eventually face difficult customers asking for price exceptions. They may be loyal customers asking for an exception during an economic downturn or highly aggressive buyers forcing ad-hoc negotiations, slowing down sales overall. An effective pricing policy is a set of rules or habits that precludes exceptions for any factors that do not reflect changes in value or cost. Pricing policy ought to be consistent across the board. Over time, unclear pricing policies can allow buyers to dictate expectations to sellers. Strategic pricing flips this problem on its head by leveraging the price strategy to influence future customer behavior. Consistent price policies dictate consistent expectations, a key component to influencing customer behavior that avoids the pitfalls of ad-hoc negotiation.

Price policy develops over time. Each request for an exception to a price is an opportunity to set a pricing policy that will predict and prevent a similar exception request in the future. Over time, buyers will come to expect these pricing policies, as long as they are consistent and transparent. These policy decisions clearly must come from market level management, but they still have to empower sales managers to stand by pricing policies even at the potential cost of a sale. While this might seem intimidating, ad-hoc negotiations only defer substantial costs that will continue from unpredictable customer behavior. A pricing policy can cover price changes associated with discounts, increased industry costs, promotional trials, and changes in competitors prices. What matters is that each policy remain consistent.

Good policies also transform purchases into a price-value trade-off rather than an effort to extort the lowest prices. There are a wide variety of buyers who might engender pricing policies. In addition to consistency of application, good price policies can rely on give-get negotiations, in which the seller refuses to make any concession that does not have some value return. The principle behind give-get negotiations, which motivates good price policies generally, is identifying whether exception requests are a product of misplaced expectations or lost value. Pricing policy seeks to manage the expectations, but an in-depth, accurate understanding of value to customers may have wider repercussions. Revisit the thinking in early chapters to review how understanding value can influence strategic pricing.

Chapter 6: Price Level
Setting the Right Price for Sustainable Profit

A lot of data is available to set a price point, and a three stage process can guide the decision. This process builds on the premise that, in order to maximize profitability, price is different for different segments. This is the final level of the pyramid. At each step of the process, it is important to consider the pay-off for invested time. Managerial experience and market knowledge is always an essential component of price setting, and it may not be necessary to spend much time where experience will suffice.

The first step is to set a price window. This window outlines the highest and lowest acceptable prices for a product as defined by its total economic value. It extends the process for estimating value.

Price Windows

The next step is to set the price that best captures the differential value. The goal is not to set the highest price possible. The price should drive profitability because it aligns with the overall business strategy. Jeff Bezos, in the early days of Amazon, sought to undercut distributors in order to move market share to Amazon’s online platform, which was the germ of the company that exists today. It answers core question of the price-volume trade-off: “how much volume can I afford to lose for a price increase/how much volume would I have to gain for a price decrease?” Incremental break even analysis can help answer this question. Finally, it predicts the customer response to the price point. This is perhaps the most subjective step and therefore the best served by experience. Marketers have to estimate price-sensitivity, or the sensitivity to the price-value trade-off. This is the degree to which factors other than value influence willingness-to-pay, and it includes the same factors outlined in Chapter 4, such as expenditure size, perceived risk, and gain-loss framing.

The last step of the price setting process is to communicate the reason for the price to customers. Customers must understand the price and perceive it as fair. This clearly demonstrates how this step builds on all the others. Communicating a price to customers must particularly grapple with perceived fairness, which companies manage through price policies that reflect an understanding of differentiated value.

Chapter 7: Pricing Over the Product Lifestyle
Adapting Strategy in an Evolving Market

Products have a typical, and therefore predictable, life cycle. A market for a product appears, grows, reaches maturity, then declines. An effective strategy does not react to these changes. It predicts them. Profitable pricing represents the culmination of a successful plan and prediction. Moreover, while not every new product creates a new market, every new product presents new challenges and opportunities for marketers to introduce profitable price changes that reflect the different stages of the market life-cycle.

Product_Life_Cycle_png

For new products at the market development stage, the critical goal is buyer education. When buyers know nothing about a product, they have little sensitivity to its price. Consider how much information they lack. They have no way to evaluate cost to search, for instance, or leverage reference prices. Competitors are few or non-existent, and the potential profits of market development far outweigh the threat of competition. Pricing strategy revolves around effectively communicating value through adaptive solutions such as promotional trials, direct sales, or manipulation of distribution channels according to the characteristics of the innovation. Diffusion of experience across customers is a critical component of market development, as early adopters, such as in the case of the Amazon Kindle, can have a massive impact on developing customer knowledge.

During the growth stage, buyers have more information and increased price sensitivity so lower prices can effectively increase market share. In particular, strategies that successfully leverage diffusion can increase reception of price reductions and promote long-term profitability. Moreover, high rates of growth limit the impacts of price competition since companies can cut prices while maintaining profitability. Through effective product strategy, marketers can establish their product as the industry standard in anticipation of market maturity. In the case of Apple, promoting their computers as user friendly allowed them charge premium prices throughout the ongoing product life-cycle. Companies may also pursue cost-leadership, in which a price captures profitability by establishing the product as the cost-efficient market product, although not necessarily by maximizing market penetration.

Strategies in the maturity stage depend substantially on how a company positions its product in the growth stage. Buyer information is at its height, as is price sensitivity. Firms can only grow by seizing competitive market share, so prices are depressed and products become homogenous. As a result, cost-leadership or sustained, well-communicated differentiation produces competitive advantage. Strategic pricing at this stage might leverage unbundling that highlights differentiated characteristics, more accurate estimations of demand and value, expansion of the product line, or reconfigured distribution. In all of these solutions, a marketer takes advantage of the increased amount of information available to maximize price effectiveness.

Finally, the market declines as new products create entirely new markets. This leaves firms with excess capacity, which dictates effective pricing. Variable or easily reallocated costs might cause prices to fall only slightly, but fixed costs can result in higher average costs and increased competition as firms consequently attempt to seize market share, often through price slashing. Effective options include proactively protecting the strongest product lines, pricing to exit the market with minimum losses, or price cutting to capture the markets of weaker competitors.

Chapter 8: Pricing Strategy Implementation
Embedding Strategic Pricing in the Organization

Implementation relies on effectively designing organizational structure and motivating incentives. Effective organization uses a combination of formal reporting and empowered flexibility. This idea can be managed along a spectrum of roles, centralization, and rights and processes.

There are roughly four roles for the pricing function to take on within an organization. It can operate as an expert resource, which provides consultation to different market groups. It can operate as functional coordinator that decides how pricing decision will be made. In the next iteration, it can operate as a commercial partner, that sets both process and price. Less than ideally, it can also take on a figurehead role that sets a price without consideration to different markets. Each of these roles can play into different levels of centralization, and they can produce a center of scale that operates at the corporate level, a center of expertise that sets an advisory price for local managers, or simply a dedicated support unit for other pricing organizations. Across this map, managers and marketers must be assigned clear decision rights to set prices and clear process rights to dictate how decisions are made.

Pricing Function Archetypes

Even the best organizational plan is meaningless if managers refuse to implement it. Perhaps one of the largest challenges is utilizing data to organize incentives around profitability, not volume or price. The key is to link incentives to the correct data. Two effective categories of data analysis are customer analysis and process analysis. Customer analysis seeks a deeper understanding of customer behavior, similar to the estimation of value. In addition to those estimations, analyzing performance trends can reveal how competitors are influencing customers. Building metrics around customer profitability, a combination of the average price to the cost to serve, can provide another specific metric.

In process analytics, the goal is to find leaks in profits so that new pricing policies can seal them. Two forms of analysis are particularly appropriate: price bands, and price waterfalls. A price band shows which customers pay significantly more or less than others. This is a helpful tool to identify aggressive negotiators. A price waterfall tracks the impacts of all forms of discounts as they differ from invoices. This can show where out of pocket costs are actually much higher than what an invoice records.

Of course, implementation still poses seriously difficulties. These metrics can be effectively tied to more specific and effective selling incentives, but it may still be necessary for senior leadership to exemplify a commitment to new processes. Even with demonstrations, clear communications, and well designed incentives, it can take years to reach something close to the theoretical product. However, the benefits are worth it: firms that use strategic pricing earn 24 percent higher operating incomes than their peers.

Chapter 9: Costs
How Should They Affect Pricing Decisions

Costs are critical but not obvious. Strategic pricing integrates costs and value by avoiding the mistakes of cost-plus pricing. In strategic pricing, value comes first. A marketer understands what price will capture the value of a market, which allows them to understand the role of costs. Airlines, when faced with increases in the price of fuel, do not simply charge higher prices. Instead, they raise their revenue per mile by decreasing the number of trips and maximizing the number of full-fare travelers on each flight. However, costs are extremely complicated and subject in the text only to review.

Relevant costs are incremental, which means they are the cost of changing a price, or avoidable, which means they have not happened or can be easily reversed. These costs do not simply correspond to historical information. Knowing these costs determines whether or not a market would be profitable. There are four important mistakes associated with identifying relevant costs. The first is averaging total variable costs to estimate the cost of a single unit. If the incremental cost is not constant this is misleading. Second, accounting depreciation formulas do not always use current value. Third, considering one apparent cost as totally relevant or irrelevant may miss the incremental cost and, as a result, a chance to increase profitability. Finally, overlooking opportunity costs can lead to underpriced products.

The purpose of finding these costs is calculate an accurate contribution margin. This is the measure of the price-volume trade-off and, by extension, a measurement of the relationship of a product’s profitability to its volume. This allows managers to understand how a price change must affect the market in order to maintain profitability, the key first step to making the profitable price decision discussed earlier. It is also important to consider how the fixed costs of suppliers are passed on as incremental costs, and how price coordination can improve efficiency as outlined in the discussion of the product life-cycle and the implementation of a strategic plan.

Chapter 10: Financial Analysis
Pricing for Profit

The formulas presented in this chapter expand on the articulated theory of costs. They provide a method to quantify the impact of price changes on profitability and make informed, profitable decisions that integrate cost considerations. The method is called incremental break-even analysis. Managers simply take a considered price change and create a standard of comparison to the current level, a projection, or a hypothetical. Then they apply the formula to calculate the point at which the change will prove profitable. This is a quantitative answer the challenge of solving the price-volume trade-off.

Incremental_Break_Even_Graph_png

There are four cases where incremental break-even analysis can provide information about profitable pricing. In the most basic case, the formula produces the percent change in sales volume needed to maintain the same level of probability after a price change. (It can be converted into the percent change for price as well.) The formula can also be calculated with changes in variable costs or with changes in incremental fixed costs. It can even be calculated with consideration to a competitor’s price changes.

One of the most powerful tools that emerges from incremental break-even analysis is the break-even sales curve. The curve presents a range of price changes by percentage on a curve that includes the baseline. Profitable prices produce volumes to the right of the curve. Although to many it may seem unrealistic to apply economic theory to price decisions, working from the minimum elasticity can account for these concerns. However, it is important to keep in mind that the baseline should reflect the market change without a price change.

Strategic pricing does not ignore the problem posed by fixed or sunk costs. It simply notes that considering those costs is irrelevant to setting a price because they do not affect the profits the price will produce. The question of how to cover fixed costs is an important question of profitability that can be more clearly answered when firms understand the impact of price.

Chapter 11: Competition
Managing Conflict Thoughtfully

Effective responses to competitors leverage competitive advantage, not price. Price cutting, especially to make the next sale and without due consideration to strategy, can undermine the whole industry and irreversibly change a market, often to the disadvantage of the firms that resorted to price slashing. Sustainable, successful companies leverage their competitive advantage, which emerges from value differentiation. It can be reflected in the value of serving a highly specific customer segment, or it can be geographic and leverage convenience. Many American breweries maintain a competitive advantage by promoting their beer as the standard for a particular region. Advantage may also be based on variety, which takes advantage of cost-sharing and highly specific differentiation. Microsoft focused on developing computer operating systems, giving the company strong differential value in the computer industry while sharing costs with hardware manufacturers.

When competitors do changes prices, its important to react thoughtfully. Besides lowering prices, it is worthwhile evaluating how many customers will be attracted to a new competitor because of values like convenience, making them immune to reactive price changes. It may be the case that only one segment of customers is attracted by a discount. A response may call for new communication. Analysis may reveal that any retaliation would not be profitable. By carefully collecting and announcing information, firms can react to competitors in far more sustainable ways than simply slashing prices in a bid to grow market share.

Chapter 12: Measurement of Price Sensitivity
Research Techniques to Supplement Judgement

Estimates of price sensitivity can helpfully supplement managerial knowledge and expertise, but they cannot replace it. Experienced managers often have the strongest sense of which customers represent a product’s key market, know most acutely the factors that affect a sale, and can recommend appropriate parameters for research. On the other hand, most marketing decisions are highly subjective, and the information provided by estimates can serve as a guide or illuminate new information.

Research methods do differ in accuracy, cost, and applicability so its important for managers to assess the potential benefits of the information, without cutting corners. Techniques differ between highly controlled and totally uncontrolled. The added cost of controlled research is often worth it since uncontrolled environments have too many variables to allow for accurate information. Controlled analysis overwhelming tends to produce superior data.

Research can also track either actual purchase information or intentional purchase. Although information about actual purchase decisions is highly desirable, it is difficult and costly to acquire. In a controlled environment, however, measurements of intention and preference can prove highly predictive. Conjoint analysis, in particular, can match price sensitivity to specific differentiated characteristics.

The possibility for different research techniques also depends on the stage of the product development. Obviously, purchase information is not available for products in the early stages of development. This is when conjoint analysis tends to be the most helpful. Once the product is available, controlled in-store or laboratory experiments are possible, and, at the maturity stage, historical purchase data is easier and cheaper to obtain.

Chapter 13: Ethics and the Law
Understanding the Constraints on Pricing

Ethical constraints on pricing are meaningful from the standpoint of personal and societal ethics. However, beyond personally considered ethical stances, small changes can often bring suspect pricing policies into line with both the law and profit. In the United States, price competition is enforced through anti-trust law, as administered criminally by the Department of Justice, and civilly by the Federal Trade Commission and private parties. In the last decade, anti-trust law has focused on demonstrable economic effect, allowing a great degree of creativity for price setters. Some forms of prohibited price activity include price-fixing among competitors or price encouragement between suppliers and distributors. They remain, largely, per se illegal but some ambiguity in the application of the law has allowed them to become permissible in the last thirty years. Other key areas of ethical concern include price discrimination, promotional discrimination, non-price vertical restrictions, predatory pricing (in which the seller prices to harm their own profitability), and price signaling. However, these restrictions are rarely enforced due to the need to demonstrate economic harm over intention.