This passed review. Try to walk the factor.
The totals tie. The return is correct.
Now re-derive it from the export. Does it close — or do you have to explain it?
Start here
Tab 1 shows the problem. Tabs 2–5 show why it happens.
Most firms validate that the factor ties. Few validate that it can be walked without rebuilding it. These scenarios show what that gap looks like — and what it costs when it surfaces after sign-off.
The factor ties to the return. But numerator ÷ denominator doesn't match the reported factor.
The difference is 8.3 basis points — above the 5 bps threshold (configurable; separates rounding noise from structural gaps). No override or rounding explanation is visible in the export.
The build can't be walked from the export alone.
This isn't an error. It's a documentation condition.
The number is right. But the workpaper doesn't close on its own.
If a state examiner asks you to walk this factor from source to return — or someone tries to re-derive a prior year position — this file requires explanation that isn't in the export.
Where this surfaces after sign-off
The factor foots to Schedule R. Standard review passes. The condition only surfaces when someone
tries to re-derive the factor from its components — in extension prep, a client meeting, or a state exam.
That's when a 5-minute question turns into hours of tracing on a file that already cleared review.
① Looks clean② Re-derive the factor③ Gap appears④ Why it happensStep 1 of 4
#
Entity
State
Numerator ($)
Denominator ($)
Factor (Col AP)
Ties to return?
R11
TechCorp LLC
CA
$3,421,000
$18,750,000
18.3286%
✓
R12
TechCorp LLC
NY
$2,100,000
$18,750,000
11.2000%
✓
R13
TechCorp LLC
TX
$1,875,000
$18,750,000
10.0000%
✓
✓ Factor ties to Schedule R · Cross-footing passes · Standard review complete
Re-deriving CA payroll factor from exported components
Numerator (export, R11 · CA): $3,421,000
Denominator (export, R11 · CA): $18,750,000
$3,421,000 ÷ $18,750,000 = 18.2453% ← re-derived
Reported factor (workpaper): 18.3286% ← from export
The re-derivation doesn't match the reported factor. Something between the exported components and the final number is unexplained.
#
Entity
State
Reported
Re-derived
Variance (bps)
Result
R11
TechCorp LLC
CA
18.3286%
18.2453%
8.3 bps
FAIL
R12
TechCorp LLC
NY
11.2000%
11.2000%
0.0 bps
PASS
R13
TechCorp LLC
TX
10.0000%
10.0000%
0.0 bps
PASS
⚑ CA factor: 8.3 bps variance · FAIL (>5 bps threshold) · Likely cause: override or transformation at source (verification required)
What this means for sign-off
The factor is correct. It ties to Schedule R. The issue is that the 8.3 bps difference between the re-derived and reported factor has no documented explanation in the export.
The most likely cause is a legitimate override — market sourcing adjustment, throwback election, or mid-year consolidation timing. None of that is visible here.
What the Export Exception Summary shows the partner:
Entity: TechCorp LLC · State: CA · Variance: 8.3 bps · Cause: override / transformation (verification required)
Documented explanation: none found in export
Scan ID: DIAG-CF15-A4F2 · SHA-256: a3f7…c291 · Workpaper attachment ready
Step 1 of 4
◆ Verify this yourself — 60 seconds
No tool required
If your export has separate numerator, denominator, and factor columns:
In Excel: =Numerator / Denominator for any entity-state row.
Does the result match the reported factor — or only after explanation?
If not: the build isn't fully traceable from the export. That's what this documents before sign-off.
CF-15 runs this check across every entity-state pair in the file in under 90 seconds and documents the findings in a workpaper-ready output.
It applies only to exports where numerator, denominator, and factor are present as separate columns.
If those columns aren't in your export, CF-15 is skipped and the other 14 checks still run.
Apportionment Export · Synthetic data · 742 rows
The number is right. The workpaper doesn't close on its own. See what the diagnostic finds — and what it produces for the workpaper.
CCH Axcess · QSSS Consolidation · CF-01 — One way a factor gap occurs
Sign inversion. The totals don't show it.
In this export, SubCo I LLC carries a CA payroll factor of −0.3420 — while TechCorp LLC (the parent entity) shows +0.3420 for the same state and period.
The numerator and denominator are identical for both rows. Divide either one: $3,420,000 ÷ $10,000,000 = +0.3420.
The export wrote the subsidiary's factor as negative. The column total is unchanged because the two values cancel.
Schedule R ties. Standard review passes.
When CF-15 runs on this export, it re-derives the factor from the numerator and denominator for each row.
For SubCo I · CA: re-derived = +0.3420, reported = −0.3420. Sign inverted.
The factor can't be re-derived from the exported components — which is exactly what CF-01 flags.
If not caught before sign-off
The CA payroll factor on the consolidated return reflects the offsetting values.
When someone tries to walk the CA payroll factor from the entity-level rows,
SubCo I's component produces the wrong sign. The workpaper can't explain it without going
back to the CCH Axcess entity settings that governed the export.
qsss_apportionment_Q4_2025.xlsx742 rows · CCH Axcess Entity_ID · Entity · State · Type · Numerator · Denominator · Col AP
#
Entity_ID
Entity_Name
State
Entity_Type
Numerator ($)
Denominator ($)
Col AP (Factor)
R11
TC-001
TechCorp LLC
CA
Parent S-Corp
$3,420,000
$10,000,000
+0.3420
R12
TC-001
TechCorp LLC
NY
Parent S-Corp
$2,180,000
$10,000,000
+0.2180
R13
TC-001
SubCo I LLC
CA
QSSS Sub
$3,420,000
$10,000,000
−0.3420
R14
TC-001
SubCo I LLC
NY
QSSS Sub
$2,180,000
$10,000,000
+0.2180
R52
TC-001
SubCo II LLC
CA
QSSS Sub
$1,870,000
$10,000,000
−0.1870
Total
CA column total
+0.2490 ✓
+ 735 more rows · Grand total +0.2490 · ties to Schedule R · standard review passes
◆ Verify this yourself
Check the sign on your own QSSS exports — no tool required
If you have a multi-entity QSSS return filed this season:
Open the apportionment export. Filter to one entity group (parent + subsidiaries).
Look at the payroll factor column (Col AP) for each entity-state pair.
For any entity-state row where the export shows a separate numerator and denominator: divide numerator by denominator. Does the sign match the reported factor?
If the numerator/denominator division produces a positive result but the reported factor is negative — or vice versa — that row has a sign inversion. The factor can't be re-derived from the exported components.
Check whether the inverted rows cancel against other rows in the same column, leaving the grand total unchanged. That's the condition that makes this invisible to standard review.
This is a deterministic check — the sign of Numerator ÷ Denominator is either consistent with the reported factor or it isn't.
Cause requires investigation at the source system (entity settings in CCH Axcess govern how QSSS subsidiary factors are written during export).
CCH Axcess Export · QSSS · 742 rows
Grand total ties. Standard review passes. Run the diagnostic to see what CF-01 and CF-15 find at the entity level.
GoSystem RS · Multi-Entity Rollup · CF-13 — One way a factor gap occurs
Two entities. One truncated name.
GoSystem RS truncates entity names at 28 characters in certain export formats.
"Peninsula Manufacturing Industries" (33 chars) and "Peninsula Manufacturing Indus LLC" (32 chars)
both export as Peninsula Manufacturing Indus.
Downstream systems treat them as one entity — revenue combined, apportionment calculated on the merged base.
The denominator in the workpaper is the combined payroll of two distinct legal entities.
Anyone trying to re-derive the apportionment factor from source data will find two source records, not one.
The factor can't foot from its components without knowing the collision exists.
If not caught before sign-off
Nexus thresholds evaluated against combined revenue of two legally distinct entities.
The apportionment factor is calculated on a denominator that doesn't correspond to any single
source document. Discovered during state exam when the examiner requests entity-level payroll records.
gosystem_multistate_Q4_2025.xlsx1,204 rows · GoSystem RS Entity_Name · State · Revenue · Apport % · Tax Amt · (28-char field limit)
#
Entity_Name (28-char limit)
State
Revenue
Apport %
Tax Amt
1
Peninsula Manufacturing Indus
CA
$892,340
18.2%
$34,567
2
Peninsula Manufacturing Indus
CA
$734,210
18.2%
$28,431
3
Beta Holdings LLC
NY
$1,234,567
22.1%
$67,890
4
Peninsula Manufacturing Indus
NY
$654,890
22.1%
$25,344
5
Beta Holdings LLC
TX
$987,654
15.7%
$43,210
+ 1,197 more rows · Grand total foots · two distinct entities appear as one · run diagnostic to detect
◆ Verify this yourself
Check entity name truncation in your GoSystem RS exports
GoSystem RS's 28-character field limit is documented behavior. Collisions are verifiable without any tool:
Open your entity master list. Sort by entity name length — any name over 28 characters is at risk.
For names over 28 characters, check the raw export: look at the Entity_Name column and confirm whether the name is truncated.
Scan for prefix collisions — two entities that share the same first 28 characters will produce identical export strings.
If you find a collision: the revenue and apportionment for both entities is combined in the export under a single name. The denominator in your workpaper doesn't correspond to any single legal entity in your source records.
This is a deterministic check — name truncation either produces a collision or it doesn't.
Most common in portfolios with multiple LLCs, DBAs, or recently-renamed entities with similar names.
GoSystem RS Export · Multi-entity · 1,204 rows
Grand total foots. Two distinct entities appear as one. Run the diagnostic to detect the collision.
Thomson Reuters ONESOURCE · Provision / ASC 740 · CF-03 — One way a factor gap occurs
The pivot broke. Nobody knew why.
ONESOURCE's Provision module writes "NY". The Compliance module writes "New York".
The same export file contains both — along with "N.Y." and leading-space variants like " NY".
State-level pivot tables silently split totals across what appear to be four different jurisdictions.
The denominator in the pivot is wrong because the denominator is the sum of only the rows
that matched the selected state label. When the same state appears in four formats,
each format contributes to a different bucket.
The factor calculated from the pivot can't foot from the source components — because the
source components are split across four label variants.
If not caught before sign-off
3–4 hours per engagement on a problem that recurs every quarter.
A senior traced a pivot discrepancy for 3 hours before finding a leading space — invisible in the cell display.
The formula bar is the only way to see it.
onesource_provision_Q4_2025.xlsx847 rows · ONESOURCE Provision + Compliance Entity · State · Module · Revenue · Tax Amt
#
Entity
State (as exported)
Module
Revenue
Tax Amt
1
Gamma Inc
NY
Provision
$1,234,567
$45,678
2
Gamma Inc
New York
Compliance
$892,345
$32,109
3
Gamma Inc
CA
Provision
$2,345,678
$89,012
4
Gamma Inc
N.Y.
Compliance
$456,789
$15,234
5
Gamma Inc
TX
Provision
$987,654
$43,210
6
Gamma Inc
NY
Compliance
$567,890
$20,123
+ 841 more rows · State label variants detected — "NY" / "New York" / "N.Y." / " NY" — pivot tables split these into separate buckets
◆ Verify this yourself
Check for state label variants in your ONESOURCE exports
Module-level label drift is observable in any ONESOURCE file that draws from both Provision and Compliance modules:
Open the export. Sort by the State column alphabetically — don't use a pivot yet, just sort.
Scan the sorted column for the same state appearing in multiple formats: "NY" / "New York" / "N.Y." or any variant with leading or trailing spaces.
For any cell that looks correct but might have whitespace: click the cell, look at the formula bar. A leading space won't show in the cell display but adds a character in the formula bar.
Count distinct state label formats for your largest state. If there's more than one format for the same state, your pivot totals for that state are split — and the denominator used to calculate the apportionment factor is understated.
This is a deterministic check — state labels either match or they don't.
ONESOURCE Provision and Compliance modules are documented to write state labels in different formats.
The fix in the workpaper reference is USPS 2-letter code standardization — originals are preserved.
Totals foot. State label variants split pivot buckets. Run the diagnostic to normalize and flag.
Corptax · Excel Serialization · CF-04 — One way a factor gap occurs
The SUM() was wrong. It didn't say so.
Excel auto-converts large revenue figures to scientific notation in certain cell formats —
2.345E+06 instead of $2,345,678.
When a SUM() formula encounters a scientific-notation cell stored as text, it
silently excludes that cell from the total with no error message.
The workpaper ties to itself because every downstream formula references the same flawed SUM().
The denominator in the apportionment calculation is understated — but the workpaper shows it footing correctly
because all formulas reference the same wrong number.
Anyone trying to re-derive the factor from source payroll records will find a different denominator.
If not caught before sign-off
Revenue understated by the excluded cells. Apportionment factor calculated on understated denominator.
The factor on the return is wrong — not because of a tax judgment, but because SUM() silently
excluded text-formatted cells. Discovered when reconciling against the trial balance.
corptax_provision_Q4_2025.xlsx512 rows · Corptax Export Entity · State · Acct · Revenue (as exported) · SUM() result
#
Entity
State
Acct
Revenue (as exported)
In SUM()?
14
Nordic Holdings
CA
4100
$1,234,567
✓ included
15
Nordic Holdings
NY
4100
$892,345
✓ included
16
Nordic Holdings
TX
4100
2.345E+06
✗ excluded
17
Nordic Holdings
FL
4100
$567,890
✓ included
18
Nordic Holdings
IL
4100
1.156E+06
✗ excluded
19
Nordic Holdings
AZ
4100
3.012E+06
✗ excluded
+ 506 more rows · SUM() reports $2,694,802 · 3 cells excluded · actual total: $9,208,825 · run diagnostic to detect
◆ Verify this yourself
Check for scientific notation in your Corptax exports
Scientific notation conversion can occur in any Excel export from any platform when revenue cells exceed certain display thresholds:
Open the export. Navigate to the Revenue column. Scan visually for cells displaying as 1.2E+06 or similar — values in engineering notation rather than dollar format.
Click any scientific-notation cell. Check the formula bar: if the underlying value is stored as text rather than as a number, SUM() is silently skipping it.
Manually sum the first 10 revenue rows with a calculator. Compare to your Excel SUM() formula result. Any difference confirms cells are being excluded.
If excluded cells exist: every formula that references the revenue SUM() produces a wrong result — including the denominator used to calculate your apportionment factor.
This is a deterministic check — a cell is either a number or text, and SUM() either includes it or it doesn't.
Most common in rows with revenue above ~$1M. Highest risk on files exported from Corptax or opened in older Excel versions.
Corptax Export · 512 rows · mixed numeric format
SUM() reports the wrong total. 3 cells silently excluded. Run the diagnostic to detect and quantify.
Running structural diagnostic…
Analyzing synthetic export data
0% analyzed
Parsing file structure
Detecting vendor format fingerprint
Running sign consistency analysis
Running entity collision detection
Running jurisdiction code validation
Computing Data Consistency Score
Generating Export Exception Summary
⚠
Exceptions
Scan complete — exceptions require review
This synthetic scenario demonstrates how the diagnostic surfaces structural errors that pass every review layer.
If this were your file, not this synthetic scenario:
✓ The return would still file correctly
✓ The factor would still tie to Schedule R
✓ Standard review would still sign off
— The factor cannot be re-derived from the export alone
— No explanation exists in the workpaper
— Walking it back requires going to the source system
That's the gap this diagnostic documents
Whether the findings are material or not, you now have a documented Export Exception Summary showing that structural validation was performed before sign-off.
A clean result isn't nothing. It's workpaper evidence that the check ran — the audit trail that currently doesn't exist anywhere in your review process.
Artifact set updates automatically when you switch scenarios. These are the same 6 files a real diagnostic produces on your own exports.
Validation Workpaper Note — Copy / Paste Ready
Export integrity check performed: The provided file was run through a structural reliability scanner (Diagnostic ID: DIAG-7F3A1B22, SHA-256: 9b81c2f7…f2d1). No PII was detected or retained.
RESOLVED ITEMS: CF-13 — Same Entity, Same State, Opposite Signs — RESOLVED in cleaned export. Canonical form applied per frequency analysis. Original variants preserved. CF-03 — State Code Outside USPS Reference List — RESOLVED in cleaned export. Standardized to USPS 2-letter codes per 50-state + DC lookup table. Original labels preserved.
FLAGGED ITEMS (require human review): CF-01 — Sign Inconsistency Among Peer Values — FLAGGED, NOT CORRECTED. Original values preserved. Requires verification of sign convention at source system before reliance. CF-04 — Text-Format Currency Excluded from SUM — FLAGGED, NOT CORRECTED. Currency conversion required before reliance.
Output auto-deleted within 48 hours. Entity labels are harmonized for comparison only; elections, attributes, and numeric values are never inferred or altered. Structural screening only — no tax advice provided.
Attach Export Exception Summary PDF for full workpaper documentation.
Preparer Attestation — Workpaper Sign-Off
Reviewed By
Date
Title / Role
Engagement
Structural screening only — not a tax opinion. This report identifies data format and consistency conditions; it does not evaluate the correctness of reported amounts or tax positions. All determinations regarding tax positions, entity classification, and sign convention correctness remain with the reviewing professional.
In real scans · this is what your team sees
Want to show this to a colleague? Forward an anonymized version.
When running on real client files, you can generate an anonymized version of the Export Exception Summary — entity names blanked, dollar values scaled — and forward it from your own email with the templates below. Zero client-identifying data, safe to share firm-wide. The diagnostic itself stays in the partner's hands; what spreads is the conversation about whether export integrity should be a standard pre-sign-off step.
↓ Anonymized Export Exception Summary
Generate a peer-shareable PDF.
Identical structure to the full Export Exception Summary, with all entity-identifying data redacted. Numeric values scaled to preserve the shape of findings without revealing actuals. Safe to forward firm-wide.
What's redacted on real scans: entity names → "Entity 1, Entity 2, …" · row-level dollar values → scaled to nearest $10K · client identifiers removed · CF code findings preserved · score and grade preserved.
📧 Email forward — peer review framing
Subject: Take a look at this — pre-sign-off diagnostic on one of our SALT files
[Colleague],
I ran one of our recent SALT exports through a structural diagnostic this week. It's a 90-second pre-sign-off check — caught a few conditions that survived our standard review (sign inconsistency, schema-type violations, jurisdiction code issues).
Worth a look — I've attached an anonymized version of the report so you can see the structure without any client data. The diagnostic itself runs in-browser, no upload, no IT approval needed: financeocr.com/verify
[Your name]
Best for: Senior managers, fellow SALT partners, the tax director who would approve adoption firm-wide.
💬 Slack / Teams message — quick share
Ran one of our SALT exports through a 90-second structural diagnostic. Caught a few conditions that survived our normal review — factor gaps at the component level, sign inconsistency, jurisdiction code issues. Anonymized version of the report attached. Browser-only, no upload: financeocr.com/verify
Best for: Internal Slack/Teams channels, quick FYI to a colleague or two.
◈ In-Browser Processing
Your data never leaves your machine.
Diagnostic executes in-browser via WebAssembly. Zero transmission to external servers. Verifiable in your browser's Network tab.
🔐 SHA-256 Provenance
Cryptographic integrity on every file.
A SHA-256 hash of your file is computed locally for workpaper integrity. The hash proves what the file contained at scan time. No file content is retained anywhere.
🔍 Structure Only
We read structure — not substance.
Entity labels are harmonized for comparison only. Numeric values are never inferred or altered. No tax advice. Professional judgment remains with your firm.
Verify the security claim yourself — 60 secondsRight-click → Inspect → Network tab. Run a scan. Observe zero outbound POST requests. The file never leaves your browser.
No trust required · Architecture, not policy
◆ The real question
Seen on synthetic data. What does your own export show?
The number in this scenario is right. The workpaper doesn't close on its own. The only answer that matters is whether the same condition exists on your own exports. The scan runs the same way on real files — in-browser, zero transmission, 90 seconds each.
How the real test works
01
Upload 3–5 recent exports
Apportionment schedules, provision exports, multi-entity rollups. Any mix of CCH, GoSystem, ONESOURCE, or Corptax.
02
Each file processes in 90 seconds
In your browser, via WebAssembly. Nothing transmitted. Your IT team can verify zero outbound traffic in the Network tab.
03
Receive an Export Exception Summary per file
Workpaper-ready PDF with Data Consistency Score, findings, and preparer attestation section. Attach directly to the engagement file.
04
Decide based on your own data
Forward the summaries to your SALT director. If findings are material, engage the pod license. If files are clean, you have documented workpaper evidence that structural validation was performed — and you walk away knowing.
Discovery Phase — No Cost
No calls. No sales process. This is a file-level decision.
Test it on your own exports.
Three to five files. Ninety seconds each. You'll have concrete evidence for or against in under ten minutes — and an Export Exception Summary for every file you can forward internally.
If your files are clean: you receive documented Export Exception Summaries showing structural validation was performed. That documentation has value — it's the audit trail that didn't exist before. If our output isn't something your team would attach to a workpaper, you don't pay.
01
Does this integrate with my tax software directly?
No — and that's deliberate. The diagnostic runs on exported files, not on live connections to CCH Axcess, GoSystem RS, ONESOURCE, or Corptax. No API keys, no IT coordination, no firewall exceptions, no vendor integration certification. Your team exports as they already do for review, runs the diagnostic in-browser in 90 seconds, and generates a workpaper artifact before sign-off. A direct integration would require months of enterprise procurement. Export-based review starts today.
02
What actually happens to the file when I upload it?
Nothing is uploaded. The diagnostic runs entirely in your browser via WebAssembly — the file is processed in-memory and never transmitted to our servers. This isn't a policy promise — your IT team can verify it in 60 seconds. A SHA-256 hash is computed locally for workpaper provenance, but no file content leaves your machine.
03
What happens after I run my own files?
You receive a scored Export Exception Summary for each file — workpaper-ready, formatted for risk committee review, plus a Data Consistency Scorecard and a Corrected Workpaper Reference (Excel). If findings are material, forward the summaries to your SALT director and review the engagement page for next steps. If the files are clean, walk away at no cost. Walk-away condition: no critical findings and no material exceptions means no engagement.
Scope & LimitationsStructural screening only. Entity labels are harmonized for comparison; elections, attributes, and numeric values are never inferred or altered. No tax advice, nexus determinations, or filing recommendations provided. Professional judgment remains with your firm.