Portland Oregon ReviewsSearch
Menu

Method version 1.1

How we review and rank Portland electricians

Every business on our Portland list passed the same four record checks and was scored by the same formula. This page sets out every rule. The weights are read from the published data file, so the page and the data cannot disagree.

Method version
1.1
Applies to
Portland electricians, run of November 8, 2026
Weights in this run
Rating 35, volume 25, recency 10, CCB license history 20, bond and insurance 10 (total 100)
Manual score changes
None

01What "review" means here

We review public records and what each business publishes about itself. We did not inspect work, call businesses, ask for quotes or hire anyone. Nothing on this site describes the quality of a business's work.

02Four gates before a business is ranked

A business is ranked in Portland only if all four gates pass on the run date.

  1. Google listing. The business appears in our Google Maps searches for Portland with an electrical-trade category, as its primary category or an additional one.
  2. Portland service, from a business source. Its Google Business Profile address is in Portland, or its own website names Portland (or the Portland metro or area) as somewhere it serves. We keep the page URL and the short phrase.
  3. Active CCB license. It matches a license in the Oregon CCB Active Licenses dataset. Matching evidence, strongest first: the CCB number shown on the business's own website; the same phone number; the same legal name or DBA plus address. Every match records its method and evidence.
  4. Active BCD electrical contractor license. It matches an Oregon BCD license of type C-Electrical Contractor with status Active. In Oregon an electrical contractor needs this BCD license in addition to the CCB license (Oregon BCD).

One entry per CCB license. When several Google listings that pass the first two gates match one license, we use the listing with the most Google ratings. If two have the same count, a Portland address wins, then the lower Google listing number. Ratings are never added together across listings. The other listings stay in the data and in the evidence record, but they are not ranked twice. We rank licensed companies, not single branch offices.

Businesses that fail a gate are not ranked and not named. The ranking page publishes how many listings passed each gate. A failed match is a limit of public data and of our matching. We never describe it as a licensing problem.

03The score, out of 100

Five parts, applied the same way to every ranked business. RUN is the run date in Pacific time (2026-11-08 for the current ranking).

ComponentMaxFormula
Google rating35If n = 0: 0 points. Otherwise:
adj = (n * r + 10 * 4.0) / (n + 10)
points = 35 * clamp((adj - 3.5) / 1.5, 0, 1)
Rating volume25points = 25 * min(1, log10(1 + n) / log10(1 + 500))
Review recency10Days from the newest Google review to the run date: up to 30 days, 10; up to 90 days, 8; up to 180 days, 5; up to 365 days, 2; more than 365 days or no reviews, 0
CCB license history20years = (run date - first issued) / 365.25
points = 20 * min(1, years / 20)
Bond and insurance on the CCB record105 if a bond amount is listed with an expiry on or after the run date; 5 if a liability insurance amount is listed with an expiry on or after the run date

r is the Google rating (1 to 5) and n is the number of Google ratings on the pull date. The weights in this table are read from the published data file for this run.

Why the adjustment. The rating is pulled toward 4.0 as if the listing had 10 extra 4.0-star ratings, so a rating built on a few reviews counts for less than the same rating built on many.

No Google ratings. With no ratings (n = 0) there is no rating to adjust, so the rating, rating volume and review recency parts all earn 0. The 4.0 starting value only adjusts real ratings. It never gives points by itself.

Which bond and insurance. The CCB dataset lists a bond and an insurance entry for each endorsement on a license. We read them from the license's primary endorsement: residential first, then commercial, with lead-based paint last.

Ratings cover the whole Google listing. Some businesses that pass the gates also do heating, cooling or plumbing work. Their Google rating, rating count and review dates describe the whole listing. We have not checked that those reviews are about electrical work, and the formula does not try to adjust for it.

