XML 12 R39.htm IDEA: XBRL DOCUMENT
v2.4.1.9

Note 4 - Loans and Allowance for Loan Losses (Details) - TDR Loan Modifications (USD $) In Thousands, unless otherwise specified | Mar. 31, 2015 | Dec. 31, 2014
--- | --- | ---
Residential real estate |  |
Troubled Debt Restructurings | $ 18,525 us-gaap_FinancingReceivableModificationsRecordedInvestment |
Interest Only Payments [Member] | Residential Portfolio Segment [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 516 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 520 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Interest Only Payments [Member] | Residential Portfolio Segment [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 516 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember | 520 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialPortfolioSegmentMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember
Interest Only Payments [Member] | Commercial Real Estate Owner Occupied [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 457 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 457 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Interest Only Payments [Member] | Commercial Real Estate Owner Occupied [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 457 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember | 457 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember
Interest Only Payments [Member] | Commercial Real Estate Nonowner Occupied [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 3,487 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateNonownerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 3,535 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateNonownerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Interest Only Payments [Member] | Commercial Real Estate Nonowner Occupied [Member] | Nonperforming Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 3,988 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateNonownerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember | 4,013 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateNonownerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
Interest Only Payments [Member] | Commercial Real Estate Nonowner Occupied [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 7,475 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateNonownerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember | 7,548 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateNonownerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember
Interest Only Payments [Member] | Commercial and Industrial [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 6,963 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialAndIndustrialMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 6,429 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialAndIndustrialMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Interest Only Payments [Member] | Commercial and Industrial [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 6,963 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialAndIndustrialMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember | 6,429 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialAndIndustrialMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_InterestOnlyPaymentsMember
Rate Reduction [Member] | Commercial Real Estate Owner Occupied [Member] | Nonperforming Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 240 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_RateReductionMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember | 244 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_RateReductionMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
Rate Reduction [Member] | Commercial Real Estate Owner Occupied [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 240 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_RateReductionMember | 244 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_RateReductionMember
Rate Reduction [Member] | Commercial Real Estate Nonowner Occupied [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 405 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateNonownerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_RateReductionMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 408 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateNonownerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_RateReductionMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Rate Reduction [Member] | Commercial Real Estate Nonowner Occupied [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 405 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateNonownerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_RateReductionMember | 408 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateNonownerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_RateReductionMember
Reduction of Principal and Interest Payments [Member] | Commercial Real Estate Owner Occupied [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 621 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_ReductionOfPrincipalAndInterestPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 627 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_ReductionOfPrincipalAndInterestPaymentsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Reduction of Principal and Interest Payments [Member] | Commercial Real Estate Owner Occupied [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 621 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_ReductionOfPrincipalAndInterestPaymentsMember | 627 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_ReductionOfPrincipalAndInterestPaymentsMember
Maturity Extension at Lower Stated Rate Than Market Rate [Member] | Commercial Real Estate Owner Occupied [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 1,030 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_MaturityExtensionAtLowerStatedRateThanMarketRateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 1,046 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_MaturityExtensionAtLowerStatedRateThanMarketRateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Maturity Extension at Lower Stated Rate Than Market Rate [Member] | Commercial Real Estate Owner Occupied [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 1,030 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_MaturityExtensionAtLowerStatedRateThanMarketRateMember | 1,046 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_MaturityExtensionAtLowerStatedRateThanMarketRateMember
Maturity Extension at Lower Stated Rate Than Market Rate [Member] | Home Equity Loans [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 219 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_HomeEquityLoansMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_MaturityExtensionAtLowerStatedRateThanMarketRateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 219 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_HomeEquityLoansMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_MaturityExtensionAtLowerStatedRateThanMarketRateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Maturity Extension at Lower Stated Rate Than Market Rate [Member] | Home Equity Loans [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 219 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_HomeEquityLoansMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_MaturityExtensionAtLowerStatedRateThanMarketRateMember | 219 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_HomeEquityLoansMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_MaturityExtensionAtLowerStatedRateThanMarketRateMember
Credit Extension at Lower State Rate than Market Rate [Member] | Commercial Real Estate Owner Occupied [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 204 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_CreditExtensionAtLowerStateRateThanMarketRateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 204 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_CreditExtensionAtLowerStateRateThanMarketRateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Credit Extension at Lower State Rate than Market Rate [Member] | Commercial Real Estate Owner Occupied [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 204 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_CreditExtensionAtLowerStateRateThanMarketRateMember | 204 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialRealEstateOwnerOccupiedMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_CreditExtensionAtLowerStateRateThanMarketRateMember
Credit Extension at Lower State Rate than Market Rate [Member] | Commercial and Industrial [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 395 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialAndIndustrialMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_CreditExtensionAtLowerStateRateThanMarketRateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 395 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialAndIndustrialMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_CreditExtensionAtLowerStateRateThanMarketRateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Credit Extension at Lower State Rate than Market Rate [Member] | Commercial and Industrial [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 395 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialAndIndustrialMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_CreditExtensionAtLowerStateRateThanMarketRateMember | 395 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_CommercialAndIndustrialMember / us-gaap_FinancingReceivableTroubledDebtRestructuringAxis = ovbc_CreditExtensionAtLowerStateRateThanMarketRateMember
Home Equity Loans [Member] | Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings |  | 13,840 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_HomeEquityLoansMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Home Equity Loans [Member] | Nonperforming Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings |  | 4,257 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_HomeEquityLoansMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
Home Equity Loans [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings |  | 18,097 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = ovbc_HomeEquityLoansMember
Performing Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | 14,297 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember |
Nonperforming Financing Receivable [Member] |  |
Residential real estate |  |
Troubled Debt Restructurings | $ 4,228 us-gaap_FinancingReceivableModificationsRecordedInvestment / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember |

X
- Details
Name: | ovbc_ResidentialRealEstateAbstract
Namespace Prefix: | ovbc_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The amount of the outstanding recorded investment related to financing receivables that have been modified by troubled debt restructurings. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 40 -Section 50 -Paragraph 4 -URI http://asc.fasb.org/extlink&oid=25495931&loc=d3e18845-111554 + Details
Name: | us-gaap_FinancingReceivableModificationsRecordedInvestment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=ovbc_HomeEquityLoansMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableTroubledDebtRestructuringAxis=ovbc_CreditExtensionAtLowerStateRateThanMarketRateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableTroubledDebtRestructuringAxis=ovbc_InterestOnlyPaymentsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableTroubledDebtRestructuringAxis=ovbc_MaturityExtensionAtLowerStatedRateThanMarketRateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableTroubledDebtRestructuringAxis=ovbc_RateReductionMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableTroubledDebtRestructuringAxis=ovbc_ReductionOfPrincipalAndInterestPaymentsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_InternalCreditAssessmentAxis=us-gaap_NonperformingFinancingReceivableMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_InternalCreditAssessmentAxis=us-gaap_PerformingFinancingReceivableMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |