Clear Cutover Get a quote

Epicor Kinetic · Working with a contractor

How to scope an Epicor Kinetic report, BAQ or customization for a fixed price

Applies to: Epicor Kinetic and Epicor ERP 10.2. Covers BAQ Designer, Application Studio, SSRS and Report Data Definitions (RDD), BPMs, and Epicor Functions. Menu paths and capabilities differ by release and deployment.

Short answer

A contractor can only quote a fixed price when the request is specific. Name the delivery tool, the tables and fields, the filter and trigger rules, the exact calculation, the layout, and a test transaction that proves the work is done. A vague request such as "streamline order entry" leaves the deliverable open-ended, forcing whoever quotes it to build contingency into the price or charge for changes later.

What to provide

Delivery tool What you provide: the exact output type (a BAQ-based grid or dashboard in Application Studio, an SSRS report, a BAQ report, a BPM, or an Epicor Function). Why it matters: it prevents someone from building an expensive formatted report when users only needed an interactive list.

Tables and fields What you provide: the specific tables and fields. Why it matters: it eliminates exploratory billing and guesswork.

Trigger and filter rules What you provide: when the logic fires or how a list is filtered. Why it matters: it avoids incorrect joins, missing criteria, or duplicate rows.

Layout mockup What you provide: an annotated screenshot, PDF, or spreadsheet. Why it matters: it limits visual redesign cycles during acceptance testing.

Acceptance test What you provide: a specific transaction in a test (Pilot) environment. Why it matters: it establishes a verifiable, objective definition of "done".

The eight items to include

  1. Target tool and delivery mechanism

State clearly which delivery artifact you need:

  • A dashboard or application built in Application Studio, using a Panel Card Grid bound to a BAQ.
  • An SSRS report. For standard business documents, confirm in Report Style Maintenance whether the style uses a Report Data Definition (RDD) or a BAQ Report, as custom reports are built from copies of these definitions.
  • A server-side rule, such as a BPM directive (Method or Data Directive) or an Epicor Function (EFx).

Decide this with internal stakeholders before scoping the work, so the contractor is not left choosing between an operational list and a printed document.

  1. Source tables and key fields

List the exact tables and fields. Field Help inside Epicor screens identifies which database table and field stores a specific on-screen value. Always verify every field name in your own environment.

Example of vague versus specific:

  • Vague: "Show the open quantity on each order release."
  • Specific: Use the OrderRel table and its OurReqQty, OurJobShippedQty, OurStockShippedQty, and OpenRelease fields.

Costing example: In Epicor schema design, PartCost holds part cost fields (e.g., AvgMaterialCost, StdLaborCost), partitioned by CostID. In multi-site setups, EpiUsers discussions describe linking to the Plant table to identify the active CostID for that site rather than assuming CostID = 1. State in your scope which cost field you want (average, standard, or last) and which cost set applies.

  1. Site (plant) and company boundaries

State whether the result must filter strictly to the site the user is logged into or display company-wide records. BAQ Designer provides built-in constants for the current plant and company that can be applied in query criteria. Furthermore, join types matter: if every join to PartPlant is an outer join, a plant criterion may not restrict rows as expected. Specify which table's plant column establishes the boundary.

  1. Exact calculations

Supply the explicit formula and source fields. Do not write "calculate open quantity" and assume the developer will deduce your business rules.

Example for open quantity on an order release: In Epicor Order Management, discussions consistently highlight:

OurReqQty - (OurJobShippedQty + OurStockShippedQty)

Note that "Our" fields reflect internal inventory units of measure, whereas "Selling" fields reflect customer units of measure. State which unit of measure your calculation requires, and specify whether to filter on OpenRelease = true. If your operations ship from both jobs and inventory stock, both shipped fields must be subtracted.

Example of cost buckets: When requesting a gross margin query, define total cost explicitly. State whether total cost includes labor, burden, material, subcontract, and material burden, or a subset of those buckets, so that Accounting and the developer build to the same standard.

  1. Mockup or layout
    • For a report: attach a PDF of the current document with annotated callouts, or a sketch illustrating column groupings and header blocks.
    • For a dashboard: provide a spreadsheet demonstrating column labels, left-to-right order, default sorting, and summary totals.
    • For a screen change: provide a screenshot with the target area clearly marked.
  1. Menu location, security, and distribution
    • Specify where the item should appear in the menu tree, and which security groups require access.
    • Automated document routing: If documents should email or print automatically, confirm whether your system licenses Advanced Print Routing (APR). EpiUsers threads describe using APR breaking and routing rules to split and email documents using header-level tables. If APR is not licensed, the contractor will need an alternative approach.
  1. Target environment and release

State your exact release number and deployment model (SaaS Cloud or On-Premises). In Kinetic Cloud environments, direct SQL write access to production is restricted, though read-only SQL access to replicated production data can be purchased in some configurations. Cloud environments also restrict creating custom database views or altering schemas directly. Inform the contractor upfront so they quote an architecture supported by your deployment.

  1. The definition of "done"

Provide a concrete transaction in your Pilot or test environment. Example format: "Done means: open sales order #12345 in Pilot, preview the new report style, and confirm that tracking number appears in the header block and line totals match the attached sample, with no duplicated lines." Ensure your test transaction will remain available and will not be overwritten by a scheduled Pilot database refresh while development is underway.