04When data is missing

  • Not listed in the source. If a source does not list a value, such as Google ratings on a listing with none, or a bond or insurance amount the CCB dataset does not show, that part earns 0 points. The page says "not shown in" and names the source. A blank field is not treated as a finding about the business.
  • Not retrieved because of a failure on our side. If a request fails (for example, the review-date request), we retry and request the data again. If it is still unavailable, that part is removed for that business only, and its score becomes 100 * earned / available maximum. An unavailable source is never treated as zero. The entry is labeled "partial data" and names the removed part, and the ranking page states how many entries are partial. Rescaling can change the order compared with full data, so partial entries are not fully comparable.
  • Not collected for anyone. Complaint history is not part of the formula for any business.

05Where contact details come from

The address, phone number and website shown for each business come from its Google listing or its own website. CCB and BCD records list official mailing addresses. We use those only to match records and never show them as where a business is located.

06CCB license history is not business age

The license history part measures the time since the matched CCB license was first issued (the dataset's orig_regis_date). The dataset does not show whether the license was held without a break, and a business may be older than its current license. We never present this number as the age of a business.

07Ranking order and ties

Businesses are sorted by unrounded score, highest first. Two scores that differ by less than 0.000000001 are a tie, broken in this order:

  1. more Google ratings;
  2. then the earlier CCB first-issued date;
  3. then the lower CCB license number.

Scores display to one decimal, so two businesses can show the same score at different ranks.

08No manual adjustment

No score is changed by hand. The only manual decisions are about data matching: which license belongs to which Google listing. Each one is recorded with its evidence, and every evidence record on the ranking page shows how that business's licenses were matched.

09Crewsive clients

Smiley Electric is a Crewsive marketing client with a separate affiliated feature. Active promoted businesses are excluded from the scored comparison, its source-record list, schema and ranking downloads. Smiley passed the public-record gates; this exclusion is a publishing policy, not a safety judgment. The other businesses retain their computed scores and their positions are renumbered. Publication policy version 2 took effect on November 9, 2026.

No business in the current Portland ranking is a Crewsive client.

10Data sources and dates

Dates for the current Portland run, in Pacific time.

SourceDates for this runAccess
CCB Active Licensesdata.oregon.gov g77e-6bhs, public domainUpdated November 8, 2026 at 10:09 AM PST; pulled November 8, 2026 at 8:54 PM PSTDataset page; Socrata API
Building Codes Division - Active Contractor/Individual Licensesdata.oregon.gov vhbr-cuaq, public domainUpdated November 6, 2026 at 5:22 PM PST; pulled November 8, 2026 at 8:56 PM PSTDataset page; Socrata API
Google Maps listingsDataForSEO Google Maps SERP live/advancedPulled November 8, 2026 at 8:57 PM PSTPaid API; each business links to its Google profile
Google review datesDataForSEO Google Reviews (newest 10, dates only)Pulled November 8, 2026 at 9:03 PM PSTPaid API; dates only, review text deleted before storage
Business websitesCrewsiveRankingsBot/1.0 (+https://localprosranked.com/contact)Checked November 8, 2026 to November 8, 2026Polite crawl; robots.txt respected; at most 8 pages per site

11What we do not collect, and why

  • CCB complaint history. The CCB lookup site (search.ccb.state.or.us) and the state's older licensing site (www4.cbs.state.or.us) disallow automated access in their robots.txt files, so we do not collect from them. The CCB open dataset has no complaint column. Every evidence record links to the CCB lookup so you can read complaint history yourself.
  • Google review text and reviewer details. We keep only the dates of the newest reviews. Review text is deleted before anything is stored.
  • Prices, quotes and quality of work. We did not contact or hire any business, so none of this is measured.

12Official lookups

Check any business yourself with the state's own tools:

Our license guide walks through both lookups step by step.

13Worked example

A business with a 4.8 rating from 120 ratings, a newest review 12 days old, a CCB license first issued 11.5 years before the run date, and a current bond and insurance:

StepWorkingPoints
Google ratingadj = (120 * 4.8 + 10 * 4.0) / 130 = 4.73846; 35 * (4.73846 - 3.5) / 1.528.8974
Rating volume25 * log10(121) / log10(501) = 25 * 2.08279 / 2.6998419.2862
Review recencyNewest review 12 days before the run date10
CCB license history20 * 11.5 / 2011.5
Bond and insuranceBond and liability insurance both listed and current10
TotalDisplayed to one decimal as 79.779.6836

14Version

Method version 1.1, used for the run of November 8, 2026. Version 1.1 changed one rule before this site first published: when several Google listings match one license, the listing with the most Google ratings is used. Version 1.0 put a Portland address first, which on this run would have scored some companies from a small secondary listing. Weights and formulas did not change. Any later change to a rule gets a new version number here and in the data files.

What we check

What we check across 951 published business records
SourceWhat it showsCoverageSource dates
Google listingListed contact details, rating, count and review date951 / 9512026-11-09
Oregon CCBDated license, endorsement, bond and insurance fields514 / 9512026-11-08
Oregon BCDContractor license class and status138 / 9512026-11-08
Business websiteServices stated by the business; service quality is not established63 / 9512026-11-08

Not checked: workmanship, price fairness or first-hand testing.

Town and community pages · local-1.0

A small edge for a local address.

Town rankings use the same regional electrician research, then give businesses with a listing address in that town a two-point edge. This is an editorial weighting choice, not a measured improvement in workmanship.

Town score = (regional score × 0.98) + local address bonus

  • 98 points: the original regional score supplies 98% of the total.
  • 2 points: the Google listing city matches the town. A website service-area statement qualifies a business for the list but earns no address bonus.
  • Order: highest unrounded town score first. Ties use higher unrounded regional score, more Google ratings, then the smaller numeric Google listing ID. Scores display one decimal.

For example, two businesses with a regional score of 90 receive 90.2 with a matching local address, or 88.2 with service-area evidence only. Google star ratings and regional scores stay unchanged.

This is an address-based local preference, not driving distance, response time or a promise of availability. A business outside the town may be closer to your street. No missing address earns a bonus. These are rankings of matched records, not a complete town-wide market survey. The Portland and Salem regional pages retain their original scores. Separate promotional features are excluded.

Other service trades

Review-data rankings across all trades.

The other service categories now have numbered rankings, top lists and source breakdowns. The following review-data method applies to those categories. The original Oregon electrician comparison keeps its additional license gates and components.

Method reviews-1.0

How the score is calculated.

Each business receives the same calculation. The rating, volume and recency components follow our electrician formula, then normalize their 70 available points to 100. License history and bond/insurance points are not used here. The original Oregon electrician comparison uses additional eligibility and license components, so its score is not directly comparable to this review-data score.

Rating · 35 points: with n ratings and average r, adjusted rating a = (n × r + 10 × 4.0) ÷ (n + 10). Points = 35 × clamp((a − 3.5) ÷ 1.5, 0, 1). With zero ratings, award zero.

Volume · 25 points: 25 × min(1, log10(1 + n) ÷ log10(501)).

Recency · 10 points: newest review within 30 days: 10; 90 days: 8; 180 days: 5; 365 days: 2; older or no ratings: 0.

Final score: 100 × (rating + volume + recency points) ÷ 70. Display one decimal; sort by the unrounded value. Ties use more Google ratings, then the lower numeric Google listing ID.

A missing review-date retrieval excludes a rated listing until resolved; it does not become a zero. No ratings earns zero. Credential matching is separate context and does not affect this score. No score or rank is changed by hand. This is a public-review-data comparison, not a workmanship or safety assessment.

Two questions, two methods

Portland Oregon Reviews orders dated records with the published score. Local Pros Ranked uses job-specific service evidence with no overall score. A business can lead one comparison and not qualify for a particular job category. Crewsive LLC owns both methods; neither is an independent endorsement of the other.

Use this reference

Cite this page

Crewsive LLC. “How we review and rank Portland electricians | Portland Oregon Reviews.” Portland Oregon Reviews. Content updated 2026-11-10. https://portlandoregonreviews.com/how-we-rank

For ranking data, also state the data snapshot date (2026-11-08) and method version. A citation is a reference, not an endorsement.