XML 141 R85.htm IDEA: XBRL DOCUMENT v2.4.1.9
Allowance for Loan and Lease Losses (Gross Loan and Allowance for loan and lease losses) (Details) (USD $)
In Thousands, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Dec. 31, 2011
Financing Receivable, Allowance for Credit Losses [Line Items]        
Loans and Leases Receivable, Gross, Carrying Amount $ 4,578,431us-gaap_LoansAndLeasesReceivableGrossCarryingAmount $ 4,669,192us-gaap_LoansAndLeasesReceivableGrossCarryingAmount    
Non-covered acquired loans accounted under ASC 310-20        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 4,597us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
2,354us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
   
Financing Receivable, Allowance for Credit Losses 4,597us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
2,354us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
 
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
   
Financing Receivable, Collectively Evaluated for Impairment 242,801us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
435,439us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
   
Loans and Leases Receivable, Gross, Carrying Amount 242,801us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
435,439us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
   
Most recent acquired loans accounted under ASC 310-30        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable, Allowance for Credit Losses 13,481us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
2,863us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
 
Non-covered originated loans [Member]        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 9,809us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
10,139us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 41,630us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
38,942us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses 51,439us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
49,081us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
39,921us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
37,010us-gaap_FinancingReceivableAllowanceForCreditLosses
/ 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
   
Financing Receivable, Collectively Evaluated for Impairment 2,513,370us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
2,288,901us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
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
   
Residential Portfolio Segment | Most recent acquired loans accounted under ASC 310-30        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable, Allowance for Credit Losses 0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
 
Residential Portfolio Segment | Non-covered originated loans [Member]        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 8,968us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
8,708us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 10,711us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
11,229us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses 19,679us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
19,937us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
21,092us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
21,652us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 94,185us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
84,494us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Collectively Evaluated for Impairment 697,566us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
681,771us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Loans and Leases Receivable, Gross, Carrying Amount 791,751us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
766,265us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Commercial Portfolio Segment | Non-covered acquired loans accounted under ASC 310-20        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 65us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
926us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
   
Financing Receivable, Allowance for Credit Losses 65us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
926us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
 
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
   
Financing Receivable, Collectively Evaluated for Impairment 12,675us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
77,681us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
   
Loans and Leases Receivable, Gross, Carrying Amount 12,675us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
77,681us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
   
Commercial Portfolio Segment | Most recent acquired loans accounted under ASC 310-30        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable, Allowance for Credit Losses 13,476us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
1,713us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
 
Commercial Portfolio Segment | Non-covered originated loans [Member]        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 841us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
1,431us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 7,591us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
13,466us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses 8,432us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
14,897us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
17,072us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
12,548us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 236,270us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
28,145us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Collectively Evaluated for Impairment 1,053,462us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
1,099,512us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Loans and Leases Receivable, Gross, Carrying Amount 1,289,732us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
1,127,657us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Consumer Portfolio Segment        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1   0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment   0us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
   
Financing Receivable, Allowance for Credit Losses   0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
   
Consumer Portfolio Segment | Non-covered acquired loans accounted under ASC 310-20        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
     
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 1,211us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
     
Financing Receivable, Allowance for Credit Losses 1,211us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
 
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
   
Financing Receivable, Collectively Evaluated for Impairment 45,344us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
56,174us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
   
Loans and Leases Receivable, Gross, Carrying Amount 45,344us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
56,174us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
   
Consumer Portfolio Segment | Most recent acquired loans accounted under ASC 310-30        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable, Allowance for Credit Losses 5us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
418us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_MostRecentAcquiredLoansAccountedUnderSC31030Member
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
 
Consumer Portfolio Segment | Non-covered originated loans [Member]        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 9,072us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
6,006us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses 9,072us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
6,006us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
856us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
1,423us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Collectively Evaluated for Impairment 186,760us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
127,744us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Loans and Leases Receivable, Gross, Carrying Amount 186,760us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
127,744us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Auotomobile Loans Portfolio Segment | Non-covered acquired loans accounted under ASC 310-20        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 3,321us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
1,428us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
   
Financing Receivable, Allowance for Credit Losses 3,321us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
1,428us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
   
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
   
Financing Receivable, Collectively Evaluated for Impairment 184,782us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
301,584us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
   
Loans and Leases Receivable, Gross, Carrying Amount 184,782us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
301,584us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AuotomobileloansportfoliosegmentMember
   
Auto and Leasing loans receivable        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable, Allowance for Credit Losses   7,866us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
   
Auto and Leasing loans receivable | Non-covered originated loans [Member]        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 14,255us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
7,866us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses 14,255us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
7,866us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
533us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
845us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Collectively Evaluated for Impairment 575,582us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
379,874us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Loans and Leases Receivable, Gross, Carrying Amount 575,582us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
379,874us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= ofg_AutoAndLeasingLoansReceivableMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Unallocated Financing Receivables        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1   0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment   0us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Financing Receivable, Allowance for Credit Losses   0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Unallocated Financing Receivables | Non-covered acquired loans accounted under ASC 310-20        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
     
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 0us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
     
Financing Receivable, Allowance for Credit Losses 0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
 
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Financing Receivable, Collectively Evaluated for Impairment 0us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
0us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Loans and Leases Receivable, Gross, Carrying Amount 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ ofg_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodAxis
= ofg_LoansReceivableAcquiredMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
   
Unallocated Financing Receivables | Non-covered originated loans [Member]        
Financing Receivable, Allowance for Credit Losses [Line Items]        
Financing Receivable Allowance For Credit Losses Individually Evaluated For Impairment1 0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment 1us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
375us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Allowance for Credit Losses 1us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
375us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
368us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
542us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
Financing Receivable, Individually Evaluated for Impairment 0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Financing Receivable, Collectively Evaluated for Impairment 0us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
0us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
   
Loans and Leases Receivable, Gross, Carrying Amount $ 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember
$ 0us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_UnallocatedFinancingReceivablesMember
/ ofg_NonCoveredLoansByInstitutionAxis
= ofg_NonCoveredOriginatedLoansMember