# The Bootcamp Outcomes Report Decoder, Metric by Metric

*You will be able to read a bootcamp's outcomes page, name what each number proves, flag the inflation tactic inside it, and decide whether to trust it.*

- Canonical URL: https://www.refolk.ai/candidates/guides/bootcamp-outcomes-report-decoder
- Pillar: Reading the market
- Format: Reference
- Published: 2026-09-04
- Last reviewed: 2026-09-04
- Reading time: 15 min

Before you pay for a bootcamp, certificate, or retraining program, you want to know whether its advertised placement and salary numbers are real. This is the document you keep open while reading one specific outcomes page: one row per metric, what it proves, and the exact way it gets padded. Read it and you will leave knowing whether the report in front of you is honest, not which brand ranked highest.

Every ranking site tells you to "verify outcomes" and "look for third-party audits." None of them decodes the line items on the page you are actually staring at. That is the gap this fills.

## What each outcomes metric actually proves

An outcomes report is a small set of numbers, and each one answers a narrow question. The trouble is that programs advertise the flattering number and let you assume it answers a broader one. Match each metric to the claim it can honestly support before you read the value.

The Council on Integrity in Results Reporting (CIRR) is a standardized reporting framework a coalition of bootcamps formed in 2016 to publish graduation and placement data in one template. Its definitions are the reference point for everything below, because they were written to close the loopholes.

| Metric | What it honestly proves | What it cannot prove |
|---|---|---|
| Graduation rate | Share of enrollees who finished | Anything about jobs |
| In-field employed rate | In-field hires divided by all graduates | That the roles are full-time |
| Full-time in-field row | Real 30+ hour, 6+ month jobs | Nothing padded; this is the honest core |
| Placement window | Timing of the measurement | That the rate holds at 180 days |
| Median salary | Middle base pay of respondents | Pay of non-responding graduates |

The single most useful number on any page is the full-time in-field row: graduates working 30 or more hours for six or more months in a role related to the training. CIRR requires schools to break "employed in-field" into exactly that row, plus a separate row for apprenticeship, internship, and contract, plus a third for short-term, part-time, and freelance. When a program collapses all three into one "employed" figure, it is hiding which row carried the weight.

> **Rule:** Demand the full-time in-field row
>
> Any placement headline you cannot decompose into full-time in-field, contract, and freelance rows is a blend by design. Ask for the CIRR-style breakdown or treat the headline as unverifiable.

## The denominator: who got removed before the math

The denominator is who the rate divides by, and it is the biggest lever on the page. A 90% headline is often 90% of the 70% who stayed in the funnel, which is really a 63% cohort outcome wearing a bigger number.

The mechanism is simple. Some schools count only "job-seeking graduates" and quietly exclude anyone who did not use career services, did not apply to enough jobs, or stopped responding. If 30% of a cohort opted out of job support, removing them turns a genuine 70% success rate into a 90% headline. Some schools have omitted as much as 40% of graduates from their placement tallies.

CIRR blocks this by fixing job-seeking status before enrollment, so a graduate cannot be relabeled a non-seeker after the fact to improve the rate. The documented swing from denominator games alone is roughly 20 points, from a real 70% to a headline 90%.

**40% - Share of graduates some schools omitted from placement tallies**

Removing unresponsive or low-application graduates shrinks the base and inflates the surviving rate.

Sheree Speakman, a former CIRR CEO, gives the practical threshold: be suspicious of any non-job-seeking rate above 10% of the cohort. Below that, exclusions are plausible noise. Above it, the rate no longer describes the class you would be joining.

### How to read a denominator honestly

- Divide the numerator by **all graduates**, not by job-seekers, and recompute the rate yourself.
- Ask when job-seeking intent was recorded. Pre-enrollment is honest; post-graduation invites relabeling.
- Demand the cohort size. A rate with no denominator is a rate you cannot check.

A program placing 91% of 20 graduates tells a very different story from one placing 91% of 400. Always find the count behind the percentage.

## The window: the same students, a different number

The placement window is the time after graduation the rate is measured over, and it moves the number more than honesty does. CIRR reports employment at 90, 180, and 360 days for exactly this reason: the same graduates look very different at each.

Codesmith's own CIRR report is the cleanest illustration, because it is one honest school reporting all three windows on identical students.

| CIRR window | In-field employed | Full-time employee only |
|---|---|---|
| ~90 days | 37.8% | 35.7% |
| 180 days | 70.1% | 66.1% |
| 360 days | 81.0% | 77.4% |

The 360-day in-field figure is about 2.1 times the earliest window: 81.0% versus 37.8%, a 43-point spread on the same class with no padding whatsoever. That is the size of the effect before anyone cheats.

> Two honest reports can differ by 43 points before a single graduate is miscounted, purely on window choice.

The de facto industry standard headline window is 180 days. Tech Elevator, for example, defines placement as an accepted offer in a technology role within 180 days of graduation. When a program advertises a rate "within one year," it has chosen the widest, most flattering window. Convert it back to 180 days in your head and expect a materially lower number.

#### How a headline rate narrows when you decode it

| Stage | Figure | Note |
| --- | --- | --- |
| Advertised "employed" rate | 90% | blended, wide window |
| Divide by all graduates | 70% | denominator restored |
| In-field only | 66% | any-job stripped out |
| At 180 days, full-time | 64% | the number to enroll on |

*Each honest correction removes padding until you reach the number that describes your likely outcome.*

## The numerator: in-field, or any job at all

The numerator is who counts as placed, and the trick is counting an out-of-field job as a win. A rate that says "employed" with no "in-field" qualifier can include an admin role at a tech company, or a job the graduate could have gotten without the program.

This is where Refolk's own index is useful, because it shows where graduates actually land rather than what the brochure claims.

| Market | Matching profiles | Sample top current titles | Notable current employers |
|---|---|---|---|
| United States | 96 | Mostly non-tech: retail, food, tax, postal, customer service; one Junior Software Engineer | Target, Home Depot, Boeing |
| United Kingdom | 9 | Mixed: Junior Web Developer, Service Desk Analyst, Police Constable, Live Sound Engineer | Metropolitan Police, self-employed |

In Refolk's index, 96 US profiles self-describe as coding bootcamp graduates, and in a 25-profile sample the most common current employers were the retailers Target and Home Depot, not tech firms. Out-of-field titles dominated. Treat this as directional given the small sample, but it is direct evidence that "employed" and "in-field employed" describe different populations. An any-job numerator can absorb every one of those retail roles and still call them placements.

**96 - US profiles in Refolk's index self-describing as coding bootcamp graduates**

In a 25-profile sample, top current employers were retailers, not tech companies.

To check whether a program's own graduates ended up in-field, you do not have to trust the outcomes page. You can search for its named alumni directly and read their current titles.

Ask me this: `Graduates of a US coding bootcamp who currently hold non-tech roles like retail, customer service, or food service` - [run the search](https://www.refolk.ai/start?q=Graduates%20of%20a%20US%20coding%20bootcamp%20who%20currently%20hold%20non-tech%20roles%20like%20retail%2C%20customer%20service%2C%20or%20food%20service).

*Returns self-described bootcamp graduates whose current job titles sit outside tech, the population an "any-job" numerator quietly counts as placed.*

[Refolk](/candidates) writes your resume from your own history and scores how well you fit a posting, but here the same index doubles as a fact-check on where a program's graduates actually work.

## The salary line: median, base, and response rate

A salary claim is only as honest as the share of graduates behind it. The three questions that decode it are median versus average, base-only versus total compensation, and what percentage of the cohort the figure draws from.

CIRR's median salary is the middle value when all salaries are sorted, and it counts base compensation only, excluding bonuses, equity, relocation, and other non-base pay. Averages are inflated by a long upper tail. Course Report respondents report a $65,000 median first-job salary against a $70,698 average, and average salaries run higher than medians at every step, which is exactly the signature of a long upper tail pulling the mean up.

The response rate is the decisive detail. Flatiron's advertised $74,447 average salary was drawn only from graduates who were full-time employed, and those were 58% of classroom graduates and 39% of online graduates. The missing 42% and 61% are precisely the graduates who would drag a true average down. A high average built on a thin, employed-only base is not a lie about arithmetic; it is a lie about who is in the sample.

> **Watch out:** The average-salary halo
>
> A high average can mask a low median and a thin response rate. Ask for the median, confirm it is base-only, and find what share of graduates the figure is based on before you believe it.

## Audited versus self-reported: how big the gap gets

The gap between what programs advertise and what audited data shows is now quantified, and it is large. CIRR audited data shows 64% to 78% in-field employment within 180 days under strict full-time definitions, while self-reported rates from unaudited schools run 70% to 90%, frequently counting any job rather than a coding role.

The extreme cases come from enforcement records, where regulators forced the real numbers into daylight.

| Program | Advertised | Verified or actual | Window |
|---|---|---|---|
| Flatiron (2017) | 98.5% employed | Full-time only = 58% of classroom grads | 180 days |
| BloomTech (site) | 71% to 86% placed | Near 50%, as low as 30% internally | 6 months |
| BloomTech (BPPE filing) | Not stated | 65% (2021), 47% (2022) in-field | Calendar year |
| Industry self-reported | 70% to 90% | CIRR audited 64% to 78% in-field | 180 days |

BloomTech, formerly Lambda School, is the widest documented gap. It advertised that 71% to 86% of students were placed within six months while its nonpublic reporting to investors consistently showed placement closer to 50%. On April 17, 2024 the CFPB ordered BloomTech and CEO Austen Allred over the misrepresentation. Its own California BPPE regulator filing reported in-field placement of 65% in 2021 and 47% in 2022. The roughly 35-point gap only surfaced because investor filings existed to contradict the website.

Flatiron is the other landmark case: it claimed 98.5% employment within 180 days in early 2017, and the New York Attorney General announced a $375,000 settlement that October.

One more fact makes the audited gap matter: audited reporting is rare. As of early 2026, only about three schools publish CIRR-verified, third-party-audited outcomes, including Code Platoon and Codesmith. So "no audited report" is the normal case, not a scandal. It means most outcomes pages are self-attested by default, and absence of an audit is signal rather than noise.

## The procedure: decode one report in about 45 minutes

Work the page top to bottom in this order. Each step ends with a concrete artifact so you know when you are done.

#### Decode a single outcomes report

1. **Find the denominator** - Locate whether the rate divides by all enrolled, all graduates, or only job-seeking graduates. Done when you can state the exact base; treat any post-graduation base with suspicion.
2. **Isolate the exclusions** - Find the non-job-seeking, opt-out, and unreachable counts removed before the rate. Done when you know what percent was excluded; over 10% is a warning.
3. **Classify the numerator** - Separate full-time in-field from apprenticeship, contract, part-time, freelance, and self-employment. Done when you hold an in-field, full-time-only number.
4. **Pin the window** - Identify 90, 180, or 360 days. Done when the rate is tied to a window; convert any "within a year" claim back to the 180-day standard.
5. **Decode the salary line** - Check median versus average, base-only versus total comp, and what share of graduates the figure draws from. Done when you know the salary response rate.
6. **Locate the audit** - Find a named third-party or CPA auditor and a single complete standardized report. Done when you can name the auditor or confirm none exists.
7. **Cross-check independently** - Compare the claim against CIRR, a state regulator filing, or your own search of named alumni. Done when you hold a second, independently sourced number.
8. **Decide** - If exclusions exceed ~10%, no audit exists, or independent numbers diverge sharply, treat the headline as marketing. Done when you have a go or no-go.

Where to find the cross-check documents: CIRR's school data library holds the standardized reports; California's BPPE publishes annual school performance filings that make a clean regulator cross-check; and Course Report maintains independent school pages. If a claim appears on none of these and only on the school's own site, you have your answer about its standing.

## How this goes wrong: the seven tactics to catch

Every inflated report uses one of a small set of moves. Name the move and the number stops fooling you. Here is each one with the false positive that gives it away and the check that defeats it.

**Denominator swap.** A 90% headline that is really 90% of the 70% who stayed in the funnel. The tell is a big, round rate with no cohort size printed. Check: divide the numerator by all graduates and recompute.

**"Any job" numerator.** Counting an admin or retail role as a placement. The tell is "employed" with no "in-field" qualifier. Check: demand the full-time in-field row.

**Window stretch.** A "within one year" rate quietly replacing the 180-day standard. The tell is a window wider than 180 days on the headline. Check: convert to 180 days and expect a lower number.

**Average-salary halo.** A high average masking a low median and thin response rate. The tell is an average with no median beside it. Check: ask for the median, base-only, and the salary response rate.

**After-the-fact non-seeker relabeling.** Graduates designated non-job-seeking after they graduate, which CIRR bars by asking before enrollment. The tell is intent recorded post-graduation. Check: ask when job-seeking status was set.

**Self-published only.** No named auditor, testimonials instead of aggregate numbers. Programs that refuse to share their CIRR report, cite "data privacy" for withholding outcomes, or show only testimonials are a red flag. Check: find the report on CIRR or a state regulator, not just the school site.

**Sample-of-one boasts.** A "100% placement cohort" that is one person. Austen Allred once tweeted a 100% placement cohort and later acknowledged the sample size was a single student. Check: find the cohort size behind every rate.

#### Trust the report, or treat it as marketing

Horizontal axis runs from No named auditor to Named CPA or CIRR audit. Vertical axis runs from Exclusions over 10% to Exclusions under 10%.

| Quadrant | What it means |
| --- | --- |
| Self-attested, tight cohort | Plausible but unverified; cross-check alumni yourself |
| Audited, tight cohort | Trustworthy; enroll on this number |
| Self-attested, heavy exclusions | Treat as marketing; assume padded |
| Audited, heavy exclusions | Read the exclusion list before trusting the rate |

*Cross an audit against exclusion size to decide whether a headline is evidence or advertising.*

> **Tip:** One question closes most of the gap
>
> Email admissions: "Can you send your full CIRR report or state regulator filing, with the full-time in-field rate at 180 days and the cohort size?" A clean answer or a dodge tells you almost everything.

## The verification checklist

Run this before you send a deposit. If you cannot tick an item, you have found the tactic hiding in that report.

#### Before you enroll

- [ ] I can state whether the rate divides by all graduates or by job-seekers only.
- [ ] I know what percent of the cohort was excluded, and it is under 10%.
- [ ] I have the full-time in-field placement number, separate from contract and freelance.
- [ ] The rate is tied to the 180-day window, with any "one year" claim converted down.
- [ ] I know the salary median, that it is base-only, and the salary response rate behind it.
- [ ] I can name the third-party or CPA auditor, or I have confirmed there is none.
- [ ] I have a second number from CIRR, a state regulator filing, or my own alumni search.
- [ ] I have printed the cohort size behind every rate I am relying on.

## Keeping this current

Outcomes reporting changes, so re-check the mechanism rather than memorizing values. Three things drift: which schools publish audited reports, what the standard window is, and where regulators are active.

The count of CIRR-audited schools was about three as of early 2026, but that number moves as programs join or drop out. Re-check the CIRR school data library directly rather than trusting a ranking site's summary. Windows are stickier: 180 days has been the de facto headline standard, but confirm the window on the specific report, since a program can quietly shift it. Regulator activity is the freshest signal. The Flatiron settlement came from the NY Attorney General and the BloomTech order from the CFPB, so a program's home-state regulator and the CFPB enforcement pages are worth a search under the program's legal name before you commit.

Note one place the dossier's own sources disagree: Course Report describes CIRR schools reporting every six months with third-party verification, while the current CIRR site describes annual publication. When sources conflict on cadence, trust the report's own dated cover page over any secondhand description.

The most durable check is the one you run yourself. A program's graduates are searchable by name and current title, and their real jobs do not care what the outcomes page claims. When the brochure says "in-field" and the alumni say "retail," believe the alumni.

## Frequently asked questions

### How do bootcamps calculate placement rate?

Most divide the number of employed graduates by a base of graduates, but the base varies. CIRR uses in-field employed divided by all graduated students, excluding only those who declared before class they did not intend to seek an in-field job and those not authorized to work. Many self-reporting schools instead divide by job-seeking graduates, a smaller base that removes opt-outs and unreachable graduates. That base choice, not the numerator, drives most of the difference between an honest and an inflated rate.

### What counts as job placement at a bootcamp?

It depends entirely on whether the report says in-field. CIRR-standard reports split placements into full-time in-field employees working 30-plus hours for six-plus months, apprenticeships and contracts, and short-term or freelance work. A rate that only says employed can count a retail or admin job as a placement. In Refolk's index, the top current employers among self-described US bootcamp grads were retailers, so any-job and in-field-job describe different populations.

### Are coding bootcamp job stats real?

Some are audited and some are not, and absence of an audit is the normal case. CIRR audited in-field rates run 64% to 78% within 180 days, while unaudited self-reported rates run 70% to 90%. Enforcement cases show how far unaudited claims stretch: Flatiron settled with the NY Attorney General over a 98.5% claim, and the CFPB found BloomTech advertised 71% to 86% while internal reporting showed near 50%.

### What is the difference between in-field and any-job placement rate?

In-field placement counts only graduates hired into roles related to the training, such as software engineer or developer for a coding program. Any-job placement counts any employment, including roles the graduate could have taken without the program. CIRR requires the in-field split; a report that only publishes an employed rate is likely blending the two. Always demand the full-time in-field row before trusting a headline.

### How do I verify a bootcamp's placement rate before enrolling?

Run eight checks: name the denominator, isolate the exclusions, classify the numerator as in-field full-time, pin the window to 180 days, decode the salary response rate, locate a named CPA auditor, cross-check against CIRR or a state regulator filing, and then decide. If exclusions exceed 10%, no audit exists, or independent numbers diverge sharply, treat the headline as marketing rather than evidence.

### Why does the placement window matter so much?

Because the same students produce very different rates at different windows. Codesmith's own CIRR report shows in-field employment of 37.8% at the earliest window, 70.1% at 180 days, and 81.0% at 360 days. That is a 2.1x swing with no padding at all. A program advertising a within one year number is choosing the widest, most flattering window, so convert it back to the 180-day standard to compare fairly.

---

*From the Refolk guide library. I revise these guides rather than replacing them, so the current version is always at https://www.refolk.ai/candidates/guides/bootcamp-outcomes-report-decoder*
