The threshold between an angel round and a series A is determined by your articles of incorporation. It's usually between 2 and 5 million. Before your series A you have no valuation b/c it would be a waste of money to determine it. Once you have matured and you raise enough money to go past the 2 to 5 million "convertible threshold," you get a valuation and issue class A stock to your investors and angels. Your angels convert from a convertible note to class A stock at the pre-money valuation and they get to ride the "valuation bump" the series A investors put in for free.
Ok, I reread this explanation and I hated it. This is how I actually understand it:
// globals
double classAThreashold = callLaywers( "Halp!" );
double outstandingShares = callLawyers( "Oh noes!" );
double amountInvested = 0;
void enterNewInvestment( double newInvestment )
{
if( newInvestment + amountInvested >= classAThreshold ) {
double preMoneyValuation = getValuation();
vector< double > percentagePerInvestor;
for( int i = 0; i < angelInvestments.size(); ++i ) {
// convertible notes convert here:
percentagePerInvestor.push_back( angelInvestments[ i ] / preMoneyValuation );
}
percentagePerInvestor.push_back( newInvestment / preMoneyValuation );
for( int i = 0; i < percentagePerInvestor.size(); ++i ) {
cout << "Shares for investor # " << i << " " << percentagePerInvestor[ i ] * outstandingShares;
}
cout << "the company is now worth :" << preMoneyValuation + newInvestment;
} else {
angelInvestments.push_back( newInvestment );
}
amountInvested += newInvestment;
}This is how I understand the whole process. It took my lawyers a long time to explain it all to me and I'm probably still screwing something up. Go easy on C++ :)
[updated a few bug fixes]