# Pay note: {job.title} at All employers

<!-- Placeholders:
     {job.<field>} = that field of the job object from `active-ats` (api.md, Response fields)
     {profile.<path>} = candidate-profile.json at that dotted path; `[]` = each item of a list
     {match.<field>} = this job's object in fit.json (tier, required_met, gaps, judgements, ...)
     {employer.<path>} = employer.json at that dotted path
     Anything in <angle brackets> is yours to write, from those sources only. -->

<!-- Only what the posting states. If ai_salary_* is null, write "pay not stated" and stop; never estimate
     from the title, the location or other postings. Conversions are flagged as yours. -->

| | Posting | Your floor |
|---|---|---|
| Range | {job.ai_salary_min_value} - {job.ai_salary_max_value} ({job.ai_salary_value} when a single figure) | {profile.candidate.pay_floor.value} |
| Unit | {job.ai_salary_unit_text} | {profile.candidate.pay_floor.unit} |
| Currency | {job.ai_salary_currency} | {profile.candidate.pay_floor.currency} |

Converted (my arithmetic, 2080 h/year): <value, or "same unit, no conversion">.

Floor vs range: <one of: "above the top of the range (excluded)" · "your floor is inside the posted range; the
bottom is below it" · "at or below the bottom of the range">. Flags from fit.py: {match.flags}.

Hours: {job.ai_working_hours} per week when stated. Arrangement: {job.ai_work_arrangement}. Benefits the
posting lists: {job.ai_benefits}.

Across All employers: {employer.pay.share_with_pay} of postings state pay; units seen: {employer.pay.units[].value}.
