METHODOLOGY

How we build our salary intelligence.

Salary numbers carry weight — they shape negotiations, expectations, and career decisions. We want you to understand exactly where every range on our salary intelligence page comes from, what it does and doesn’t claim, and where we’re still building trust over time.

Three data sources, layered by priority

Every benchmark we publish comes from one of three streams. When more than one stream covers the same role and territory, we display the highest-priority source.

CuratedFounder-curated benchmarks
Hand-compiled by the SmartJobLinks team from publicly verifiable sources, primarily:
  • Government salary scales — Government of Jamaica Ministry of Finance monthly-paid scales, Guyana Ministry of Education teacher scales, public-service pay orders across the region
  • National statistical agencies — Statistical Institute of Jamaica (STATIN), T&T Central Statistical Office, Barbados Statistical Service, Bahamas Department of Statistics
  • Ministries of Labour minimum-wage and sector wage orders (Jamaica, T&T, Barbados, Bahamas, Guyana)
  • Multi-country compensation databases — PayScale, SalaryExpert / ERI, Paylab, SalaryExplorer, Glassdoor (used with sample-size caveats)
  • Remote-tech surveys for WORLDWIDE rows — Stack Overflow Developer Survey, Levels.fyi, Plane.com regional benchmarks
Each row carries the originating source and date in the admin database; we surface the source attribution on hover. These carry a Curated badge on the page.
EstimateAI-assisted starter estimates
For roles or territories where our curated dataset doesn’t yet have coverage, we seed initial ranges based on our team’s market knowledge of Caribbean compensation norms, calibrated against publicly-available reference points. These are flagged with an Estimatebadge so you know they’re less precise than curated rows. Each one gets promoted to a curated row when we find a citable public source for it.
AggregateLive job-listing aggregate
Every job published on SmartJobLinks with a parseable salary string contributes to a rolling aggregate. The page shows a Based on N recent listings caption when this is the source. Sample size is shown transparently — we want you to weigh a benchmark differently when it’s based on 3 listings vs. 30.

How we compute the ranges

For aggregated benchmarks, we publish three numbers per role: a low (25th percentile), mid (median), and high (75th percentile). We use midpoints of each listing’s range as the sample (a job posted at "$80k–$120k" contributes $100k to the median calculation).

The percentile approach is deliberately conservative — it tells you what most actual offers look like rather than chasing outliers. Anomalies like a single "$10k–$300k" listing don’t wildly distort the median.

We require a minimum of 3 parseable listingsper (role, country) bucket before publishing an aggregate. Smaller samples stay hidden — we’d rather show nothing than mislead.

Currency conversion

Salaries are stored and displayed in their native currency wherever possible. USD equivalents shown alongside (and used for the Sort by Salary control) are computed using exchange rates from open.er-api.com, refreshed automatically every night. Caribbean currencies covered: TTD, JMD, BBD, BSD, GYD, DOP, XCD, KYD, HTG. Majors covered: EUR, GBP, CAD, AUD, NZD.

USD conversion is for comparison only — actual purchasing power varies by territory and isn’t captured here.

Salary text parsing

Job postings list salary in dozens of formats. Our parser handles the common ones confidently and skips the rest rather than producing garbage:

  • $75k - $95k → $75,000–$95,000 USD annual
  • £40k - £60k → £40,000–£60,000 GBP annual
  • TTD 8,000 - 12,000 monthly → TTD 8,000–12,000 monthly
  • $18 - $22/hr → $37,440–$45,760 USD annual (assuming 40 hrs × 52 weeks)

Listings marked "Negotiable", "Competitive", "DOE", or with no number are excluded. So are listings where the only number is small and uncurrencied (we treat "5+ years experience" as years, not dollars).

What we don't claim

We try to be honest about the limits of any salary dataset, ours included:

  • Caribbean coverage is thinner than US/EU. Public salary data is less abundant for the region. We compensate by cross-referencing multiple sources and flagging estimates clearly.
  • Aggregates are biased toward remote-friendly roles. Our top import sources (Remotive, We Work Remotely, RemoteOK) are remote-tech-heavy. Local-only roles in Caribbean territories rely more on curated/estimate data until our native employer base grows.
  • USD conversion is informational, not financial. Rates fluctuate daily; we update once per 24 hours. Real-world FX cost (spreads, fees) isn’t included.
  • Numbers are guidance, not guarantees. Actual offers vary widely by employer, experience, qualifications, equity mix, and negotiation. Treat our ranges as a reference point, not a ceiling or floor.

How often it updates

  • Imported-job aggregates — refreshed every night, shortly after new job imports complete.
  • Exchange rates — refreshed every night, on the same overnight pass.
  • Curated benchmarks — reviewed by the SmartJobLinks team when meaningful market shifts are observed (typically quarterly).
  • AI-assisted estimates — converted to curated rows opportunistically as we get better data.

Found something wrong?

Salary data benefits from public correction. If a published range looks wrong to you — either too high or too low — tell us. Email info@smartjoblinks.com with the role, territory, and what you’re seeing in the wild (anonymized is fine — "mid-level dev role at a US fintech, remote from Trinidad, offer was X" is exactly the kind of input that improves the dataset for everyone).