Create update table of features vs plans I am looking for a way to achieve this with minimum custom module work.

Imagine a table with features listed down the left, and the plan names are going across the top as headings. Where these columns and rows meet is an icon to say whether this plan has that specific feature.

The ability to add new features needs to be possible easily through Drupal.

I was thinking of creating a plan content type and then the feature could be a field collection with a boolean, and some other data (a booleon on its own is not sufficient).

The issue with this is that you can't reuse field collections, so that would mean creating a field collection for each feature, not very user friendly and too much work for the end-user when they have to add a booleon, and a couple of other fields, also the template file would need to be modified to allow for this new field.

My next thought was to set the field collection as unlimited and then have the features as taxonomy terms, to then use hook_form_alter to first pull in the taxonomy terms and then pre-populate a term reference field for each instance of the field collection.

However this gets a little complicated when you think about a scenario in which someone adds a new feature as a taxonomy term. The custom module would need to look at the fields on the node in the field collections and check to see if the term exists already.

Maybe this would work, but is there a better way?
You might want to give a try to Editable Views module. So you would create a view page with columns and rows as you desire, making all the fields editable. Then you could change any field value (boolean if checkbox is used) just in place.