New Feature: Raw Data

February 18, 2010

Very pleased to announce a feature that people have been asking for/about for some time now: access to raw data.

As of today, you’ll be able to get tab/return-delimited text of the raw data that feeds the daily GraphEdge stats/charts, including:

  • Date
  • Follows
  • Unfollows
  • Net Change
  • Total Followers
  • Legitimate Followers

To get the data, click the little “data” icon in the headings of your Followers History or Network Change History blocks in your report.

Doing so will launch a specialized Report containing a Historical Data section, in which is a text box containing the data itself, which you can select and copy into your spreadsheet of choice.

Formatting might look a little funky as presented in the text box, but it’ll be fine once pasted into your external application.

Note that Follows and Unfollows (and hence, Net Change) all apply to Legitimate Followers only. Since users are constantly being reclassified as illegitimate (or legit… it could happen!), these numbers are subject to change day-to-day. For example, let’s say Twitter account @SpamBot starts following you on Feb. 14. He’ll show up as a Follow for Feb 14, until his account is canceled by Twitter and GraphEdge reclassifies that user as illegitimate. After that happens, the user will no longer show up as a legitimate Follow in historical data.

All reporting data is updated nightly.

Thanks to Erin Hollabaugh and @StaplesTweets for lighting a fire under our butts to get this finished & rolled out!


Dispensing with Free Trials

January 28, 2010

Decided today to dispense with free trials. There are a number of factors which lead to this decision, including:

  • Much of the value of the report is realized the first time it is viewed… reducing incentive for conversion to paid service
  • The free trial has been very popular, and with a low conversion rate, our limited capacity is expended servicing free trials instead of paid customers
  • We’ll be undertaking some new products/services/reports in the coming days/weeks and we need that extra bandwidth to support that effort

For potential API or Agency partners, we may relax the no-free-trials policy, please reach out individually if you represent an agency or third party application interested in possibly folding GraphEdge data and/or reporting into your company/service.

Stay tuned for more information about what we plan to do with all this extra bandwidth!

My iSlate Predictions

January 21, 2010

Unrelated to GraphEdge, but I can’t resist putting myself on record with a few predictions regarding the upcoming Apple announcement. Part guesswork, part dream:

  • Will be billed not as a tablet or a laptop replacement, or a media reader, but as a “new kind of device”, on top of which device makers and app developers can build – deep into verticals like media, gaming, music (performance), academic (textbooks), and professional verticals – medicine, etc — Update: wrong!
  • Not called iSlate, but will carry a new brand – probably another apple-breed variation like “Macintosh”, something like Cortland or Gala (but not Granny Smith!) — Update: wrong!
  • Verizon data connection, not subsidized – no telephony other than VOIP. — Update: wrong!
  • Uni-body construction (not an iPhone look-alike) – lighter than expected — Update: half-right
  • Runs iPhone OS4 (which will be (re)named something – TouchOS perhaps) — Update: wrong!
  • 32GB LCD for $699; 64GB OLED for $1099 – data contract required — Update: wrong!
  • Front facing camera that knows how to locate you and digitally pan/zoom to you! No back-facing camera — Update: wrong!
  • Fancy new-style optical input/output ONLY (no USB, no other video out) — Update: wrong!
  • Bluetooth keyboard/mouse capability PLUS new, special versions of iWork and iLife apps — Update: 50/50
  • Over-air sync via Apple’s what’s-it-called serviced OR sync to new version of iTunes – ie, existing Mac / iTunes / connection NOT required but nicely integrated — Update: wrong!
  • GPS yes, accelerometer no — Update: wrong! (got it backwards, so extra wrong)
  • Interesting partnerships w/ publishers for daily newspaper-like content from NYT and others – will be hyped by Steve as the new paradigm for all publishing – magazines, books, newspapers — Update:right!
  • Steve will present this, will get straight to the point without a lot of less-important stuff up-front — Update:mostly right

Update: Very poor predictive skills… 3/13 = 23%

Announcing GraphEdge for Agencies

January 14, 2010

We’ve had a lot of interest from agencies and 3rd party applications for an agency and API version of GraphEdge. Today we announce the first version of GraphEdge for Agencies. If you’re a part of an agency that needs quick access to in-depth analytics on your clients’ Twitter accounts, we’re ready to work with you! Best email to open a discussion on this subject is bd1 [at] graphedge [dot] com.

Can’t wait to work with more agencies, this is where the power of GraphEdge will really shine!

Report Update Frequency

January 9, 2010

Been getting more than the usual number of inquiries/complaints about reports failing to update daily. In fact, the reports are updating as expected, but we haven’t set expectations properly.

