Cuprins
Două firme raportează același profit net, un milion de lei. Prima are active de două milioane, a doua de douăzeci de milioane. Pe hârtie au câștigat la fel, dar prima scoate de zece ori mai mult din ce are. Diferența asta o prind doi indicatori: rentabilitatea capitalurilor proprii (ROE) și rentabilitatea activelor (ROA). La firmele românești, mai ales la cele mici și mijlocii, amândoi au câteva capcane pe care e bine să le știi dinainte.

Formulele
ROE = profit net / capitaluri proprii
ROA = profit net / active totale
ROE e întrebarea asociatului: cât câștig la fiecare leu pe care l-am lăsat în firmă? ROA e întrebarea managerului: cât profit scot din tot ce am la dispoziție, fie că e finanțat din capital propriu, fie din datorii?
Între ele stau datoriile. O firmă cu multe datorii are capitaluri proprii mici față de active, deci un ROE mult peste ROA. Poate însemna că îndatorarea lucrează în favoarea asociaților. Poate însemna la fel de bine că firma e fragilă.
DuPont: de unde vine ROE-ul
Un ROE de 30% nu îți spune de unde vine. Descompunerea DuPont îl sparge în trei factori, pe care îi calculezi din bilanțul public:
ROE = marja netă × rotația activelor × multiplicatorul capitalului
marja netă = profit net / cifra de afaceri
rotația activelor = cifra de afaceri / active totale
multiplicatorul capital = active totale / capitaluri proprii
Marja mare înseamnă că firma vinde scump sau produce ieftin, cum vezi la nișe, servicii specializate sau produse cu brand. Rotația mare înseamnă că vinde mult față de ce are, tipic pentru comerț și distribuție. Multiplicatorul mare înseamnă că lucrează mult pe datorii: rentabilitatea e în bună parte împrumutată, iar riscul vine la pachet.
Așa se face că două firme cu ROE de 25% pot fi complet diferite. Una are marjă solidă și nicio datorie. Cealaltă are marjă de 2% și datorii de zece ori mai mari decât capitalul. Dacă ești creditor, știi pe care o vrei.
Ce e specific firmelor de la noi
Capitalul social simbolic. Multe SRL-uri au un capital social de formă. Dacă asociații scot în fiecare an tot profitul ca dividende, capitalurile proprii rămân lângă capitalul social și ROE iese de sute sau mii de procente. Matematic e corect, practic nu spune nimic despre eficiență. La firmele astea mă uit direct la ROA și la marja netă.
Capitalurile proprii negative. Când pierderile adunate depășesc capitalul și rezervele, capitalurile proprii devin negative. Dacă firma mai are și un an pe pierdere, ROE iese pozitiv, minus împărțit la minus, ceea ce e absurd. roe din API e calculat mecanic, ca rezultat net împărțit la capitaluri, deci are aceeași problemă. Filtrează întâi după semnul câmpului capitaluri și abia apoi sortează.
Activele subevaluate. Activele imobilizate stau în bilanț la valoarea contabilă, care poate fi mult sub cea de piață, mai ales la clădiri și terenuri vechi. O firmă cu sediu propriu cumpărat acum 20 de ani poate avea un ROA mai frumos decât realitatea economică.
Anul dividendelor. Bilanțul e o fotografie la 31 decembrie. Dacă dividendele se distribuie abia în anul următor, capitalurile de la final de an includ încă profitul anului. Unii analiști folosesc media capitalurilor de la începutul și sfârșitul anului ca să corecteze asta, iar tu poți face la fel din seria pe ani.

Din API
Ruta de indicatori din API-ul Bilanț întoarce pe ani rentabilitatea capitalurilor și a activelor, marja netă și brută, lichiditatea curentă, gradul de îndatorare și fondul de rulment. Costă 2 credite:
curl -H "X-API-KEY: cheia-ta" \
https://www.bilantapi.ro/api/sandbox/v1/bilant/90000010/indicatori
Exemplul rulează în sandbox, cu date fictive și CUI-ul de test 90000010, fără credite; sandbox-ul cere doar o cheie API, deci un cont gratuit, fără card. Descompunerea DuPont n-o primești gata făcută, dar o calculezi din cifrele de bază de pe ruta de un an, la 1 credit:
import requests
BAZA = "https://www.bilantapi.ro/api/sandbox/v1"
r = requests.get(f"{BAZA}/bilant/90000010/2023",
headers={"X-API-KEY": "cheia-ta"})
d = r.json()["data"]
cifre = d["date"]
profit = d["indicatori"]["rezultat_net"] or 0
active = (cifre.get("active_imobilizate") or 0) + (cifre.get("active_circulante") or 0)
capital = cifre.get("capitaluri") or 0
ca = cifre.get("cifra_afaceri") or 0
if ca > 0 and active > 0 and capital > 0:
marja = profit / ca
rotatie = ca / active
multiplicator = active / capital
print(f"marjă {marja:.1%}, rotație {rotatie:.2f}, "
f"multiplicator {multiplicator:.2f}, ROE {marja*rotatie*multiplicator:.1%}")
else:
print("Capitaluri negative sau date lipsă: tratează separat.")
Cifrele din formular sunt în data.date, iar rezultatul cu semn, deja calculat ca profit minus pierdere, în data.indicatori.rezultat_net. Suma activelor imobilizate și circulante aproximează activele totale, destul de bine pentru comparații între firme. API-ul folosește aceleași definiții: roe = rezultat net / capitaluri × 100 și roa = rezultat net / (active imobilizate + active circulante) × 100, amândouă în procente. Când numitorul e zero, indicatorul vine null. Detaliile sunt în documentație.
Cu ce compari
ROE și ROA variază enorm între domenii. Un distribuitor are ROA mic și rotație mare, o firmă de software are ROA mare și active puține. Comparația corectă e doar cu firme din același sector. Ruta /bilant/{cui}/pozitie (3 credite) îți dă locul firmei, percentila și raportul față de mediana sectorului.
Un prag de tipul „ROE peste 15% e bun” rămâne un reper orientativ. Funcționează doar în interiorul unui domeniu și doar la firme cu capitaluri proprii care contează.
La ce le folosești
Dacă analizezi un client pentru credit comercial, un ROA stabil și pozitiv pe mai mulți ani valorează mai mult decât un ROE mare. Un ROE mare construit pe multiplicator e un risc, nu un merit.
La investiții și achiziții, DuPont îți arată dacă rentabilitatea vine din afacere sau din îndatorare. Doar prima supraviețuiește schimbării de proprietar, pentru că noul proprietar vine cu finanțarea lui. Iar în vânzări B2B, firmele cu rentabilitate bună și în creștere au bani de investit, deci sunt clienți mai buni pentru servicii și echipamente.
Indicatorii, evoluția pe ani și poziția în sector sunt pe pagina API-ului Bilanț. Ca să le încerci pe clienții, furnizorii sau concurenții tăi, fă-ți cont la înregistrare: primești 250 de credite gratuite și nu ți se cere card.
Întrebări frecvente
Prin ce diferă ROE de ROA?
ROE raportează profitul net la capitalurile proprii, ROA la toate activele. Diferența dintre ele vine din gradul de îndatorare al firmei.
Cum poate un SRL să aibă ROE de peste 1000%?
Are capital social mic și distribuie profitul ca dividende, așa că capitalurile proprii rămân foarte mici. La astfel de firme ROA și marja netă spun mai mult.
Primesc ROE și ROA gata calculate?
Da. Ruta /api/v1/bilant/{cui}/indicatori întoarce rentabilitatea capitalurilor și a activelor pe ani și costă 2 credite.



