§PlainStatute

Work · Pay transparency

Pay Transparency Law in Ohio

Whether an employer in Ohio must disclose the salary range, where it has to appear, who it covers, and what to do if a posting hides the pay. This is separate from your right to discuss wages with coworkers. Cited to the statute.

Confirmedagainst Ohio Rev. Code Chs. 4111, 4113 · code chapter read; no provision sets this — the law is silentReviewed by Cholilurrohman · July 2026
Pay transparency law · Ohio
Ohio has no statewide pay-transparency law, so whether a salary range must appear in a job posting depends on the Ohio city. Cleveland and Columbus require the range in the posting itself, while Cincinnati and Toledo owe the pay scale only on request and only after a conditional offer.
Depends on the city
Range required?Depends on the city
City threshold15 or more employees in the city
StatuteOhio Rev. Code Chs. 4111, 4113

What the pay transparency law requires in Ohio

Who must disclose the range, where it has to appear, and the situations the rule does not reach.

Recent or pending change

Ohio’s pay-transparency rules are municipal and still expanding, with Cleveland effective in late 2025 and Columbus enforcement not beginning until January 1, 2027. Cincinnati’s current codified text could not be re-verified from a primary source. Confirm the current ordinance for the specific city before relying on this.

What the law requiresWhat it means
Cleveland puts the range in the adUnder Cleveland Codified Ordinances 669.02(c), an employer with fifteen or more persons within the City of Cleveland must provide the salary range or scale in the notification, advertisement, or other formal posting that offers the chance to apply. The rule took effect on October 27, 2025.
Columbus also requires a range, and it must be reasonableColumbus City Codes 2335.03(C) requires a reasonable salary range or scale in employment postings. Reasonableness is judged against six listed factors, including the flexibility of the employer’s budget, the anticipated range of applicant experience, and market research on comparable positions.
Cincinnati and Toledo disclose only on requestCincinnati Municipal Code 804-03(c) and Toledo Municipal Code 768.02(c) require the pay scale only on reasonable request, and only for an applicant who has already received a conditional offer. A candidate screened out before that point never sees the number.
Every one of these cities also bans salary-history questionsAll four ordinances make it an unlawful practice to ask about salary history, to screen applicants on it, or to set pay by it. Each ordinance reaches only an employer using the services of fifteen or more employees within that city.
The Ohio Revised Code is silentOhio Revised Code Chapters 4111 and 4113 were read in full and contain no salary-range posting rule and no salary-history rule. In Ohio these duties come entirely from city ordinances, not from state law.
Where it does not applyWhat it means
Fewer than fifteen employees in the cityEach ordinance counts people employed within the city, not company-wide. A national employer with only a handful of workers in Toledo falls outside Toledo’s rule, and the same local count applies in each of the four cities.
Internal transfers and promotionsAll four cities exclude an applicant seeking an internal transfer or promotion with a current employer. Columbus also excludes the postings for such positions, which the other three do not spell out.
Collective bargainingA position whose pay is set through collective bargaining procedures is excluded in each of the four cities.
Columbus is enacted but not yet enforcedColumbus Ordinance 2898-2025 provides that the posting requirement in 2335.03(C) shall not be enforced until January 1, 2027. The chapter is law now, but the posting duty has no enforcement behind it until that date.
The state has not preempted the citiesOhio Rev. Code 4113.85(B) preempts local rules only on matters like scheduling and fringe benefits, and 4111.02 only on minimum wage. Neither reaches a hiring inquiry or the content of a job posting, which is why the four city ordinances stand.
There is no federal posting mandate
No federal law requires an employer to publish a salary range in a job posting. Pay-transparency rules are set state by state, and in Ohio they are set city by city. That is why the same employer can face a posting duty in Cleveland or Columbus and none in a town with no ordinance.
Ohio has no statewide salary-history or pay-secrecy law
Unlike Michigan, Ohio has no statute protecting an employee who discusses wages with a co-worker, and unlike some states it has no statewide salary-history ban. Ohio’s equal-pay provision, 4111.17, is a pay-discrimination rule and says nothing about disclosure or postings.
Enforcement differs by city
Cincinnati and Toledo give the applicant a private cause of action for damages and attorney’s fees, with a two-year limit. Cleveland routes complaints to an administrative wage board and caps civil penalties for a posting violation. Columbus uses its Community Relations Commission.
In plain words
A quick key to the legal terms used on this page.
Preempted
When a state law overrides and blocks cities or counties from making their own rules on the same subject.

What you can do right now