There are two main sets of data from which reports are generated. Every day we regenerate each user’s entire “My Followers” report with the data we have collected since the user’s sign-up date (including the previous day’s data, as yet unreported). This data changes every day, so we regenerate the report every day.

The “My Followers’ Networks” report is another story. Crawling a user’s second-level network and calculating the results is a processor intensive operation, but more to the point, it’s expensive in terms of API requests to Twitter for data. Twitter restricts the number of calls we can make, so it’s impossible for us to update the My Followers’ Networks reports daily. We’re working to increase the frequency, but as of now it takes about 3 weeks to cycle through our entire user-base.

Luckily, this data is fairly static. Once you get that first report (and we prioritize reports for new users) the data won’t change much from one crawl to the next.

So if you’re wondering why your report hasn’t been updated in 2 weeks… it has! The frequency-sensitive stuff updates daily. The more static 2nd level stuff may take a while, but it’s OK because there may not be too much new information there when it does update.

Why is Twitter driving my Twitter app away from Twitter?

December 14, 2009

When I first launched GraphEdge, I wanted to use a modern approach to sign-up, authentication, and communication. I wanted GraphEdge to be embedded entirely in Twitter. I would use Twitter for sign-up (follow @GraphEdge and you’d be signed up). I would use it for authentication (use Twitter’s OAuth implementation to sign users into GraphEdge). I would use it for communication (direct messages and @name messages if users sign up via OAuth rather than by following @GraphEdge).

No need for a GraphEdge sign-up process, no need for a separate GraphEdge passward, no need to collect email addresses.

Then… good news! People are liking the application a lot! They’re signing up like mad. More often, they do so by signing up on the site where, as I said, we do not collect email addresses. To acknowledge that a user has signed up, we message them by sending an @name message. To let them know their first report is ready, we do so again. Then we update them on a user-defined frequency which defaults to 5 days.

To send @name replies/messages, we use a separate account from @GraphEdge… we use @GraphEdgeMsg. This is to keep @GraphEdge clear for important, relevant messaging. Over the past few weeks we have run into a problem, which is that there is a limit on the number of tweets you can post in a day. This means that we can only send so many messages to our users. My solution was to provision a second messaging account, @GraphEdgeMsg2, and switch between these accounts when one of them reached its daily limit. It’s a bandaid solution, because I can’t really do this indefinitely… or shouldn’t need to, anyway.

So… late last week Twitter suspended my alternate message account. I reached out to my latest contact in the Twitter API team, Doug Williams. I explained about the fully-Twitter philosophy. Reminded him that my app is not a spam, is a legitimate, popular, and growing application.

His response: “What you are doing is not how we intend the product to be used.”

I’m going to call “foul” on this… the entire Twitter product development roadmap has been guided by uses for the app that have emerged from the community… @name replies, use of #hashtags, and RTs. And tons of other stuff.

My only move from here—one which I had concluded I needed to do anyway, but still it’s annoying—is to start collecting email addresses from all my users, and use that, rather than Twitter itself, as my primary avenue for communication with my users. Why is Twitter happy to drive me and my users away from Twitter? They should keep me focused on Twitter, not on use-cases which facilitate the expansion of my app to Facebook (which, when it happens, will reduce my attention on Twitter to nearly zero)?

Twitter should create a white-list solution for legit apps like ours to go beyond consumer-level use-restrictions. My application accounts and my backend IPs are already white-listed, why not give my account extra status updates as well?

Update – email conversation with Doug Williams continues

Waldron says:

I gotta say it feels like you’re pushing me further away from Twitter. This is going to force me to do my comm. via email. Is there no avenue for responsible, legitimate apps like mine to get extended usage status, much the way I have for my white-listed accounts/ips?

Doug Williams says:

I’m not trying to push you away, but tweets are meant to be public not for 1:1 communication which is what you are using them for. DMs however are meant for 1:1 communication. Whitelisted accounts have a raised DM limit (

Its a good point. And to be fair, I would hate to be in his shoes dealing with an annoying developer like me! He has to find a diplomatic way to say “go away, don’t bother me with these small potatoes” without having it sound like that! However, it ignores the fact that @username has become a form of 1:1 communication, and the proof of that is that you won’t necessarily see my @name messages in my public stream when you follow me. Twitter itself is treating @username as 1:1 communication, because their users are, else they wouldn’t filter these out.

So, diplomatic as Doug’s email is, it still rings false! And it drives my app toward email and away from Twitter.

The Kawasaki Chronicles – Part Deux

December 10, 2009

Twitter discussion between Guy Kawasaki and myself:

guykawasaki: @graphedge How am I supposed to get beyond this point? I am told to sign up again in a closed loop.

waldronfaulkner: @guykawasaki Hi, I’m the founder of GraphEdge. You found a bug that only effects users with >120K fol’s. More on blog:

GuyKawasaki: @WaldronFaulkner just read blog. Not many companies tell big users we don’t matter much 😉

WaldronFaulkner: @GuyKawasaki Of course it isn’t that you don’t matter (!) it’s that I’d need to charge you too high price. It’s you, or 100’s of others.

I’ve done the math. Here’s some metrics exposure.

  • My average conversion is for $8.35 (40% buy a year’s worth of access for $17.88, 60% buy 1 month for $1.99). [Note: this pricing structure is no longer in effect, it’s a little higher at the moment]
  • Assuming no re-ups for the 1-monthers, my current pricing model yields an average lifespan of 5.4 months, at a monthly rate of about $1.55.
  • My average converted users has 1,672 followers. (The application scales on followers, albeit not completely linearly)
  • This means I earn about a penny per month for every 10 followers my users have.
  • GuyKawasaki has nearly 200K followers.
  • To support Guy’s account at the same efficiency as my average user, I’d need to charge him about $185 per month.

I’d be very happy to provide Guy with GraphEdge service for a price in this range, but it’s not the self-serve model we’ve built-out and are experimenting with. And while an individual like Guy Kawasaki is savvy enough to understand the value of his Twitter network, that may be more than he’s willing to pay and these are probably higher-touch sales than I’m currently geared to sell.

Now… one might well point out that the value of having a high-profile user like Guy Kawasaki is worth any number of marketing dollars. Very true. A favorable tweet from Guy would likely generate something on the order of 50-200 new accounts. But acquisition isn’t my problem right now. In fact, as I’ve mentioned recently, I’m thinking of closing down my free trial.

However, as I begin to think about funding for the next phase of development of GraphEdge, there will definitely be a spreadsheet to model a business catering to a smaller number of higher-revenue partners like Guy.

And Guy, email me (waldron [at] graphedge [dot] com) if you’re really interested in using GraphEdge!

Guy Kawasaki – QA Associate

December 10, 2009

So @GuyKawasaki did some QA for us last night. He found a bug with some recently-posted code: the error text which should read “Sorry, but we don’t usually support Twitter accounts with more than 120,000 followers. Contact support to discuss options.” wasn’t showing up for him (Guy has about 200K followers). Instead he got “click here to sign in” with a link which led back to “click here to sign in” with a link to—etc…

I’ll fix this bug, but it’ll be a lower priority. If not for the fact that it effects people with such loud voices (120K followers and more!), it might have waited ’til next quarter’s sign-up revamp.

Thanks for the QA, Guy. Sorry for the inconvenience!

Good Problems

December 9, 2009

So… good problem to have. Too many signups for free trials. The application is scaled for a pretty robust user-base of paid users, but with the limited conversion rate, the funnel is just too wide. Good news is that people want to be in the funnel. Bad news is that it’s taking enough hardware/DB resources that I spend a good part of my day watching the task queue to see how things are going. That’s not how I want to spend my time.

So I’m considering closing the application to new trial accounts again. Users could still join, but they’d have to do so without the benefit of the trial period. I feel good about this because users can see exactly what they’re getting by looking at the example report that’s linked on the front page. I have a hard time envisioning users complaining that they didn’t get what they were expecting.

Also, users have so little on the table (typically $2 to under $20), that even if they didn’t like the product, or failed to understand what they were getting, there’s not too much to complain about with such a limited investment… although I did have one person email me to try to negotiate a lower price than $1.99, so who knows!?

Interest fact in favor doing away with the free trial period: 20-30% of new signups happen before the trial period ends, and most of those happen before it really even begins—before they’ve seen a report.

Still undecided, but this is definitely an option I’m considering for implementation in the near term.

APIs in the Roadmap

November 26, 2009

Have had a lot of interest lately about white-labeling GraphEdge reporting in other applications/tools. This kind of capability is definitely in the technical roadmap (although not sure yet how to handle it from a BD perspectiver). Obviously, the exact API is still to be determined, but would have the following features:

  • Ability for partners to provision new GraphEdge accounts (and cancel them… please cancel them when they’re not needed any longer!!)
  • Given a Twitter user ID, the ability to download raw CSV or XML data that power each report GraphEdge provides
  • Given a Twitter user ID, ability to download HTML/Images of specific reports

Pretty straight-forward.

If you have a business that could use some GraphEdge style reporting integrated into your marketing/PR/reporting/whatever application, contact bd1 [at] graphedge [dot] com and let’s talk about it. It’s not too late to help define the API!