The doomed ferry Sewol exceeded its cargo limit on 246 trips - nearly every voyage it made in which it reported cargo - in the 13 months before it sank, according to documents.
And it may have been more overloaded than ever on its final journey.
One private, industry-connected organisation recorded the weights, while a separate entity set the weight limit without passing on the information, experts warned.
The ferry sank on April 16, leaving more than 300 people missing or dead.
The disaster has exposed enormous safety gaps in South Korea's monitoring of domestic passenger ships, which is in some ways less rigorous than its rules for ships that handle only cargo.
Collectively, the country's regulators held more than enough information to conclude that the Sewol was routinely overloaded, but because they did not share that data and were not required to do so, it was practically useless.
The Korean Register of Shipping examined the Sewol early last year as it was being redesigned to handle more passengers. The register slashed the ship's cargo capacity by more than half, to 987 tons, and said the vessel needed to carry more than 2,000 tons of water to stay balanced.
But the register gave its report only to the ship owner, Chonghaejin Marine Co Ltd. Neither the coast guard nor the Korean Shipping Association, which regulates and oversees departures and arrivals of domestic passenger ships, appear to have had any knowledge of the new limit before the disaster.
"That's a blind spot in the law," said Lee Kyu-Yeul, professor emeritus at Seoul National University's Department of Naval Architecture and Ocean Engineering.
Chonghaejin reported much greater cargo capacity to the shipping association: 3,963 tons, according to a coast guard official in Incheon who had access to the documentation but declined to release it.
Since the redesigned ferry began operating in March 2013, it made nearly 200 round trips - 394 individual voyages - from Incheon port near Seoul to the southern island of Jeju.
On 246 of those voyages, the Sewol exceeded the 987-ton limit, according to documents from Incheon port.
The limit may have been exceeded even more frequently than that. In all but one of the other 148 trips, zero cargo was recorded. It is not mandatory for passenger ferries to report cargo to the port operator, which gathers the information to compile statistics and not for safety purposes.
More than 2,000 tons of cargo was reported on 136 of the Sewol's trips, and it topped 3,000 tons 12 times. But the records indicate it never carried as much as it did on its final disastrous voyage: Moon Ki-han, a vice president at Union Transport Co, the company that loaded the ship, has said it was carrying an estimated 3,608 tons of cargo.
The port operator has no record of the cargo from the Sewol's last voyage. Ferry operators submit that information only after trips are completed. In that respect, the rules for domestic passenger ships are looser than those for cargo-only vessels, which must report cargo before they depart.
Details from the port documents were first reported by the South Korean newspaper Kukmin Daily.
In paperwork filed before the Sewol's last voyage, Captain Lee Joon-seok reported a much smaller final load than the one Moon described, according to a Coast Guard official who had access to the report but refused to provide a copy. The paperwork said the Sewol was loaded with 150 cars and 657 tons of cargo.
That would fall within the 987-ton limit, but it's clearly inaccurate: the coast guard has found 180 cars in the water.
An official with the Korea Shipping Association's safety team said it is beyond the association's capacity to determine whether a ship is carrying too much cargo. He spoke on condition of anonymity.
"What we can do is to see the load line is not submerged," he said. The load line, a marking on the outside of a vessel, indicates whether a ship is overloaded, but it does not show whether it has the sort of balance between cargo and ballast that the register report said was necessary.
"The only person on any vessel who knows the exact cargo safety limit, excluding ballast water, fuel, passengers and others, is the first mate."
All 15 surviving crew members involved in the ferry's navigation have been arrested, accused of negligence and failing to protect passengers. Prosecutors also detained three employees of the ferry owner who handled cargo, and have raided the offices of the ship owner, the shipping association and the register. Heads of the shipping association and the register offered to resign in the wake of the disaster.
The cause of the sinking remains under investigation, but experts have said that if the ship were severely overloaded, even a small turn could cause it to lose its balance. Tracking data show the ship made a 45-degree turn around the time it began sinking; crew members have reportedly said that something went wrong with the steering as they attempted a much less severe turn.
Some experts say the Sewol never should have been cleared to operate after last year's redesign because the owner would not be able to make money under the register's new cargo limits.
The ferry operator "was trying to make a profit by overloading cargos," said Kim Gil-soo, a professor at Korea Maritime and Ocean University in Busan, "and public agencies that should have monitored did not monitor that".