Concrete, neutral steps if a job in Ohio hides the pay range. This is legal information, not legal advice.

  1. Find out which Ohio city the job is in

    The answer turns on the city, so identify where the work will be performed. A job in Cleveland or Columbus is treated very differently from one in a town with no ordinance.

  2. In Cleveland or Columbus, expect the range in the posting

    If a covered employer posts a job in Cleveland or Columbus with no salary range, the posting likely does not comply. The range must be on the posting, not supplied only later.

  3. In Cincinnati or Toledo, ask after a conditional offer

    These cities owe the pay scale only on request, and only once you hold a conditional offer. Ask for it in writing at that stage so you have a record.

  4. Use the city’s enforcement route

    If an employer ignores the local rule, file with the city body that enforces it, which in Cincinnati and Toledo may include a private lawsuit for damages.

Labor rights help in Ohio

If a posting omits a required pay range, the state labor department takes complaints and can explain how the rule is enforced and any penalty.

Ohio Department of Commerce, Wage and Hour

This is general legal information, not legal advice. Coverage turns on employer size and where the job can be performed, so confirm your situation against the statute.

What workers in Ohio get wrong about pay transparency

Ohio is the state where this question has no single answer. There is no Ohio Revised Code section that requires a salary range in a job posting, and none that bans salary-history questions. Chapters 4111 and 4113, the two chapters that would carry such a rule, were read in full and are silent. What Ohio has instead is four overlapping city regimes. Cleveland, under Codified Ordinances 669.02(c) effective October 27, 2025, and Columbus, under City Codes 2335.03(C), both require the salary range or scale to appear in the posting itself. Cincinnati and Toledo take a lighter approach, owing the pay scale only on reasonable request and only after a conditional offer, so a candidate who is screened out early never learns the number. All four ordinances share one figure, fifteen or more employees within that city, and all four also forbid salary-history questions. The state has not stepped in to override any of this, because Ohio’s employment-preemption statute reaches only scheduling, fringe benefits, and minimum wage, not hiring inquiries or the content of an advertisement. So in Ohio the honest answer is to look at the city first. This is legal information, not legal advice.

Common questions

Does Ohio require salary ranges in job postings?

Not at the state level. Ohio has no statewide pay-transparency law. Cleveland and Columbus require the salary range in the posting, while Cincinnati and Toledo owe the pay scale only on request after a conditional offer.

Which Ohio cities require pay ranges in postings?

Cleveland, under Codified Ordinances 669.02(c), and Columbus, under City Codes 2335.03(C). Both apply to an employer with fifteen or more employees within the city. Columbus enforcement is deferred until January 1, 2027.

What is the employee threshold for the Ohio city rules?

Fifteen or more employees within that city. The count is local, so a large company with only a few workers in a given Ohio city may fall outside that city’s ordinance.

Do Cincinnati and Toledo require a salary range in the ad?

No. Cincinnati and Toledo require the pay scale only on reasonable request, and only for an applicant who has already been given a conditional offer of employment, so the number is not in the posting itself.

Does Ohio ban salary-history questions?

Not statewide. But all four of the cities with ordinances, Cleveland, Columbus, Cincinnati, and Toledo, make it unlawful for a covered employer to ask about or rely on an applicant’s salary history.

Primary source
Ohio Rev. Code Chs. 4111, 4113 (no pay-transparency provision)
Ohio Revised Code, Chapters 4111 and 4113, plus the Cleveland, Columbus, Cincinnati, and Toledo municipal codes · codes.ohio.gov
Cholilurrohman
Every figure on this page is checked line-by-line against the current statute. Editorial standards →

Not legal advicePlainStatute provides plain-language summaries of public law for general information only. This is not legal advice. Statutes change; always confirm current requirements with the official source linked above before acting.

Embed this explainer

Paste this on your own site. The embed stays in sync with this page, so any update here shows up there too.

<iframe
  src="https://plainstatute.com/embed/statute/pay-transparency-law--ohio"
  title="Ohio statute explainer by PlainStatute"
  loading="lazy"
  height="640"
  style="width:100%;max-width:640px;border:1px solid #e4e2d9;border-radius:12px"
  data-plainstatute="pay-transparency-law--ohio"></iframe>
<script>
  window.addEventListener('message', function (e) {
    if (e.origin !== 'https://plainstatute.com') return;
    var d = e.data || {};
    if (d.type !== 'plainstatute:embed-height') return;
    var f = document.querySelector('iframe[data-plainstatute="' + d.slug + '"]');
    if (f) f.height = d.height;
  });
</script>