Tern Client Services: Document set README
Document set README for Tern Client Services. 27 files, 1 of them intentionally invalid, with the reconciliation identities and the exact defect in each broken file named in full.
# Tern Client Services: timesheet, progress bill, expense claim and work-in-progress documents
The billing pack a small professional services firm produces for one month: the timesheet in three formats, the fee schedule it prices from, the retainer the first two invoices are drawn against, a progress bill for the third, work in progress at a mid-month cut-off and its roll-forward, an expense claim with mileage, and the pipeline, quote, activity and contact exports behind them.
All parties, amounts and identifiers are fictional. Fixed snapshot: 2026-09-08. Every record is derived from the shared operating model `crm-services`, so identifiers join across this set and across the business-kit fixtures that use the same model.
## Reconciliation identities this set asserts
- hours times hourly_rate equals billable_amount on all 24 time entries, totalling 7200.00.
- The 3 invoices total the same 7200.00, so every recorded hour is billed exactly once.
- The retainer of 4000.00 is drawn to 0.00 by SVCINV-1 and SVCINV-2, leaving 3200.00 payable in cash on SVCINV-3.
- Work in progress rolls forward from 0.00 to 0.00: everything added in the period was transferred to billed.
- The expense claim of 221.57 allocates by project without residue and is the expenses column of project-profitability.csv.
- Won deals total 9000.00, the sum of the three project budgets.
## Files
| File | Format | Validity | What it is |
| --- | --- | --- | --- |
| `timesheet-export.csv` | csv | valid | Timesheet export CSV |
| `timesheet-export.json` | json | valid | Timesheet export JSON |
| `timesheet-export.xlsx` | xlsx | valid | Timesheet export workbook |
| `timesheet-PROJECT-3.pdf` | pdf | valid | Project timesheet PDF |
| `fee-schedule.csv` | csv | reference | Professional fee schedule |
| `fee-schedule.pdf` | pdf | reference | Fee schedule PDF |
| `retainer-ledger.csv` | csv | valid | Retainer ledger |
| `invoice-register.csv` | csv | valid | Invoice register with retainer draws |
| `invoice-register.json` | json | valid | Invoice register JSON |
| `progress-bill-SVCINV-3.pdf` | pdf | valid | Progress bill PDF |
| `retainer-statement.pdf` | pdf | valid | Retainer statement PDF |
| `wip-report.csv` | csv | valid | Work in progress at 2026-08-15 |
| `wip-rollforward.csv` | csv | valid | Work in progress roll-forward |
| `mileage-log.csv` | csv | valid | Mileage log |
| `expense-claim.csv` | csv | valid | Expense claim with mileage |
| `expense-claim-mileage-rate-drift.csv` | csv | invalid | Expense claim whose mileage was paid at a superseded rate |
| `expense-claim.pdf` | pdf | valid | Expense claim PDF |
| `project-profitability.csv` | csv | valid | Project profitability |
| `utilisation-report.csv` | csv | valid | Specialist utilisation report |
| `pipeline-export.csv` | csv | valid | Sales pipeline export |
| `pipeline-export.xlsx` | xlsx | valid | Sales pipeline workbook |
| `quotes-export.csv` | csv | valid | Quote export |
| `activities-export.csv` | csv | valid | Sales activity export |
| `contacts-export.csv` | csv | valid | Contact export with quoted fields |
| `contacts-export-semicolon.csv` | csv | valid | Contact export in the semicolon dialect |
| `services-reconciliation.json` | json | reference | Professional services reconciliation assertions |
## Deliberate defects
These files are broken on purpose. Each one is a single named mutation of a correct file in the same directory, so a parser under test can be checked against both.
Specifications
- Document Set
- professional-services
- Industry
- professional-services
- Source Kit
- crm-services
- Synthetic
- true
- As Of
- 2026-09-08
- Documented Files
- 27
- Documented Defects
- 1
Testing contract
Reference control- Scenario
- Read the README before using the set, then check that every filename it lists exists in the same directory and that the defect list matches the files marked invalid.
- Expected result
- The file table lists 27 entries including this README, and the deliberate-defect section names 1 file(s). The reconciliation section states the arithmetic identities the valid files satisfy exactly.
What is a .md file?
Markdown (MD) is a lightweight plain-text markup language that uses simple punctuation conventions to denote headings, lists, links, emphasis, and code. It is designed to be readable as-is and to convert cleanly to HTML. It is widely used for documentation, READMEs, and content authoring.
How to use this file
Use an example Markdown file to test parsers and renderers, verify GitHub-Flavored Markdown extensions like tables and fenced code, and exercise HTML-conversion pipelines.
How to use this file for testing
“Tern Client Services: Document set README” is a deterministic Testaroo fixture for Data import. Realistic faker-generated datasets with documented schemas for testing import and ETL flows.
Documented properties for this file: MD · 4,473 bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such, expect parsers to fail loudly rather than silently accept them.
Document fixtures list their internal structure (pages, fields, tracked changes, embedded objects) in the spec table. Test extractors, converters, and OCR against that known structure, and compare searchable↔scanned or format-twin companions when present.
Code examples
import markdown # pip install markdown
html = markdown.markdown(open("README.md").read())
print(html[:200])Generated by generation/industry_documents.py. Free for any use, no attribution required, license.
Related files
- pdfTern Client Services: Expense claim PDFExpense claim PDF for Tern Client Services. A one-page expense claim. The line table closes on 221.57 and the allocation table splits the same figure into 146.32 of mileage and 75.25 of receipted items across the three projects.

- pdfTern Client Services: Fee schedule PDFFee schedule PDF for Tern Client Services. A one-page rate card listing the same 5 codes as fee-schedule.csv with the standard rate at 100.00 per hour and mileage at 0.62 per kilometre. The notes state that COST is internal and never billed.

- pdfTern Client Services: Progress bill PDFProgress bill PDF for Tern Client Services. A one-page progress bill for PROJECT-3 against a 4,000.00 budget. It states 3,200.00 of work completed, 80.00 percent of budget, nothing previously billed, 3,200.00 payable in cash and 800.00 of budget remaining.

- pdfTern Client Services: Project timesheet PDFProject timesheet PDF for Tern Client Services. A one-page timesheet for PROJECT-3. The entry table lists 8 lines and closes on a Total row of 32 hours and 3,200.00.

- pdfTern Client Services: Retainer statement PDFRetainer statement PDF for Tern Client Services. A one-page retainer statement. The movement table replays the three ledger entries to a closing balance of 0.00 and the invoice table shows 4,000.00 of the 7,200.00 billed taken from the retainer, leaving 3,200.00 in cash. Draws are printed in accounting parentheses.

- xlsxTern Client Services: Sales pipeline workbookSales pipeline workbook for Tern Client Services. Two worksheets: Deals (12 rows, the same data as pipeline-export.csv) and By stage (4 rows). The By stage sheet is derived from the Deals sheet, so its amount column sums to the same 34500.00 and its share_of_pipeline_percent column sums to 100.00.
