XML 75 R59.htm IDEA: XBRL DOCUMENT
v3.19.3.a.u2

Note 3 - Rate and Regulatory Matters - Summary of Status of Updates for Previous Two Years for Various Rate Riders (Details) - Otter Tail Power Company [Member] | 12 Months Ended
--- | ---
Dec. 31, 2019 USD ($) kWh Boe | Dec. 31, 2018 USD ($) | Dec. 31, 2017 USD ($)
Annual Revenue | $ 26,092,000 | $ 35,962,000 | $ 47,850,000
Minnesota1 [Member] | Conservation Improvement Program Costs and Incentives [Member] |  |  |
Annual Revenue | $ 8,271,000 | 8,127,000 | 6,008,000
Minnesota1 [Member] | Conservation Improvement Program Costs and Incentives [Member] | The 2018 Incentive and Cost Recovery [Member] |  |  |
Approval date | Dec. 27, 2019 |  |
Effective Date Requested or Approved | Jan. 01, 2020 |  |
Annual Revenue | $ 11,926,000 |  |
Rate rider rate (Kilowatt-Hour) | kWh | 0.00710 |  |
Minnesota1 [Member] | Conservation Improvement Program Costs and Incentives [Member] | The 2017 Incentive and Cost Recovery [Member] |  |  |
Approval date | Oct. 04, 2018 |  |
Effective Date Requested or Approved | Nov. 01, 2018 |  |
Annual Revenue | $ 10,283,000 |  |
Rate rider rate (Kilowatt-Hour) | kWh | 0.00600 |  |
Minnesota1 [Member] | Conservation Improvement Program Costs and Incentives [Member] | The 2016 Incentive and Cost Recovery [Member] |  |  |
Approval date | Sep. 15, 2017 |  |
Effective Date Requested or Approved | Oct. 01, 2017 |  |
Annual Revenue | $ 9,868,000 |  |
Rate rider rate (Kilowatt-Hour) | kWh | 0.00536 |  |
Minnesota1 [Member] | Conservation Improvement Program Costs and Incentives [Member] | The 2015 Incentive and Cost Recovery [Member] |  |  |
Approval date | Jul. 19, 2016 |  |
Effective Date Requested or Approved | Oct. 01, 2016 |  |
Annual Revenue | $ 8,590,000 |  |
Rate rider rate (Kilowatt-Hour) | kWh | 0.00275 |  |
Minnesota1 [Member] | Transmission Cost Recovery Rider [Member] |  |  |
Annual Revenue | $ 2,497,000 | (2,039,000) | 2,973,000
Minnesota1 [Member] | Transmission Cost Recovery Rider [Member] | The 2018 Annual Update - Scenario A [Member] |  |  |
Effective Date Requested or Approved | Jun. 01, 2019 |  |
Annual Revenue | $ 6,475,000 |  |
Request date | Nov. 30, 2018 |  |
Minnesota1 [Member] | Transmission Cost Recovery Rider [Member] | The 2018 Annual Update - Scenario B [Member] |  |  |
Annual Revenue | $ 2,708,000 |  |
Minnesota1 [Member] | Transmission Cost Recovery Rider [Member] | The 2017 Rate Reset [Member] |  |  |
Approval date | Oct. 30, 2017 |  |
Effective Date Requested or Approved | Nov. 01, 2017 |  |
Annual Revenue | $ (3,311,000) |  |
Minnesota1 [Member] | Transmission Cost Recovery Rider [Member] | The 2016 Annual Update [Member] |  |  |
Approval date | Jul. 05, 2016 |  |
Effective Date Requested or Approved | Sep. 01, 2016 |  |
Annual Revenue | $ 4,736,000 |  |
Minnesota1 [Member] | Environmental Cost Recovery Rider [Member] |  |  |
Annual Revenue | $ (1,000) | (24,000) | 8,148,000
Minnesota1 [Member] | Environmental Cost Recovery Rider [Member] | The 2017 Rate Reset [Member] |  |  |
Approval date | Oct. 30, 2017 |  |
Effective Date Requested or Approved | Nov. 01, 2017 |  |
Annual Revenue | $ (1,943,000) |  |
Rate of base | (0.935%) |  |
Minnesota1 [Member] | Environmental Cost Recovery Rider [Member] | The 2016 Annual Update [Member] |  |  |
Approval date | Jul. 05, 2016 |  |
Effective Date Requested or Approved | Sep. 01, 2016 |  |
Annual Revenue | $ 11,884,000 |  |
Rate of base | 6.927% |  |
Minnesota1 [Member] | Environmental Cost Recovery Rider [Member] | The 2018 Annual Update [Member] |  |  |
Approval date | Nov. 29, 2018 |  |
Effective Date Requested or Approved | Dec. 01, 2018 |  |
Annual Revenue | $ 0 |  |
Rate of base | 0.00% |  |
Minnesota1 [Member] | Renewable Resource Adjustment [Member] |  |  |
Annual Revenue | $ 5,513,000 | 3,067,000 | (196,000)
Minnesota1 [Member] | Renewable Resource Adjustment [Member] | The 2017 Rate Reset [Member] |  |  |
Approval date | Oct. 30, 2017 |  |
Effective Date Requested or Approved | Nov. 01, 2017 |  |
Annual Revenue | $ 1,279,000 |  |
Rate rider rate (Kilowatt-Hour) | kWh | 0.00049 |  |
Minnesota1 [Member] | Renewable Resource Adjustment [Member] | The 2018 Annual Update [Member] |  |  |
Approval date | Aug. 29, 2018 |  |
Effective Date Requested or Approved | Nov. 01, 2018 |  |
Annual Revenue | $ 5,886,000 |  |
Rate rider rate (Kilowatt-Hour) | Boe | 0.00219 |  |
Minnesota1 [Member] | Renewable Resource Adjustment [Member] | The 2019 Annual Update - Revised [Member] |  |  |
Approval date | Dec. 19, 2019 |  |
Effective Date Requested or Approved | Jan. 01, 2020 |  |
Annual Revenue | $ 12,506,000 |  |
Rate rider rate (Kilowatt-Hour) | Boe | 0.00467 |  |
North Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] |  |  |
Annual Revenue | $ 5,292,000 | 7,016,000 | 8,729,000
North Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2016 Annual Update [Member] |  |  |
Approval date | Dec. 14, 2016 |  |
Effective Date Requested or Approved | Jan. 01, 2017 |  |
Annual Revenue | $ 6,916,000 |  |
North Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2019 Annual Update [Member] |  |  |
Approval date | Dec. 18, 2019 |  |
Effective Date Requested or Approved | Jan. 01, 2020 |  |
Annual Revenue | $ 5,739,000 |  |
North Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2018 Rate Reset for Effect of TCJA [Member] |  |  |
Approval date | Feb. 27, 2018 |  |
Effective Date Requested or Approved | Mar. 01, 2018 |  |
Annual Revenue | $ 7,469,000 |  |
North Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2018 Supplemental Update [Member] |  |  |
Approval date | Dec. 06, 2018 |  |
Effective Date Requested or Approved | Feb. 01, 2019 |  |
Annual Revenue | $ 4,801,000 |  |
North Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2017 Annual Update [Member] |  |  |
Approval date | Nov. 29, 2017 |  |
Effective Date Requested or Approved | Jan. 01, 2018 |  |
Annual Revenue | $ 7,959,000 |  |
North Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] |  |  |
Annual Revenue | $ 550,000 | 7,318,000 | 9,782,000
North Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] | The 2017 Rate Reset [Member] |  |  |
Approval date | Dec. 20, 2017 |  |
Effective Date Requested or Approved | Jan. 01, 2018 |  |
Annual Revenue | $ 8,537,000 |  |
Rate of base | 6.629% |  |
North Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] | The 2016 Annual Update [Member] |  |  |
Approval date | Jun. 22, 2016 |  |
Effective Date Requested or Approved | Jul. 01, 2016 |  |
Annual Revenue | $ 10,359,000 |  |
Rate of base | 7.904% |  |
North Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] | The 2018 Annual Update [Member] |  |  |
Approval date | Dec. 19, 2018 |  |
Effective Date Requested or Approved | Feb. 01, 2019 |  |
Annual Revenue | $ (378,000) |  |
Rate of base | (0.31%) |  |
North Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] | The 2019 Annual Update [Member] |  |  |
Approval date | Oct. 22, 2019 |  |
Effective Date Requested or Approved | Nov. 01, 2019 |  |
Annual Revenue | $ 0 |  |
Rate of base | 0.00% |  |
North Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] | The 2018 Rate Reset for Effect of TCJA [Member] |  |  |
Approval date | Feb. 27, 2018 |  |
Effective Date Requested or Approved | Mar. 01, 2018 |  |
Annual Revenue | $ 7,718,000 |  |
Rate of base | 5.593% |  |
North Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] | The 2017 Annual Update [Member] |  |  |
Approval date | Jul. 12, 2017 |  |
Effective Date Requested or Approved | Aug. 01, 2017 |  |
Annual Revenue | $ 9,917,000 |  |
Rate of base | 7.633% |  |
North Dakota 1 [Member] | Renewable Resource Adjustment [Member] |  |  |
Annual Revenue | $ 230,000 | 8,529,000 | 7,620,000
North Dakota 1 [Member] | Renewable Resource Adjustment [Member] | The 2017 Rate Reset [Member] |  |  |
Approval date | Dec. 20, 2017 |  |
Effective Date Requested or Approved | Jan. 01, 2018 |  |
Annual Revenue | $ 9,989,000 |  |
Rate of base | 7.756% |  |
North Dakota 1 [Member] | Renewable Resource Adjustment [Member] | The 2016 Annual Update [Member] |  |  |
Approval date | Mar. 15, 2017 |  |
Effective Date Requested or Approved | Apr. 01, 2017 |  |
Annual Revenue | $ 9,156,000 |  |
Rate of base | 7.005% |  |
North Dakota 1 [Member] | Renewable Resource Adjustment [Member] | The 2020 Annual Update [Member] |  |  |
Effective Date Requested or Approved | Apr. 01, 2020 |  |
Annual Revenue | $ 3,828,000 |  |
Request date | Dec. 31, 2019 |  |
Rate of base | 3.744% |  |
North Dakota 1 [Member] | Renewable Resource Adjustment [Member] | The 2019 Annual Update [Member] |  |  |
Approval date | May 01, 2019 |  |
Effective Date Requested or Approved | Jun. 01, 2019 |  |
Annual Revenue | $ (235,000) |  |
Rate of base | (0.224%) |  |
North Dakota 1 [Member] | Renewable Resource Adjustment [Member] | The 2018 Rate Reset for Effect of TCJA [Member] |  |  |
Approval date | Feb. 27, 2018 |  |
Effective Date Requested or Approved | Mar. 01, 2018 |  |
Annual Revenue | $ 9,650,000 |  |
Rate of base | 7.493% |  |
North Dakota 1 [Member] | Renewable Resource Adjustment [Member] | The 2015 Annual Update [Member] |  |  |
Approval date | Jun. 22, 2016 |  |
Effective Date Requested or Approved | Jul. 01, 2016 |  |
Annual Revenue | $ 9,262,000 |  |
Rate of base | 7.573% |  |
North Dakota 1 [Member] | Generation Cost Recovery [Member] |  |  |
Annual Revenue | $ 878,000 | 0 | 0
North Dakota 1 [Member] | Generation Cost Recovery [Member] | The 2019 Initial Request [Member] |  |  |
Approval date | May 15, 2019 |  |
Effective Date Requested or Approved | Jul. 01, 2019 |  |
Annual Revenue | $ 2,720,000 |  |
Rate of base | 2.547% |  |
South Dakota 1 [Member] | Conservation Improvement Program Costs and Incentives [Member] |  |  |
Annual Revenue | $ 851,000 | 628,000 | 598,000
South Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] |  |  |
Annual Revenue | $ 2,165,000 | 1,664,000 | 1,843,000
South Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2016 Annual Update [Member] |  |  |
Approval date | Feb. 17, 2017 |  |
Effective Date Requested or Approved | Mar. 01, 2017 |  |
Annual Revenue | $ 2,053,000 |  |
South Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2020 Annual Update [Member] |  |  |
Effective Date Requested or Approved | Mar. 01, 2020 |  |
Annual Revenue | $ 2,407,000 |  |
Request date | Oct. 31, 2019 |  |
South Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2019 Annual Update [Member] |  |  |
Approval date | Feb. 20, 2019 |  |
Effective Date Requested or Approved | Mar. 01, 2019 |  |
Annual Revenue | $ 1,638,000 |  |
South Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2015 Annual Update [Member] |  |  |
Approval date | Feb. 12, 2016 |  |
Effective Date Requested or Approved | Mar. 01, 2016 |  |
Annual Revenue | $ 1,895,000 |  |
South Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2017 Annual Update [Member] |  |  |
Approval date | Feb. 28, 2018 |  |
Effective Date Requested or Approved | Mar. 01, 2018 |  |
Annual Revenue | $ 1,779,000 |  |
South Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2019 Rate Reset [Member] |  |  |
Approval date | Sep. 17, 2019 |  |
Effective Date Requested or Approved | Oct. 01, 2019 |  |
Annual Revenue | $ 2,046,000 |  |
South Dakota 1 [Member] | Transmission Cost Recovery Rider [Member] | The 2018 Interim Rate Reset [Member] |  |  |
Approval date | Oct. 18, 2018 |  |
Effective Date Requested or Approved | Oct. 18, 2018 |  |
Annual Revenue | $ 1,171,000 |  |
South Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] |  |  |
Annual Revenue | $ (29,000) | 1,676,000 | 2,345,000
South Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] | The 2016 Annual Update [Member] |  |  |
Approval date | Oct. 26, 2016 |  |
Effective Date Requested or Approved | Nov. 01, 2016 |  |
Annual Revenue | $ 2,238,000 |  |
Rate rider rate (Kilowatt-Hour) | Boe | 0.00536 |  |
South Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] | The 2017 Annual Update [Member] |  |  |
Approval date | Oct. 13, 2017 |  |
Effective Date Requested or Approved | Nov. 01, 2017 |  |
Annual Revenue | $ 2,082,000 |  |
Rate rider rate (Kilowatt-Hour) | Boe | 0.00483 |  |
South Dakota 1 [Member] | Environmental Cost Recovery Rider [Member] | The 2018 Interim Rate Reset [Member] |  |  |
Approval date | Oct. 18, 2018 |  |
Effective Date Requested or Approved | Oct. 18, 2018 |  |
Annual Revenue | $ (189,000) |  |
Rate rider rate (Kilowatt-Hour) | Boe | (0.00075) |  |
South Dakota 1 [Member] | Phase-In Rate Plan [Member] |  |  |
Annual Revenue | $ (125,000) | $ 0 | $ 0
South Dakota 1 [Member] | Phase-In Rate Plan [Member] | The 2019 Initial Request [Member] |  |  |
Approval date | Aug. 21, 2019 |  |
Effective Date Requested or Approved | Sep. 01, 2019 |  |
Annual Revenue | $ 864,000 |  |
Rate of base | 3.345% |  |

