The government's own records appear to show almost 42,000 people died with Covid-19 symptoms up to 20 July, versus 14,405 reported by its health ministry.
The number of people known to be infected is also almost double official figures: 451,024 as opposed to 278,827.
Iran has been one of the worst-hit countries outside China.
In recent weeks, it has suffered a second steep rise in the number of cases.
The first death in Iran from Covid-19 was recorded on 22 January, according to lists and medical records that have been passed to the BBC. This was almost a month before the first official case of coronavirus was reported there.
Since the outbreak of the virus in Iran, many observers have doubted the official numbers.
There have been irregularities in data between national and regional levels, which some local authorities have spoken out about, and statisticians have tried to give alternative estimates..
A level of undercounting, largely due to testing capacity, is seen across the world, but the information leaked to the BBC reveals Iranian authorities have reported significantly lower daily numbers despite having a record of all deaths - suggesting they were deliberately suppressed.
Where did the data come from?
The data was sent to the BBC by an anonymous source.
It includes details of daily admissions to hospitals across Iran, including names, age, gender, symptoms, date and length of periods spent in hospital, and underlying conditions patients might have.
The source says they have shared this data with the BBC to "shed light on truth" and to end "political games" over the epidemic.
The BBC cannot verify whether this source works for an Iranian government body, or identify the means by which they gained access to this data.
But the details on lists correspond to those of some living and deceased patients already known to the BBC.
The discrepancy between the official figures and the number of deaths on these records also matches the difference between the official figure and calculations of excess mortality until mid-June.
Excess mortality refers to the number of deaths above and beyond what would be expected under "normal" conditions.
What does the data reveal?
Tehran, the capital, has the highest number of deaths with 8,120 people who died with Covid-19 or symptoms similar to it.
The city of Qom, the initial epicentre of the virus in Iran, is worst hit proportionally, with 1,419 deaths - that is one death with Covid-19 for every 1,000 people.
It is notable that, across the country, 1,916 deaths were non-Iranian nationals. This indicates a disproportionate number of deaths amongst migrants and refugees, who are mostly from neighbouring Afghanistan.
The overall trend of cases and deaths in the leaked data is similar to official reports, albeit different in size.
The initial rise of deaths is far steeper than Health Ministry figures and by mid-March it was five times the official figure.
Lockdown measures were imposed over the Nowruz (Iranian New Year) holidays at the end of the third week in March, and there was a corresponding decline in cases and deaths.
SOURCE:BBC