Align Technology’s use of 3D printing

I recently came across this 2017 article by TJ McCue: 3D Printing Moves Align Technology Toward $1.3 Billion In Sales It contains information useful to understanding Align Technology’s business model.  Here’s what I found.

Treatment Efficiency

8 million aligners a year for 540,000 cases is 14.8 aligners per case. They also report a cumulative 327 million aligners to 4.5 million patients or 72.7 aligners per case. Not sure what to do about that, but I expect they used to make a lot more per case then they do now.

Average Sales Price

At the time, Align estimated a US market of 10 million orthodontic cases a year, with 60% or 6 million cases where aligner treatment is indicated. They claimed 9% of those for 540,000 cases.

Figuring $1.283 billion in sales of Invisalign for 540,000 cases is an ASP of $2,167.  I don’t think this number has changed since then.


The author claims to have seen 50 to 60 machines.  The 3D Systems’ Figure 4 starts at $25,000. Material cost per part should be low, say $5. They must have more capacity than the 8 million part demand.  Let’s say they are at 80% of total machine usage.  Can one Figure 4 print 30 trays an hour? There must of been more machines than the author saw!

Whatever the cost structure, Align Technology has eye-popping results.


WordPress 5 on Heroku

I started off using mhoofman/wordpress-heroku. One gotcha from there is that the PostgreSQL plugin does not work.  Here’s what worked for me on my Ubuntu 18.10 desktop.


wget, git, and heroku-cli

$ sudo apt install git wget git
$ sudo snap install --classic heroku
Get WordPress

Download from, extract, move wp-config-sample.php to wp-config.php.

$ wget
$ tar xzvf latest.tar.gz
$ cd wordpress
$ mv wp-config-sample.php wp-config.php

I then made the following edits to wp-config.php  This allows all parameters to be set via ‘heroku config:set’.  The first block is used to configure the WP Offload Media Lite plugin.

define( 'AS3CF_SETTINGS', serialize( array(
    'provider' => 'aws',
    'access-key-id' => getenv('AWS_ACCESS_KEY_ID'),
    'secret-access-key' => getenv('AWS_SECRET_ACCESS_KEY'),
) ) );

Now get and parse the MySQL connection.

$url = parse_url(getenv('CLEARDB_DATABASE_URL'));

define('DB_NAME', trim($url['path'], '/'));
define('DB_USER', $url['user']);
define('DB_PASSWORD', $url['pass']);
define('DB_HOST', $url['host']);

Finally, define authentication keys and salts.

define('AUTH_KEY',         getenv('AUTH_KEY'));
define('SECURE_AUTH_KEY',  getenv('SECURE_AUTH_KEY'));
define('LOGGED_IN_KEY',    getenv('LOGGED_IN_KEY'));
define('NONCE_KEY',        getenv('NONCE_KEY'));
define('AUTH_SALT',        getenv('AUTH_SALT'));
define('LOGGED_IN_SALT',   getenv('LOGGED_IN_SALT'));
define('NONCE_SALT',       getenv('NONCE_SALT'));
Download and install plugins and themes.

I added the following plugins. Unpack each into the ‘/wp-content/plugins’ directory.

Do the same with desired theme, unpacking to ‘/wp-content/themes’.

Initialize git repository and create Heroku app

The base code, plugins, and themes are in place. wp-config.php created and modified.  Now initialize a git repository and create an App on

$ git init .
$ heroku create
Add MySQL and Sendgrid
$ heroku addons:create cleardb
$ heroku addons:create sendgrid
Now set those configuration variables

You’ll need your AWS Access Keys.

$ heroku config:set AWS_ACCESS_KEY_ID
$ heroku config:set AWS_SECRET_ACCESS_KEY

Authentication keys and salts must also be configured.  Do it one-by-one, or script it.

$ heroku config:set AUTH_KEY:a-strong-password
$ heroku config:set SECURE_AUTH_KEY:another-strong-password

Continue for all the keys and salts.

That’s it! Deploy and then configure your site and the plugins from WordPress itself.
$ git checkout -b production
$ git push heroku production:master

Point your web browser to Heroku’s App URL.  You should then get WordPress’s famous five-minute install. You can see my resulting code at terryg/wordpress-heroku.


Hello world!