Copy-ready change request template

Use this template when requesting fixed-price quotes. Verify all field names in your system before submitting.

EPICOR KINETIC CHANGE REQUEST SPECIFICATION

1. GENERAL INFORMATION
- Request title: [Short, descriptive name]
- Target release and deployment: [Release number, SaaS Cloud or On-Premises, Pilot vs. Live]
- Requester and department: [Name, department]
- Delivery type: [SSRS report | BAQ-based dashboard in Application Studio | BAQ report | BPM | Epicor Function]

2. BUSINESS PROBLEM
- [Describe the operational bottleneck, risk, or reporting gap and its business impact.]

3. DATA SOURCES
- Base report style, RDD, or BAQ: [Names of existing definitions]
- Tables and fields: [Table.Field -> destination on screen/report]
- Joins and criteria: [Specific tables, join types, and filter rules]
- Site and company boundaries: [Current site only | All sites | Specific plant]

4. CALCULATIONS
- [Each calculated field with its exact mathematical formula and source fields]

5. LAYOUT AND FORMATTING
- Mockup file: [Attached file name]
- Column order, sorting, grouping: [Details]
- Number formats and alignment: [Currency decimals, date formats]

6. SECURITY, MENU, AND DISTRIBUTION
- Target menu location: [Full menu path]
- Security groups: [Authorized security groups or roles]
- Automated distribution: [None | APR breaking and routing rule | Scheduled batch]

7. PERFORMANCE EXPECTATIONS
- [Expected run time under stated data volumes, and mandatory filter prompts]

8. ACCEPTANCE TEST (PILOT)
- Test transaction: [Document type and specific record ID]
- Pass criteria:
  1. [Output generates without system errors.]
  2. [Target values appear in specified locations matching the mockup.]
  3. [Row counts and summary totals balance against agreed source records.]
  4. [No duplicate or missing rows compared with baseline.]
- Sign-off owner: [Designated business user]

Five warning signs of a scope that will grow

  1. "Sync the dataset to bring in the fields"

Be cautious if a contractor proposes relying on Sync Dataset in Report Style Maintenance on customized standard reports. Community discussions document that Sync Dataset can alter dataset structures or overwrite custom query expressions in the RDL. While some report developers note it functions on simple custom definitions, the safer workflow is copying the RDD, exposing the field, and updating the dataset query in Report Builder manually. Test any approach on a copy first.

  1. "Make it look like our old Crystal report"

Avoid replicating legacy documents field for field without checking what the business currently uses. Community reports note that running Crystal Reports in modern Kinetic environments, particularly on Kinetic Cloud, introduces runtime and connectivity hurdles. Validate what reporting technologies your deployment supports before committing to a legacy format.

  1. "A dashboard for all inventory transactions"

Requests lacking mandatory filter parameters (such as Part Number, Transaction Type, or Date Range) can query massive tables like PartTran, degrading system responsiveness. Always define mandatory filter criteria in the scope.

  1. Unspecified calculation sources

Leaving terms like "true margin" or "usable stock" undefined invites assumptions. The contractor will build to their interpretation, and discrepancies will only emerge during acceptance testing.

  1. Missing Pilot test data

If you do not specify a test transaction before development begins, the contractor cannot verify edge cases, delaying sign-off and creating billing friction.

Symptom, Likely Cause, and fix

Symptom Likely Cause & Resolution
Quote is significantly higher than expected Vague scope. Complete the eight specification items and provide the template to reduce risk.
Frequent change requests during build Formulas or layout were not agreed upfront. Lock down mockups and calculations before coding.
Works in Pilot but fails in Production Missing deployment artifacts or hardcoded IDs. List all components (BAQs, RDDs, styles, layers) and deploy using Solution Workbench.
Delivered report rejected by users Built as a paginated document when users wanted an interactive list. Clarify delivery artifact.
Slow execution on large data ranges Unindexed joins or missing filter prompts. Define required prompts in the BAQ or report UI.

FAQ

Can I get a firm fixed price for an Application Studio dashboard?

Yes, provided the underlying BAQ is tested and approved, and you supply a layout mockup detailing column order, sorting, and any parent-child grid linkages.

How should scope changes be handled during active development?

Log the change as a separate enhancement request rather than expanding the active scope. This preserves the original acceptance test and allows the initial milestone to be billed and closed cleanly.

Should a contractor be permitted to use Sync Dataset on our reports?

Review warning sign 1. Confirm how the contractor intends to update the report definition, ensure backups of the .rdl file are maintained, and validate changes in a test environment first.

References

Procedures should be verified against official Epicor documentation matching your release and hosting model:

  • Epicor Kinetic Help: Application Studio – Designing Grids & Dashboards
  • Epicor Kinetic Help: Report Data Definition & Report Style Maintenance
  • Epicor Kinetic Help: Solution Workbench – Packaging and Deploying Custom Solutions
  • Epicor Product Documentation: Advanced Print Routing (APR) Overview
  • EpiUsers Community: Calculating Open Quantities on Sales Order Releases (OrderRel)
  • EpiUsers Community: Managing Multi-Site Part Costing and Plant.CostID Relationships
  • EpiUsers Community: The Truth About Report Style "Sync Dataset"
  • EpiUsers Community: Kinetic Cloud Reporting Boundaries and Replicated Database Access

Systems I work on