The first page of the document DocMake makes from the sample values on this page.
Operations
Supplier Evaluation Report
A supplier evaluation report is the periodic write up of how one external provider actually performed, measured against criteria agreed in advance rather than argued about afterwards. It is the document that sits behind an approved supplier list and makes that list mean something more than a spreadsheet of names.
ISO 9001 asks for less than most people assume and more than most people do. Clause 8.4 wants criteria for evaluating, selecting, monitoring the performance of and re-evaluating external providers, and documented information of those activities and of any actions arising from them. It does not name the criteria, prescribe a scorecard format, or require an approved supplier list at all. The gap auditors tend to find runs the other way: the list exists and the criteria behind it do not.
Scoring is a weighted loop rather than a fixed table, because the weights are an organization's own decision. Quality figures such as defective parts per million and nonconformance reports raised, delivery figures such as on time in full and lead time adherence, commercial accuracy, responsiveness and certification status each sit as a row with a weight, a measured value, a score and a comment, and the total picks the band. Suppliers working under IATF 16949 have a defined minimum to monitor, including delivered product conformity, delivery schedule performance, disruptions at the receiving plant and premium freight occurrences, which makes a reasonable starting list even for organizations outside that sector.
A rating is only worth writing down if something follows from it. The report closes with the band, the decision it triggers and the actions the supplier owes, each with someone accountable and a closing date, so a provider moved to conditional status knows exactly what closes the gap and by when. Band names and thresholds are convention rather than anything a standard sets, so print your own definitions next to the score. Producing one of these per supplier per period across a base of two hundred is a data problem, not a writing problem, which is where pulling the figures straight from the ERP beats pasting a spreadsheet into a document every quarter.
Blanks to fill
| report_reference | Report reference |
| period_covered | Period covered |
| supplier_name | Supplier |
| supplier_code | Supplier code |
| supplier_address | Supplier address |
| commodity | Commodity or service supplied |
| evaluation_date | Evaluation date |
| evaluator | Evaluated by |
| evaluator_role | Role |
| buyer | Responsible buyer |
| contract_reference | Contract or quality agreement |
| spend_in_period | Spend in period |
| orders_in_period | Orders in period |
| lines_received | Order lines received |
| previous_rating | Previous rating |
| previous_evaluation_date | Previous evaluation |
| band_definitions | Band definitions used |
| total_score | Total score |
| rating_band | Rating band |
| decision | Decision |
| approved_scope | Approved scope |
| next_evaluation_date | Next evaluation |
| supplier_feedback | Feedback shared with the supplier |
| approved_by | Approved by |
| approval_date | Approved |
| company_name | Company |
| criteria[] | One per item, so a row is added for every item in the list |
| certifications[] | One per item, so a row is added for every item in the list |
| open_issues[] | One per item, so a row is added for every item in the list |
| actions[] | One per item, so a row is added for every item in the list |
The data behind the preview
This is the exact JSON that produced the document above. Change the values, POST them to the API, and you get your version back as DOCX or PDF. Lists grow and shrink with your data; the layout adapts.
- 01 Sign up free and duplicate this template into your workspace.
- 02 Adjust the wording and branding in the visual editor.
- 03 Fill it in the app, share it as a form link, or call the API.
{
"company_name": "Northwind Instruments SRL",
"report_reference": "SE-2026-H1-0044",
"supplier_name": "Helvetia Labortechnik AG",
"supplier_code": "SUP-0044",
"supplier_address": "Industriestrasse 22, 8280 Kreuzlingen, Switzerland",
"commodity": "Machined PEEK and PTFE components for sensor housings",
"period_covered": "January 1 to June 30, 2026",
"evaluation_date": "July 24, 2026",
"evaluator": "Dana Kovacs",
"evaluator_role": "Supplier Quality Engineer",
"buyer": "Ioana Preda, Purchasing",
"contract_reference": "Supply agreement SA-2024-017, quality agreement annex B",
"spend_in_period": "184,200 EUR",
"orders_in_period": "38 purchase orders",
"lines_received": "214 order lines",
"previous_rating": "Approved, 81 of 100",
"previous_evaluation_date": "January 18, 2026",
"criteria": [
{
"criterion": "Quality, defective parts per million",
"weight": "35",
"measure": "Rejects per million pieces received",
"result": "3,140 ppm against a target of 1,000 ppm",
"score": "14",
"comment": "Driven by the bore diameter escape on lot HL-26-0771. Without that lot the rate is 410 ppm."
},
{
"criterion": "Quality, nonconformance reports raised",
"weight": "12",
"measure": "Reports raised in the period",
"result": "3 raised, one classified major",
"score": "7",
"comment": "One major, NCR-2026-0184. Two minor packaging and labelling issues, both closed inside a week."
},
{
"criterion": "Delivery, on time in full",
"weight": "28",
"measure": "Lines delivered complete and on time",
"result": "91.4 percent against a target of 97",
"score": "21",
"comment": "Eighteen late lines, fourteen of them during the March machine relocation."
},
{
"criterion": "Delivery, lead time adherence",
"weight": "15",
"measure": "Median lead time against the quote",
"result": "Quoted 21 days, median of 26 days",
"score": "10",
"comment": "Quoted lead time unchanged since 2024 and no longer reflects the supplier's loading."
},
{
"criterion": "Certification and compliance",
"weight": "10",
"measure": "Certificates the agreement requires",
"result": "ISO 9001 valid, ISO 14001 lapsed",
"score": "6",
"comment": "Renewal audit is booked. Insurance and the code of conduct are current."
}
],
"certifications": [
{
"certificate": "ISO 9001:2015 quality system",
"number": "CH-QMS-114892",
"issuer": "SQS",
"expires": "March 14, 2028",
"status": "Valid, copy on file"
},
{
"certificate": "ISO 14001:2015 environmental system",
"number": "CH-EMS-114893",
"issuer": "SQS",
"expires": "May 2, 2026",
"status": "Lapsed, renewal audit booked September 15"
},
{
"certificate": "Product liability insurance",
"number": "POL-2026-77140",
"issuer": "Alpina Versicherung",
"expires": "December 31, 2026",
"status": "Valid, certificate on file"
},
{
"certificate": "Supplier code of conduct",
"number": "SCC-0044-2024",
"issuer": "Northwind Instruments SRL",
"expires": "March 2, 2027",
"status": "Signed March 2, 2026"
}
],
"open_issues": [
{
"reference": "NCR-2026-0184",
"description": "Bore diameter above the upper limit on lot HL-26-0771, 500 pieces sorted, 11 returned",
"raised": "May 11, 2026",
"status": "Closed, cost recovered under debit note DN-2026-0059"
},
{
"reference": "CA-2026-019",
"description": "Process capability on drawing feature 3, plus a missing final inspection record for lot HL-26-0771",
"raised": "May 12, 2026",
"status": "Open, supplier 8D at D6, effectiveness review due October 2026"
},
{
"reference": "DEL-2026-0031",
"description": "Fourteen late lines during the March machine relocation, notified after the fact rather than in advance",
"raised": "April 2, 2026",
"status": "Closed, advance notification clause added to the supply agreement"
}
],
"actions": [
{
"action": "Close CA-2026-019 with capability evidence, minimum Cpk 1.33 on drawing feature 3 across three consecutive lots",
"owner": "Helvetia Labortechnik AG, quality manager",
"due": "October 31, 2026"
},
{
"action": "Provide the reinstated ISO 14001 certificate or a written statement of the audit outcome",
"owner": "Helvetia Labortechnik AG, management",
"due": "September 30, 2026"
},
{
"action": "Requote lead time on all active part numbers to reflect current loading",
"owner": "Ioana Preda with the supplier account manager",
"due": "September 12, 2026"
},
{
"action": "Second party audit of the machining cell and the final inspection process",
"owner": "Dana Kovacs",
"due": "November 20, 2026"
},
{
"action": "Qualify a second source for the four highest volume housings",
"owner": "Ioana Preda",
"due": "December 18, 2026"
}
],
"total_score": "58 of 100",
"rating_band": "Conditional approval",
"band_definitions": "Bands defined in PR-PUR-002: 85 and above approved, 70 to 84 approved with monitoring, 55 to 69 conditional approval, 40 to 54 suspended for new business, below 40 removal from the approved list. These bands are this organization's own definition, not a requirement of any standard.",
"decision": "Existing business continues. No new part numbers are placed with this supplier until the actions above are closed and a re-evaluation is run. Incoming inspection stays at tightened sampling on all machined features.",
"approved_scope": "Machined PEEK and PTFE components only. Not approved for assembly work or for anodised metal parts.",
"next_evaluation_date": "January 22, 2027, or earlier once the open actions are closed",
"approved_by": "Anca Marin, Quality Manager, with Ioana Preda, Purchasing",
"approval_date": "July 28, 2026",
"supplier_feedback": "Report shared with the supplier on July 29, 2026 and reviewed on a call on August 4. The supplier accepted the actions and the lead time requote, and asked that the March relocation context be recorded against the delivery score, which it has been."
} Generate this document via the API
One template plus changing data is the whole point. The list of blanks above is the contract, and every new set of values comes back in the same layout: fill it in the app, hand someone a form link, or POST the JSON and get the file straight back.
The request below carries this page's own values, so it runs as soon as the template exists in your workspace. Swap the values for yours and the response is your document.
curl -X POST https://app.docmake.io/api/v1/render \
-H "Authorization: Bearer $DOCMAKE_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
--output supplier-evaluation-report.pdf \
--data-binary @- <<'JSON'
{
"template_id": "tmpl_your_template_id",
"format": "pdf",
"data": {
"company_name": "Northwind Instruments SRL",
"report_reference": "SE-2026-H1-0044",
"supplier_name": "Helvetia Labortechnik AG",
"supplier_code": "SUP-0044",
"supplier_address": "Industriestrasse 22, 8280 Kreuzlingen, Switzerland",
"commodity": "Machined PEEK and PTFE components for sensor housings",
"period_covered": "January 1 to June 30, 2026",
"evaluation_date": "July 24, 2026",
"evaluator": "Dana Kovacs",
"evaluator_role": "Supplier Quality Engineer",
"buyer": "Ioana Preda, Purchasing",
"contract_reference": "Supply agreement SA-2024-017, quality agreement annex B",
"spend_in_period": "184,200 EUR",
"orders_in_period": "38 purchase orders",
"lines_received": "214 order lines",
"previous_rating": "Approved, 81 of 100",
"previous_evaluation_date": "January 18, 2026",
"criteria": [
{
"criterion": "Quality, defective parts per million",
"weight": "35",
"measure": "Rejects per million pieces received",
"result": "3,140 ppm against a target of 1,000 ppm",
"score": "14",
"comment": "Driven by the bore diameter escape on lot HL-26-0771. Without that lot the rate is 410 ppm."
},
{
"criterion": "Quality, nonconformance reports raised",
"weight": "12",
"measure": "Reports raised in the period",
"result": "3 raised, one classified major",
"score": "7",
"comment": "One major, NCR-2026-0184. Two minor packaging and labelling issues, both closed inside a week."
},
{
"criterion": "Delivery, on time in full",
"weight": "28",
"measure": "Lines delivered complete and on time",
"result": "91.4 percent against a target of 97",
"score": "21",
"comment": "Eighteen late lines, fourteen of them during the March machine relocation."
},
{
"criterion": "Delivery, lead time adherence",
"weight": "15",
"measure": "Median lead time against the quote",
"result": "Quoted 21 days, median of 26 days",
"score": "10",
"comment": "Quoted lead time unchanged since 2024 and no longer reflects the supplier's loading."
},
{
"criterion": "Certification and compliance",
"weight": "10",
"measure": "Certificates the agreement requires",
"result": "ISO 9001 valid, ISO 14001 lapsed",
"score": "6",
"comment": "Renewal audit is booked. Insurance and the code of conduct are current."
}
],
"certifications": [
{
"certificate": "ISO 9001:2015 quality system",
"number": "CH-QMS-114892",
"issuer": "SQS",
"expires": "March 14, 2028",
"status": "Valid, copy on file"
},
{
"certificate": "ISO 14001:2015 environmental system",
"number": "CH-EMS-114893",
"issuer": "SQS",
"expires": "May 2, 2026",
"status": "Lapsed, renewal audit booked September 15"
},
{
"certificate": "Product liability insurance",
"number": "POL-2026-77140",
"issuer": "Alpina Versicherung",
"expires": "December 31, 2026",
"status": "Valid, certificate on file"
},
{
"certificate": "Supplier code of conduct",
"number": "SCC-0044-2024",
"issuer": "Northwind Instruments SRL",
"expires": "March 2, 2027",
"status": "Signed March 2, 2026"
}
],
"open_issues": [
{
"reference": "NCR-2026-0184",
"description": "Bore diameter above the upper limit on lot HL-26-0771, 500 pieces sorted, 11 returned",
"raised": "May 11, 2026",
"status": "Closed, cost recovered under debit note DN-2026-0059"
},
{
"reference": "CA-2026-019",
"description": "Process capability on drawing feature 3, plus a missing final inspection record for lot HL-26-0771",
"raised": "May 12, 2026",
"status": "Open, supplier 8D at D6, effectiveness review due October 2026"
},
{
"reference": "DEL-2026-0031",
"description": "Fourteen late lines during the March machine relocation, notified after the fact rather than in advance",
"raised": "April 2, 2026",
"status": "Closed, advance notification clause added to the supply agreement"
}
],
"actions": [
{
"action": "Close CA-2026-019 with capability evidence, minimum Cpk 1.33 on drawing feature 3 across three consecutive lots",
"owner": "Helvetia Labortechnik AG, quality manager",
"due": "October 31, 2026"
},
{
"action": "Provide the reinstated ISO 14001 certificate or a written statement of the audit outcome",
"owner": "Helvetia Labortechnik AG, management",
"due": "September 30, 2026"
},
{
"action": "Requote lead time on all active part numbers to reflect current loading",
"owner": "Ioana Preda with the supplier account manager",
"due": "September 12, 2026"
},
{
"action": "Second party audit of the machining cell and the final inspection process",
"owner": "Dana Kovacs",
"due": "November 20, 2026"
},
{
"action": "Qualify a second source for the four highest volume housings",
"owner": "Ioana Preda",
"due": "December 18, 2026"
}
],
"total_score": "58 of 100",
"rating_band": "Conditional approval",
"band_definitions": "Bands defined in PR-PUR-002: 85 and above approved, 70 to 84 approved with monitoring, 55 to 69 conditional approval, 40 to 54 suspended for new business, below 40 removal from the approved list. These bands are this organization's own definition, not a requirement of any standard.",
"decision": "Existing business continues. No new part numbers are placed with this supplier until the actions above are closed and a re-evaluation is run. Incoming inspection stays at tightened sampling on all machined features.",
"approved_scope": "Machined PEEK and PTFE components only. Not approved for assembly work or for anodised metal parts.",
"next_evaluation_date": "January 22, 2027, or earlier once the open actions are closed",
"approved_by": "Anca Marin, Quality Manager, with Ioana Preda, Purchasing",
"approval_date": "July 28, 2026",
"supplier_feedback": "Report shared with the supplier on July 29, 2026 and reviewed on a call on August 4. The supplier accepted the actions and the lead time requote, and asked that the March relocation context be recorded against the delivery score, which it has been."
}
}
JSON tmpl_your_template_id is
a stand-in: build this template in the visual editor and copy the id it shows, or create one with POST /api/v1/templates. Keys, formats, strict mode and batches are in the API reference.
Or let an AI assistant do it
The DocMake MCP server lets Claude and other assistants make this document the same way. Install it once:
claude mcp add docmake \
--env DOCMAKE_API_KEY=dm_your_api_key \
-- npx -y @docmake/mcp@latest Then ask for the document in plain words:
Make a PDF from my Supplier Evaluation Report template with report reference "SE-2026-H1-0044" and period covered "January 1 to June 30, 2026".
More operations templates
Change Order
The instructed change, where it came from, what it costs line by line, what it does to the programme, and the contract sum it leaves behind.
View template →Daily Site Report
The day on site in one sheet: weather, crew, plant, work done, deliveries and what held the job up.
View template →Field Service Report
One engineer visit written down: the fault, the time on site, the parts fitted, the tests that proved it and the customer signature.
View template →