XML 45 R81.htm IDEA: XBRL DOCUMENT v2.4.1.9
Loans Receivable (Credit Quality Indicator of non-covered loans) (Details) (USD $)
In Thousands, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount $ 4,578,431us-gaap_LoansAndLeasesReceivableGrossCarryingAmount $ 4,669,192us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 2,843,825us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
2,401,540us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
 
Financing Receivable, Individually Evaluated for Impairment 330,455us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
112,639us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Commercial Secured [Member] | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 523,643us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
400,561us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 456,853ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
354,415ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 32,364ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
18,809ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 2,637ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
2,376ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 31,789us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
24,961us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Commercial Secured [Member] | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 4,482us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
18,613us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Pass 4,131ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
17,120ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
443ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Substandard 351ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
1,050ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Doubtful   0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Corporate | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 133,076us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
54,796us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 109,282ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
54,796ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 15,615ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 8,179us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Corporate | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
10,166us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Pass 0ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
10,166ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Institutional | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 36,611us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
4,050us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 27,089ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
4,050ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 9,284ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 238us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Institutional | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Pass 0ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Middle Market | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 164,050us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
161,583us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 148,360ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
133,061ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 2,817ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
16,627ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
118ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 12,873us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
11,777us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Middle Market | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Pass 0ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Retail | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 175,628us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
166,642us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 159,209ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
149,018ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 3,690ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
2,182ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 2,637ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
2,258ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 10,092us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
13,184us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Retail | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 351us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
5,770us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Pass 0ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
4,378ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
443ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Substandard 351ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
949ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Floor Plan | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 1,650us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
1,835us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 285ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
1,835ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 958ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 407us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Floor Plan | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 4,131us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
2,677us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Pass 4,131ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
2,576ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
101ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Real Estate | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 12,628us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
11,655us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 12,628ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
11,655ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Real Estate | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Pass 0ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RealEstateCommercialSecuredMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Other commercial and industrial [Member] | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 766,089us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
727,096us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 553,914ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
719,003ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 4,321ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
3,911ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 2,701ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
997ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 205,153us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
3,185us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Other commercial and industrial [Member] | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 8,193us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
59,068us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Pass 8,152ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
57,509ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Special Mention 8ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
318ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Substandard 33ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
1,241ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_OtherCommercialAndIndustrialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Corporate | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 63,746us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
32,598us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 63,746ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
32,598ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful   0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Corporate | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
9,793us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Pass 0ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
9,696ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
97ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_CorporateOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Institutional | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 478,935us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
536,445us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 278,953ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
536,445ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 199,982us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Institutional | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Pass 0ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_InstitutionalOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Middle Market | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 92,334us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
58,897us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 87,126ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
53,868ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 2,815ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
3,466ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
198ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful   0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 2,393us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
1,365us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Middle Market | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Pass 0ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_MiddleMarketOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Retail | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 90,171us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
61,510us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 85,941ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
58,742ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 259ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
257ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 2,575ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
691ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 1,396us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
1,820us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Retail | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 4,121us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
27,338us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Pass 4,080ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
26,044ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Special Mention 8ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
150ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Substandard 33ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
1,144ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_RetailOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Floor Plan | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 40,903us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
37,646us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 38,148ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
37,350ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 1,247ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
188ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 126ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
108ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 1,382us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Floor Plan | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 4,072us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
21,937us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Pass 4,072ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
21,769ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Special Mention 0ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
168ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Substandard 0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_FloorPlanOtherCommercialMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Commercial and Industrial | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= us-gaap_CommercialLoanMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
 
Total Commercial subject to risk rating [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 1,302,407us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
1,205,338us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
Pass 1,023,050ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
1,148,047ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
Special Mention 36,693ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
23,481ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
Substandard 5,722ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
5,664ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
Financing Receivable, Individually Evaluated for Impairment 236,942us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
28,146us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
Total Commercial subject to risk rating [Member] | Non-covered originated loans [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 1,289,732us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
1,127,657us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Pass 1,010,767ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
1,073,418ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Special Mention 36,685ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
22,720ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Substandard 5,338ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
3,373ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 236,942us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
28,146us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Total Commercial subject to risk rating [Member] | Commercial Acquired loans (under ASC 310-20) [Member]    
Credit Quality Indicators [Line Items]    
Loans and Leases Receivable, Gross, Carrying Amount 12,675us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
77,681us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Pass 12,283ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
74,629ofg_RiskRatingPass
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Special Mention 8ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
761ofg_RiskRatingSpecialMention
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Substandard 384ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
2,291ofg_RiskRatingSubstandard
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Doubtful 0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
0ofg_RiskRatingDoubtful
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
Financing Receivable, Individually Evaluated for Impairment $ 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member
$ 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_FinancingReceivablesInvestmentTypeAxis
= ofg_TotalCommercialSubjectToRiskRatingMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_CommercialAcquiredLoansUnderAsc31020Member