X
- Definition Represents the approval date related to the rate rider. + References No definition available. + Details
Name: | ottr_ApprovalDate
Namespace Prefix: | ottr_
Data Type: | xbrli:dateItemType
Balance Type: | na
Period Type: | duration

X
- Definition Represents the effective date which includes requested or approved date. + References No definition available. + Details
Name: | ottr_EffectiveDate
Namespace Prefix: | ottr_
Data Type: | xbrli:dateItemType
Balance Type: | na
Period Type: | duration

X
- Definition The rate of the rate rider. + References No definition available. + Details
Name: | ottr_RateRiderRate
Namespace Prefix: | ottr_
Data Type: | num:energyItemType
Balance Type: | na
Period Type: | duration

X
- Definition The rate rider rate of the percentage of the base. + References No definition available. + Details
Name: | ottr_RateRiderRatePercentageOfBase
Namespace Prefix: | ottr_
Data Type: | num:percentItemType
Balance Type: | na
Period Type: | duration

X
- Definition Represents the request date related to the rate rider. + References No definition available. + Details
Name: | ottr_RequestDate
Namespace Prefix: | ottr_
Data Type: | xbrli:dateItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss). + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 22 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 32 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=115929826&loc=d3e8933-108599 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 280 -SubTopic 10 -Section 50 -Paragraph 22 -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=115929826&loc=d3e8736-108599 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 220 -SubTopic 10 -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03(1)) -URI http://asc.fasb.org/extlink&oid=116634182&loc=SL114868664-224227 + Details
Name: | us-gaap_Revenues
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Details
Name: | dei_LegalEntityAxis=ottr_OtterTailPowerCompanyMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RegulatoryAgencyAxis=ottr_Minnesota1Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_PublicUtilitiesRegulatoryProceedingAxis=ottr_ConservationImprovementProgramCostsAndIncentivesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2018IncentiveAndCostRecoveryMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2017IncentiveAndCostRecoveryMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2016IncentiveAndCostRecoveryMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2015IncentiveAndCostRecoveryMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_PublicUtilitiesRegulatoryProceedingAxis=ottr_TransmissionCostRecoveryRiderMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2018AnnualUpdateScenarioAMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2018AnnualUpdateScenarioBMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2017RateResetMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2016AnnualUpdateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_PublicUtilitiesRegulatoryProceedingAxis=ottr_EnvironmentalCostRecoveryRiderMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2018AnnualUpdateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_PublicUtilitiesRegulatoryProceedingAxis=ottr_RenewableResourceAdjustmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2019AnnualUpdateRevisedMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RegulatoryAgencyAxis=ottr_NorthDakota1Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2019AnnualUpdateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2018RateResetForEffectOfTCJAMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2018SupplementalUpdateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2017AnnualUpdateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2020AnnualUpdateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2015AnnualUpdateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_PublicUtilitiesRegulatoryProceedingAxis=ottr_GenerationCostRecoveryMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2019InitialRequestMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RegulatoryAgencyAxis=ottr_SouthDakota1Member
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2019RateResetMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_TypeOfArrangementAxis=ottr_The2018InterimRateResetMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_PublicUtilitiesRegulatoryProceedingAxis=ottr_PhaseInRatePlanMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |