Candy Japan 2018 Year in Review

Candy Japan ships surprise boxes of Japanese candy twice a month to subscribers around the world. I moved to Japan and started the site in 2011, and it has been supporting my life here ever since.

At the end of each year I publish a post to reflect on how the past 12 months turned out. You can read the previous one here, including more background on how the site got started.


The service works on subscription basis. People sign up and pay monthly to receive candy. The chart below shows the number of subscribers over time. As you can see, this was another down year, during which I lost 16% of subscribers. The year started with 385 and ended with 323 paying subscribers.

Candy Japan 2018 chart

Sales stats

Sales net of refunds: ~$100,000

Expenses: ~$86,000 (candy 44%, shipping 34%, boxes 8%, ads 4%, other 10%)

Profit: ~$13,000 (down from $38,374 last year)

Big part of "other" expense is paying freelancers for newsletter writing, accounting, translation and customer support.

Worth it?

I would estimate spending around 3 hours per day this year running the service. The main tasks are finding and curating candies, shipping, customer support, content writing, tweaking marketing campaigns, doing bookkeeping (in three currencies), taking product photos and improving the website.

Hours spent: ~1000

Wage per hour: ~$16

Hourly wage is down from ~$50 last year, as profit was less, but I spent more time trying to turn things around.

Site stats

Visits: 147,424

Unique visitors: 127,447

Page views: 231,651

Traffic sources: Search engines (28%), Social media (34%), Paid ads (5%)

What went wrong

Shipping issues


This year most of the packages sent to Germany started to bounce back with no clear explanation as to why, so I decided to stop shipping there. As 10% of customers were from Germany, this alone explains most of this year's decline.


Swedish post apparently got tired of paying for last-mile delivery of cheap items from China, and decided to block that by introducing delays and fees to customers.

Most countries have a "de minimis" rule when it comes to online shopping. If you order something very cheap from abroad, you'll pay no duties on it. Sweden also had this rule, but removed it this year. Now Swedish shoppers have to pay duties on everything, even if the tax is just 1 krona. There is also an "administrative fee" of ~8 USD added on top. In my case, Swedish customers are charged $8 for the pleasure of being able to pay a $4 duty. These fees combined cost almost as much as the subscription itself.

For some reason a single e-commerce platform is exempt from this: Wish. They have a special deal allowing VAT prepay, such that customers get their packages directly. I have emailed PostNord to ask how I could also do this, but was told that it is not possible.

I am still allowing new orders from Sweden, but have stopped advertising to Swedish customers. The packages do make it to their destinations in the end, but with significant cost and annoyance for customers there, leading to more cancellations.

Failed at getting customers from YouTube unboxings

As I wrote in "YouTube Marketing Horror Story", to promote the service I contacted 180 YouTubers to ask them to make an unboxing video. Many agreed, and I spent a lot of time shipping many sample boxes, but in the end the unboxing videos resulted in no new subscribers.

pile of candy sample boxes at Japanese post office

The experiment cost about $1000 and was more work than I had expected. I knew the chances of success were very low. However if it had worked, the reward would have been high, as I could have expanded the promotion 10-100x. I figured I had a 10% chance to make $100k, so it was worth spending $1000 to give it a shot.

Unboxings DO work, as other companies keep pouring money into working with bigger channels, which I doubt they would continue to do month after month if it wasn't giving them a return. Just my particular approach of trying to work with tiny cosplay channels turned out not to work at all.

SEO failures

To get more content indexed by search engines, I put all of our old newsletters on the site, but Google decided not to index many of them. The ones that did get indexed only sent 227 clicks, and resulted in no conversions.

I also tried making some of those annoying listicles such as "29 Mouth-Melting Japanese Chocolates". Only one of them sent a conversion: "8 International Candy Subscriptions You Must Try At Least Once". I'm sort of glad these didn't work, as they aren't much fun to write and they are way overdone already.

Japanese Limone chocolates

What went right

SEO successes

I noticed that some searches were not for a Japanese candy subscription, but rather just a one-time order.

I created an article explaining how to buy a gift card for yourself to get only one month's worth of candy, and other articles describing the service from different perspectives. These articles sent 6 conversions during the year, but should keep doing the same year after year with no extra cost, giving a nice return on the time spent writing them.

The traffic has buying intent and the content is about the service itself—not about something tangential. This might be widely applicable to other businesses as well; can you describe your service from another point of view to capture more search traffic?

Faster shipping

I used to only batch ship twice a month, and while this worked well to keep costs in check, it also meant a long wait for the first package. The shipping days are 14th and 28th of each month, meaning that if someone happened to subscribe on 15th or 29th, there would be a two week wait before work on the batch would even start.

To improve on this, on top of the two monthly batches, when possible I made daily trips to the post office to airmail boxes right away to new subscribers that join. Many new members got their first boxes up to four times faster than before.

Candy box on top of mailbox

Package tracking

Since I was already making trips to the post office, I figured I might as well use tracking for these first packages as well. While I cannot afford to track every single package (it costs $5 per shipment), when I am available to send the first package, I also pay to track it and wrote a little script that sends the customer the tracking code.

I would lose money if I always used tracking, but for a new customer's first shipment $5 seems like a worthwhile spend to build trust.

Better customer support

I started doing all customer support myself, and turned getting to inbox zero a daily habit. Average reply time is now less than 24 hours, and this way I should get a better feel for any preventable common issues.

I've tried asking anyone who cancels for a reason, but I haven't gotten much insight out of the responses. It might be better to ask on the website, as people might be more honest with a computer than when being questioned by the guy running the site.

Cut costs by switching to Stripe

I now save about $2000 / year by using Stripe subscriptions, instead of doing recurring charges through middleware and charging through a separate gateway.

When I started the site, I needed both a payment gateway and a recurring payments solution. I was paying about $2000 / year ($69/month + $0.10 cents per transaction + 1.25% of revenue) for middleware that did the recurring charging bit. On top of this I was also paying fees to the (non-Stripe) gateway I was using.

Later I switched to Stripe, which has built-in subscriptions, so the middleware was no longer necessary. I estimated that removing it would take about a week, but in reality the transition took me about 3 weeks to do (should have multiplied my estimate by π).

Waiting around for export & import to finish, taking the steps to shut down the existing middleware gracefully, and making new signups go directly to Stripe. I didn't want to mess up the transition, so finally I carefully went through all accounts to make sure that the transition worked properly. Finally when I thought I was done, I realized that I also had to create my own page for entering new card details when a card expires (middleware used to provide this).

I finally completed the change in June, and have enjoyed not receiving middleware bills ever since.

Got better at YouTube ads

As I wrote before in "What I Learned Burning $13,867 on YouTube Ads for Candy Japan", I've lost money with YouTube ads so far, and for a long time had the campaign paused. While it wasn't running, I still kept going through the data to see if I might be able to improve the campaign.

I was able to get conversions 33% cheaper by studying the failed campaign run and aggressively excluding anyone unlikely to convert. The little bump at the end of the subscriber chart is from trying out the new tweaked campaign.

I may have reached breakeven now, but the erratic nature of conversions (randomness is clumpy) and unknown quality of subscribers makes it difficult to be sure. I wouldn't be surprised if customers from YouTube tended to stick around for a shorter time than people actively looking for the site. I want to be a bit more careful this time, and so haven't gone all-in on the new campaign yet.

What went right

One interesting thing I found is that if I cut the awkward "konnichiwa" from the beginning of the ad, people are almost twice as likely to watch it. As ads are paid based on view count, that might not be a good thing, but it's still interesting how such a little thing has such a big impact. For some reason YouTube prefers to show the uncut ad, and AdWords doesn't let you split-test video ads evenly, so I'm not sure which actually works better.


While Candy Japan is still a great side project, it is no longer enough to completely cover my cost of living in Japan. There still are many tweaks to make to the service that could improve it, so I doubt I'll be able to resist working on it, but I will also start spending more time launching completely new ideas as well.

Thanks for reading, and do subscribe if you'd like to try some candy for yourself.

PS. Visiting my home country Finland for Christmas gave me inspiration for the first thing to try. BBS-like realtime splitscreen chat: