XML 28 R40.htm IDEA: XBRL DOCUMENT
v2.4.1.9

Loans, Allowance For Loan Losses and OREO (Impaired Loans) (Details) (USD $) In Thousands, unless otherwise specified | 3 Months Ended | 12 Months Ended
--- | --- | ---
Mar. 31, 2015 | Dec. 31, 2014
Financing Receivable, Impaired [Line Items] |  |
Totals: Recorded Investment | $ 8,498 us-gaap_ImpairedFinancingReceivableRecordedInvestment | $ 10,677 us-gaap_ImpairedFinancingReceivableRecordedInvestment
Totals: Unpaid Principal Balance | 10,041 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance | 12,619 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
Related Allowance | 891 us-gaap_ImpairedFinancingReceivableRelatedAllowance | 1,058 us-gaap_ImpairedFinancingReceivableRelatedAllowance
Totals: Average Recorded Investment | 9,589 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment | 10,834 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
Totals: Interest Income Recognized | 107 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod | 480 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
Commercial [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
With No Related Allowance Recorded: Recorded Investment | 50 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 2,017 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
With No Related Allowance Recorded: Unpaid Principal Balance | 463 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 2,280 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
With No Related Allowance Recorded: Average Recorded Investment | 1,034 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 2,641 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
With No Related Allowance Recorded: Interest Income Recognized |  | 63 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
With An Allowance Recorded: Recorded Investment | 1,027 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 1,406 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
With An Allowance Recorded: Unpaid Principal Balance | 1,085 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 1,861 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
With An Allowance Recorded: Average Recorded Investment | 1,217 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 990 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
With An Allowance Recorded: Interest Income Recognized | 7 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 29 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Totals: Recorded Investment | 1,077 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 3,423 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Totals: Unpaid Principal Balance | 1,548 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 4,141 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Related Allowance | 435 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 713 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Totals: Average Recorded Investment | 2,251 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 3,631 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Totals: Interest Income Recognized | 7 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 92 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Commercial Mortgages-Owner Occupied [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
With No Related Allowance Recorded: Recorded Investment | 2,803 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 2,835 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
With No Related Allowance Recorded: Unpaid Principal Balance | 2,803 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 2,835 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
With No Related Allowance Recorded: Average Recorded Investment | 2,819 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 1,687 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
With No Related Allowance Recorded: Interest Income Recognized | 41 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 152 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
With An Allowance Recorded: Recorded Investment | 639 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 852 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
With An Allowance Recorded: Unpaid Principal Balance | 639 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 1,029 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
With An Allowance Recorded: Average Recorded Investment | 746 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 1,636 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
With An Allowance Recorded: Interest Income Recognized | 7 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 36 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
Totals: Recorded Investment | 3,442 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 3,687 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
Totals: Unpaid Principal Balance | 3,442 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 3,864 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
Related Allowance | 40 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 63 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
Totals: Average Recorded Investment | 3,565 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 3,323 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
Totals: Interest Income Recognized | 48 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember | 188 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesOwnerOccupiedMember
Commercial Mortgages-Non-Owner Occupied [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
With No Related Allowance Recorded: Recorded Investment | 1,030 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 1,078 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
With No Related Allowance Recorded: Unpaid Principal Balance | 1,030 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 1,128 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
With No Related Allowance Recorded: Average Recorded Investment | 1,054 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 1,041 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
With No Related Allowance Recorded: Interest Income Recognized | 13 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 75 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
With An Allowance Recorded: Recorded Investment | 498 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 126 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
With An Allowance Recorded: Unpaid Principal Balance | 549 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 126 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
With An Allowance Recorded: Average Recorded Investment | 312 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 173 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
With An Allowance Recorded: Interest Income Recognized | 7 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 7 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
Totals: Recorded Investment | 1,528 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 1,204 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
Totals: Unpaid Principal Balance | 1,579 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 1,254 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
Related Allowance | 83 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 32 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
Totals: Average Recorded Investment | 1,366 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 1,214 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
Totals: Interest Income Recognized | 20 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember | 82 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_CommercialMortgagesNonOwnerOccupiedMember
Commercial Construction [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
With No Related Allowance Recorded: Recorded Investment | 84 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember | 460 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
With No Related Allowance Recorded: Unpaid Principal Balance | 548 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember | 1,194 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
With No Related Allowance Recorded: Average Recorded Investment | 272 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember | 606 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
With An Allowance Recorded: Recorded Investment | 376 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
With An Allowance Recorded: Unpaid Principal Balance | 666 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
With An Allowance Recorded: Average Recorded Investment | 188 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
Totals: Recorded Investment | 460 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember | 460 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
Totals: Unpaid Principal Balance | 1,214 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember | 1,194 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
Related Allowance | 91 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember |
Totals: Average Recorded Investment | 460 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember | 606 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
Consumer Unsecured [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
With No Related Allowance Recorded: Recorded Investment |  |
With No Related Allowance Recorded: Unpaid Principal Balance |  |
With No Related Allowance Recorded: Average Recorded Investment |  |
With No Related Allowance Recorded: Interest Income Recognized |  |
Consumer Secured [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
With No Related Allowance Recorded: Recorded Investment | 129 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 21 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
With No Related Allowance Recorded: Unpaid Principal Balance | 129 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 21 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
With No Related Allowance Recorded: Average Recorded Investment | 75 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 21 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
With No Related Allowance Recorded: Interest Income Recognized | 1 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 1 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
With An Allowance Recorded: Recorded Investment | 119 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 119 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
With An Allowance Recorded: Unpaid Principal Balance | 119 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 119 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
With An Allowance Recorded: Average Recorded Investment | 119 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 80 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
With An Allowance Recorded: Interest Income Recognized | 2 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 7 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
Totals: Recorded Investment | 248 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 140 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
Totals: Unpaid Principal Balance | 248 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 140 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
Related Allowance | 119 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 119 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
Totals: Average Recorded Investment | 194 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 101 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
Totals: Interest Income Recognized | 3 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember | 8 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = botj_ConsumerSecuredMember
Residential Mortgages [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
With No Related Allowance Recorded: Recorded Investment | 922 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 934 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
With No Related Allowance Recorded: Unpaid Principal Balance | 1,049 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 1,058 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
With No Related Allowance Recorded: Average Recorded Investment | 928 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 702 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
With No Related Allowance Recorded: Interest Income Recognized | 18 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 58 us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
With An Allowance Recorded: Recorded Investment | 821 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 829 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
With An Allowance Recorded: Unpaid Principal Balance | 961 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 968 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
With An Allowance Recorded: Average Recorded Investment | 825 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 1,257 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
With An Allowance Recorded: Interest Income Recognized | 11 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 52 us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
Totals: Recorded Investment | 1,743 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 1,763 us-gaap_ImpairedFinancingReceivableRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
Totals: Unpaid Principal Balance | 2,010 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 2,026 us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
Related Allowance | 123 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 131 us-gaap_ImpairedFinancingReceivableRelatedAllowance / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
Totals: Average Recorded Investment | 1,753 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 1,959 us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
Totals: Interest Income Recognized | 29 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember | 110 us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialMortgageMember
Residential Consumer Construction [Member] |  |
Financing Receivable, Impaired [Line Items] |  |
With No Related Allowance Recorded: Recorded Investment |  |
With No Related Allowance Recorded: Unpaid Principal Balance |  |
With No Related Allowance Recorded: Average Recorded Investment |  |
With No Related Allowance Recorded: Interest Income Recognized |  |
With An Allowance Recorded: Recorded Investment |  |
With An Allowance Recorded: Unpaid Principal Balance |  |
With An Allowance Recorded: Average Recorded Investment |  |
With An Allowance Recorded: Interest Income Recognized |  |
Totals: Recorded Investment |  |
Totals: Unpaid Principal Balance |  |
Related Allowance |  |
Totals: Average Recorded Investment |  |
Totals: Interest Income Recognized |  |

X
- Details
Name: | us-gaap_FinancingReceivableImpairedLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Average amount of investment of impaired financing receivables with related allowance for credit losses and without a related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (c)(1) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 17 -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5258-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Amount of interest income recognized that the financing receivables (with related allowance for credit losses and without a related allowance for credit losses) were impaired. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (c)(2) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Amount of investment of impaired financing receivables with related allowance for credit losses and without a related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 14A -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953550-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableRecordedInvestment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of allowance for credit losses related to recorded investment. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (a)(3) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableRelatedAllowance
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Amount of unpaid principal balance of impaired financing receivables with related allowance for credit losses and without related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (a)(4) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of average investment of impaired financing receivables for which there is no related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (c)(1) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 17 -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5258-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Amount of interest income, recognized on accrual basis, on financing receivables that are recognized as impaired, for which there is no related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (c)(2) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Amount of investment in impaired financing receivables for which there is no related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 14A -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953550-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of unpaid principal balance of impaired financing receivables for which there is no related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (a)(4) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Amount of average investment of impaired financing receivables for which there is a related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (c)(1) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 17 -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5258-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Amount of interest income, recognized on accrual basis, on financing receivables, for which there is a related allowance for credit losses and are recognized as impaired. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (c)(2) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Amount of investment in impaired financing receivables for which there is a related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 14A -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953550-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Unpaid principal balance of impaired financing receivables for which there is a related allowance for credit losses. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 15 -Subparagraph (a)(4) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5212-111524 + Details
Name: | us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

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

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

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

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

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

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

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

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