diff --git a/apps/cement-cli/lib.js b/apps/cement-cli/lib.js
index 6f1b0a4abae25d18c8eff6e2def1260020a8fac9..6f6dfce8a711d519374a274570ac8c1824564bb3 100644
--- a/apps/cement-cli/lib.js
+++ b/apps/cement-cli/lib.js
@@ -19,7 +19,7 @@ const bidAsset = async (
       {
         type: "number",
         name: "inputQuantity",
-        message: `Choose an ammount of slag (in ${assetToBid.units}, max ${assetToBid.quantity}):`
+        message: `Choose an ammount of slag (max: ${assetToBid.quantity} ${assetToBid.units}):`
       }
     ])
     chosenQuantity = inputQuantity
diff --git a/apps/pubadmin-cli/index.js b/apps/pubadmin-cli/index.js
index 7bce50742be1dcf32f056616d2228a76d61d0be7..922c5a33a7b633b9df53ea77f5db5d9d50c4c414 100644
--- a/apps/pubadmin-cli/index.js
+++ b/apps/pubadmin-cli/index.js
@@ -39,12 +39,13 @@ const humanizePercentage = value => {
   if (value.percentage === undefined) {
     return value.total
   }
-  return `${value.total} [%${value.percentage.toFixed(2)}]`
+  return `${value.total.toFixed(3)} [%${(value.percentage * 100).toFixed(2)}]`
 }
-const humanizePrice = value => `${value.avg} [${value.min}, ${value.max}]`
+const humanizePrice = value =>
+  `${value.avg.toFixed(2)} [${value.min.toFixed(2)}, ${value.max.toFixed(2)}]`
 
 const toLine = stat => [
-  stat.total,
+  stat.total.toFixed(3),
   humanizePercentage(stat.reused),
   humanizePercentage(stat.discarded),
   humanizePrice(stat.price)
@@ -61,11 +62,10 @@ const getStats = async apiClient => {
       "Discarded\nt [%]",
       "Price (€)\n Avg [Min, Max]"
     ],
-    ...Object.entries(stats.perCompany || []).map(([org, val]) => [
+    ...Object.entries(stats.perSteelCompany || []).map(([org, val]) => [
       org,
       ...toLine(val)
-    ]),
-    ["Total", ...toLine(stats.global)]
+    ])
   ]
 
   console.log(table(tableValues, TABLE_CONFIG))
diff --git a/apps/sidenor-cli/lib.js b/apps/sidenor-cli/lib.js
index 4e6fd7a3c15996e693206333888ecbf7e9505c7d..5039deb25f60ea9f3f1044afa76d9316966859b5 100644
--- a/apps/sidenor-cli/lib.js
+++ b/apps/sidenor-cli/lib.js
@@ -199,7 +199,7 @@ const bidResponse =
           name: "inputBidder",
           message: `Select the bidder whose bid will be ${action}ed`,
           choices: assetSelected.fields.bids.map(b => ({
-            name: `${b.bidder.id} (quantity: ${b.quantity}, price: ${b.price})`,
+            name: `${b.bidder.id} (quantity: ${b.quantity} ${assetSelected.units}, price: ${b.price})`,
             value: b.bidder
           }))
         }
diff --git a/chaincode/controller/stats/stats_controller.go b/chaincode/controller/stats/stats_controller.go
index 7d4b33c31345f39deeebeb7302f9ed10106e0864..f8bf0c1eae82648fd03552d72a9a3f448705675a 100644
--- a/chaincode/controller/stats/stats_controller.go
+++ b/chaincode/controller/stats/stats_controller.go
@@ -15,8 +15,7 @@ import (
 
 
 type StatsResult struct {
-	GlobalStats model.Stats `json:"global"` // in tons
-	PerCompany map[string]model.Stats `json:"perCompany,omitempty"`
+	PerSteelCompany map[string]model.Stats `json:"perSteelCompany,omitempty"`
 }
 
 func GetStatsOperation(stub shared.LedgerBuildrStubInterface, request shared.LedgerBuildrAsset) protos.Response {
@@ -29,14 +28,8 @@ func GetStatsOperation(stub shared.LedgerBuildrStubInterface, request shared.Led
 		return api.NewApiResponsePtr(fnName, err, nil).SendResponse()
 	}
 
-	globalStat, err := getStats(stub, GLOBAL_KEY)
-	if err != nil {
-		return api.NewApiResponsePtr(fnName, err, nil).SendResponse()
-	}
-	ret.GlobalStats = *globalStat.RefineStats()
-
 	if len(*orgs) > 0 {
-		ret.PerCompany = make(map[string]model.Stats)
+		ret.PerSteelCompany = make(map[string]model.Stats)
 	}
 
 	for _, org := range *orgs {
@@ -44,7 +37,7 @@ func GetStatsOperation(stub shared.LedgerBuildrStubInterface, request shared.Led
 		if err != nil {
 			return api.NewApiResponsePtr(fnName, err, nil).SendResponse()
 		}
-		ret.PerCompany[org] = *orgStat.RefineStats()
+		ret.PerSteelCompany[org] = *orgStat.RefineStats()
     }
 
 	return api.NewAPIGenericResponsePtr(fnName, nil, ret).SendResponse()
diff --git a/chaincode/controller/stats/stub.go b/chaincode/controller/stats/stub.go
index eedc0ac02c0bbce00f2467ab2dd0f1a2e460800c..590c281d972d35125926758476c390ef2127bfbe 100644
--- a/chaincode/controller/stats/stub.go
+++ b/chaincode/controller/stats/stub.go
@@ -9,14 +9,14 @@ package stats
 import (
 	"encoding/json"
 	"fmt"
+	"math"
 
 	"git.code.tecnalia.com/blockchain/hypercog/model"
 	"git.code.tecnalia.com/ledgerbuilder/sdk/core/util/logging"
 	"git.code.tecnalia.com/ledgerbuilder/sdk/shared"
 )
 
-const GLOBAL_KEY = "global"
-const ORG_LIST_KEY = "org_list"
+const STEEL_ORG_LIST_KEY = "steel_orgs"
 
 type OrgList []string
 
@@ -26,6 +26,7 @@ func getStats(stub shared.LedgerBuildrStubInterface, key string) (st *model.RawS
 	value, err := stub.GetState(key)
 	if err != nil || len(value) == 0 {
 		st = new(model.RawStats)
+		st.MinPrice = math.MaxFloat64
 	} else {
 		err = json.Unmarshal(value, &st)
 		if err != nil  {
@@ -51,7 +52,7 @@ func putStats(stub shared.LedgerBuildrStubInterface, key string, stats *model.Ra
 }
 
 func getOrgList(stub shared.LedgerBuildrStubInterface) (st *OrgList, err error) {
-	value, err := stub.GetState(ORG_LIST_KEY)
+	value, err := stub.GetState(STEEL_ORG_LIST_KEY)
 	if err != nil || len(value) == 0 {
 		st = new(OrgList)
 	} else {
@@ -65,11 +66,6 @@ func getOrgList(stub shared.LedgerBuildrStubInterface) (st *OrgList, err error)
 }
 
 func resetStats(stub shared.LedgerBuildrStubInterface) (error) {
-	err := stub.DelState(GLOBAL_KEY)
-	if err != nil {
-		return err
-	}
-
 	orgs, err := getOrgList(stub)
 	if len(*orgs) > 0 {
 		for _, org := range *orgs {
@@ -80,7 +76,7 @@ func resetStats(stub shared.LedgerBuildrStubInterface) (error) {
 		}
 	}
 
-	err = stub.DelState(ORG_LIST_KEY)
+	err = stub.DelState(STEEL_ORG_LIST_KEY)
 	return err
 }
 
@@ -107,7 +103,7 @@ func addOrgIfNotExist(stub shared.LedgerBuildrStubInterface, org string) (err er
 			return err
 		}
 	
-		err = stub.PutState(ORG_LIST_KEY, serialized)
+		err = stub.PutState(STEEL_ORG_LIST_KEY, serialized)
 		if err != nil {
 			return err
 		}
@@ -119,26 +115,21 @@ func addOrgIfNotExist(stub shared.LedgerBuildrStubInterface, org string) (err er
 }
 
 
-func retrieveExistingStats(stub shared.LedgerBuildrStubInterface) (*model.RawStats, *model.RawStats, error) {
+func retrieveExistingStats(stub shared.LedgerBuildrStubInterface) (*model.RawStats, error) {
 	org, err := stub.GetOrganization()
 	if err != nil {
-		return nil, nil, err
+		return nil, err
 	}
 
 	customStats, err := getStats(stub, org)
 	if err != nil {
-		return nil, nil, err
+		return nil, err
 	}
 
-	globalStats, err := getStats(stub , GLOBAL_KEY)
-	if err != nil {
-		return nil, nil, err
-	}
-
-	return globalStats, customStats, nil
+	return customStats, nil
 }
 
-func upgradeStats(stub shared.LedgerBuildrStubInterface, globalStats *model.RawStats, customStats *model.RawStats) (error) {
+func upgradeStats(stub shared.LedgerBuildrStubInterface, customStats *model.RawStats) (error) {
 	org, err := stub.GetOrganization()
 	if err != nil {
 		return err
@@ -149,11 +140,6 @@ func upgradeStats(stub shared.LedgerBuildrStubInterface, globalStats *model.RawS
 		return err
 	}
 
-	err = putStats(stub, GLOBAL_KEY, globalStats)
-	if err != nil {
-		return err
-	}
-
 	err = addOrgIfNotExist(stub, org)
 	if err != nil {
 		return err
@@ -165,15 +151,14 @@ func upgradeStats(stub shared.LedgerBuildrStubInterface, globalStats *model.RawS
 
 
 func RegisterSlag(stub shared.LedgerBuildrStubInterface, quantity uint32, units string) (error) {
-	globalStats, customStats, err := retrieveExistingStats(stub)
+	orgStats, err := retrieveExistingStats(stub)
 	if err != nil {
 		return err
 	}
 
-	customStats.RegisterSlag(quantity, units)
-	globalStats.RegisterSlag(quantity, units)
+	orgStats.RegisterSlag(quantity, units)
 
-	err = upgradeStats(stub, globalStats, customStats)
+	err = upgradeStats(stub, orgStats)
 	if err != nil {
 		return err
 	}
@@ -182,17 +167,16 @@ func RegisterSlag(stub shared.LedgerBuildrStubInterface, quantity uint32, units
 }
 
 func RegisterSale(stub shared.LedgerBuildrStubInterface, quantity uint32, price float32, units string) (error) {
-	globalStats, orgStats, err := retrieveExistingStats(stub)
+	orgStats, err := retrieveExistingStats(stub)
 	if err != nil {
 		return err
 	}
 	
-	orgStats.UpgradeSell(quantity, price, units)
-	orgStats.UpgradeSell(quantity, price, units)
+	orgStats.UpgradeSale(quantity, price, units)
 
 	log.Debug(fmt.Sprintf("Sale registered in stats (quantity: %d %s, price: %.2f €)", quantity, units, price))
 
-	err = upgradeStats(stub, globalStats, orgStats)
+	err = upgradeStats(stub, orgStats)
 	if err != nil {
 		return err
 	}
diff --git a/chaincode/model/stats.go b/chaincode/model/stats.go
index 75f302fd9f6282ab501798381157c178cd6edad8..b63e8e60be9020001188ceb78f3d60445928df59 100644
--- a/chaincode/model/stats.go
+++ b/chaincode/model/stats.go
@@ -50,7 +50,7 @@ func (raw *RawStats) RegisterSlag(quantity uint32, units string) {
 	raw.TotalSlag += toTons(quantity, units)
 }
 
-func (raw *RawStats) UpgradeSell(quantity uint32, price float32, units string) {
+func (raw *RawStats) UpgradeSale(quantity uint32, price float32, units string) {
 	raw.SlagReused += toTons(quantity, units)
 	raw.TotalPrice += float64(price)
 	raw.BidAmount += 1