Yes, the GNP number and graph in BTS are calculated as gold + beakers + espionage + culture - expenses. (Gold includes foreign income/outgo, and beakers includes tech cost modifications for devaluation and optional prerequisites.) Read on for the technical detail.
In vanilla and Warlords, the GNP graph is calculated as commerce minus expenses. This can be extremely misleading, since it doesn't factor in multiplier buildings or specialists or shrines or many other factors. I wrote up a
detailed discussion, which became the foundation for changing the behavior in BTS.
In BTS, it's calculated as follows, in CvPlayer.cpp::calculateTotalCommerce()
Code:
int iTotalCommerce = calculateBaseNetGold() + calculateBaseNetResearch();
for (int i = 0; i < NUM_COMMERCE_TYPES; ++i)
{
if (COMMERCE_GOLD != i && COMMERCE_RESEARCH != i)
{
iTotalCommerce += getCommerceRate((CommerceTypes)i);
}
}
calculateBaseNetGold() returns all gold production, plus foreign trade income or minus outgo, minus expenses including inflation. calculateBaseNetResearch() returns beaker production times any cost modifiers for devaluation and optional prerequisites. The NUM_COMMERCE_TYPES loop then includes culture and espionage production. The commerce types are defined in CvEnums.h as gold, research, culture, and espionage, of which the first two are excluded from that loop. (Theoretically, more could be modded in.)
So the GNP number and graph can still be slightly misleading as an indicator of economic power, because espionage and culture are included but have no real economic value. This also means that focusing on culture production will tend to give the most impact to the GNP number: culture has the most available multipliers, and artists produce the most units of any specialist.